I already posted this to the Beaglebone group, but I noticed there's
lots of traffic here about the Beaglebone Blue as well, so I'm cross
posting in hopes of finding an answer.
I'm having trouble getting the compass heading to work correctly in
DMP mode on my Beaglebone Blue. I'm running with the default
-- I calibrated the magnetometer and gyroscope as directed here:
-- I ran the rc_test_imu program and confirmed that the magnetometer
is working correctly.
-- I ran rc_test_dmp -m -c -t. When I did this, I noticed that the raw
compass was stuck near either 0, +180, or -180 degrees, jumping
between those points as I rotated the Blue around the Z axis. When
left still, the filtered compass always converged to the value of the
raw. I also tested to make sure the pitch and roll angles were sane,
and they were.
I tried rotating it around the X and Y axes as well as using the -o
option to switch the IMU orientation. This did not materially change
the compass behavior. Trying it without the -m or -c switches produced
no change in behavior.
It behaves as if the magnetometer was simply not being turned on in
DMP mode. I double-checked the source code of rc_test_dmp and
recompiled it to see if the bug was there, and got the same results.
Any suggestions for what I can try next? My application is such I can
get away with processing the raw values to get a compass heading, but
it would be nice to be able to use the sensor fusion. I filed a github
issue as well.