I hooked the breakout board to a PICO with short wires and began to get results with code that follows.
+3 to Vin, GND to GND, A8 to SCL, B4 to SDA
I changed to a longer set of wires so I can move the breakout board around without the PICO USB connector coming loose, and the performance became intermittent. Looking at the schematic I tried
Connecting the Vin and 3vo pins together on the breakout board and fixed the problem for use with the 3 Volts from the PICO. The Vin connected to a MIC6225-3.3 Voltage regulator input and the 3vo pin to the output.
Almost a Module
The attached code is almost a module. Some issues remain to be resolved but I am getting some interesting results. The output values are not scaled and are just the signed 16 bit integers.
Most of the knobs for the chip are accessed using a data structure that defines the register, mask and shift for the particular bits (a document will follow as the module is completed)
In NDOF mode (12) the output looks like this:
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
BNO055 Nine Degree of Freedom IMU with built in Quaternion function
Thanks to @trusktr for finding this chip at Adafruit.
https://www.adafruit.com/product/2472
https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview
Connections
I hooked the breakout board to a PICO with short wires and began to get results with code that follows.
+3 to Vin, GND to GND, A8 to SCL, B4 to SDA
I changed to a longer set of wires so I can move the breakout board around without the PICO USB connector coming loose, and the performance became intermittent. Looking at the schematic I tried
Connecting the Vin and 3vo pins together on the breakout board and fixed the problem for use with the 3 Volts from the PICO. The Vin connected to a MIC6225-3.3 Voltage regulator input and the 3vo pin to the output.
Almost a Module
The attached code is almost a module. Some issues remain to be resolved but I am getting some interesting results. The output values are not scaled and are just the signed 16 bit integers.
Most of the knobs for the chip are accessed using a data structure that defines the register, mask and shift for the particular bits (a document will follow as the module is completed)
In NDOF mode (12) the output looks like this:
In AMG mode the output looks like this
Issues that remain are:
Using the external clock on the Adafruit board,
Writing the offsets and radius to the chip and a way to save them on the PICO
Sorting out the scale factors on the output as they change with the units settings and operating mode settings.
Changing the code into a module.
2 Attachments