I am currently working on a project where I want to read out 9DOF (acc+gyro+mag) orientation data as quaternions. Until now, I worked with the BNO055 which worked perfect so far. Since I heard, that the BNO055 is not recommended for new design, I wanted to find an active replacement. My search led me to the BHI206AP in combination with the BMM150 magnetometer to get the 9DOF. These products are both on the Arduino Nicla Sense ME, so I thought why not start testing on the Arduino. When I read through the arduino documentation for the Nicla board, I was able to find information regarding the offered libraries and functions to retrieve IMU orientation data from the BHI260AP. Unfortunately what I could not find, was any information on how to fuse the IMU data from the BHI260AP with the magnetometer data from the BMM150. The datasheet from the BHI260AP clearly shows, that this is generally possible and that the BSX fusion library is also on integrated in the BHI260AP. This brings me to my question:
How can I retrieve 9DOF orientation data in quaternions from the BHI260AP+BMM150 on the Arduino Nicla Sense ME?
Thanks in advance for any help regarding my question, I really appreciate it!
According to your description, you can use the BHI260AP, BHI360/BHI380 shuttle board.
BHI260AP shuttle board integrates BHI260AP and BMM150. The BHI360/BHI380 shuttle board integrates BHI360/BHI380 and BMM350, and 9doF can be obtained from them, and the hardware and software are more simplified compared to Nicla Sense Me.
In addition, Nicla Sense Me also supports outputting 9doF, refer to the example on Github https://github.com/arduino/nicla-sense-me-fw/blob/main/Arduino_BHY2Host/examples/Orientation/Orienta...
thank you for your fast response. Maybe I should have mentioned that I already bought the nicla board and would also prefer to use it because of the onboard BLE solution, that it provides.
So I would be very thankful, if you could povide some more details regarding the nicla board. Unfortunately, the github link in your response does not give me any more ideas. If I understood it right, the Orientation.ino file only computes orientation data in euler format, because it uses an instance of the SensorOrientation class. Please correct me, if I am wrong about that.
Thanks in advance for your help, I really appreciate it!
If you only want to use Nicla Sense ME board and want to get a quaternion output of 9doF, you can refer to example https://docs.arduino.cc/tutorials/nicla-sense-me/cheat-sheet#quaternion-rotation by using the virtual sensor ID SENSOR_ID_RV to obtain the data you want.