“Excellent. I tried a cheaper version off Amazon (MakerHawk MPU9250) but gave such a noisy signal. This Adafruit was stable. Few data glitches but nothing a filter couldn’t solve. Would (and have) bought more products from PiHut”
“I'm experimenting with telescope pointing systems, and this seemed like an interesting part of a solution. It was easy to set up and the example code has been useful in developing a test programme I wanted.
I'm still evaluating the device but it is impressive.
After a few hours of use, the output started to be patchy, some of the sensors are reporting 'Not a Number' sometimes. I've gotten around this by looping round until I get valid data. Not sure whether I have damaged something or whatever. hence a loss of one star.”
“Like all Adafruit products I’ve used this driver is easy to Setup and reliable. Ideal for controlling the speed of a single DC motor using Arduino or rPi.”
“I use this for my Lego projects, and have written my own C# driver. Following the C++ sample code it is fairly straightforward.
This chip is a lot easier to deal with compared to other IMUs I have used.
But: I found something that appears to be a hardware bug.
When reading Euler data, any positive pitch (> 0° ) will have the most significant bit set to 1 - making the int value some negative number instead of positive.
Very annoying and unnecessary, but fairly easy to solve in software.
This is my solution:
var bytes = ReadBytes(Registers.BNO055_EULER_H_LSB_ADDR, 6);
// bug in the chip.
// Whenever pitch > 0, pitch MSB is set erroneously
var msb = (short) (bytes[5] 2880 || msb < -2880)
{
bytes[5] &= 0b0111_1111; // set most significant bit to 0 instead of 1
}
Not sure if this applies to all chips, or if this is an issue with the one I got.”