I am trying to design an audio-compass for a local charity that teaches viusally impaired people to sail yachts.
I am currently trying to build this with an ESP32 devkit and an Adafruit BNO055.
I did have this working reasonably well, but not perfectly. I was trying to use the Euler angle output (in fusion mode) to extract the compass heading but found that the heading (yaw) was affected by moderate variations in roll. Not ideal on a yacht.
My problem now is that suddenly I am struggling to reliably extract any sensible readings from the sensors.
It takes an age to self-calibrate and even when calibrated, I can only get sensible XYZ values when the module is tilted at specific angles. I can read other registers (calibration, system status etc.) Without any problem. It looks as if the module is maybe resetting to config mode unless it is at the specific angle. Most of the time I get just 0x0000 values for XYZ but then if I tilt the sensor roughy 20 degrees and hold it steady, it gives accurate values for XYZ.
I can read the status and self-test registers OK and they provide sensible values (error register is 0x00).
I know that this maybe sounds like aa dry joint or some such but I have checked all this very thoroughly.
I am using the Adafruit BNO055 library examples.
Any thoughts? Is my BNO055 bricked? This setup was *nearly* working. Tearing my hair out.
Thanks in advance.