OpenLog Artemis - extracting the quaternion data from ICM 20948

Hi! I’m new to all of this but making some progress following online tutorials. I am connected to my OpenLog Artemis Dev-16832 using SPI (USB connected to com port) and i want to extract the raw quaternion data (w,x,y,z) from the ICM 20948. Is this possible? Also a general question: why doesn’t the sensor manufacturer (invensense in this case) make it easier (for rookies like me) to find code that can access all the functionality of their product? :?

Hi @aedge,

Sadly, the library does not currently support quaternions:

https://github.com/sparkfun/SparkFun_IC … .h#L26-L29

but it is something we would like to add in the future. We have it on the “things-to-do” list:

https://github.com/sparkfun/OpenLog_Artemis/issues/47

Best wishes,

Paul

Thank you for the quick response @PaulZC. Can you recommend another IMU sold by SParkFun that currently supports that functionality? or, do you anticipate the time to get that feature available is reasonably close, and worth the wait? Thanks again.

Hi @aedge,

The BNO080 supports quaternions and Euler angles:

https://www.sparkfun.com/products/14686

Implementing them on the ICM is on the things-to-do list - but is some way from the top…

Best wishes,

Paul

Got it, thanks!

@PaulZC one more question - can i connect the BNO080 to the Openlogger ARtemis using Qwiic? or do i need to get another microcontroller? I’m coding using Arduino. Thank you!

Hi @aedge,

Yes, you can connect it via Qwiic, but the standard OLA firmware does not support the BNO080 at the moment. It is on the things-to-do list but is nowhere near the top. You can either write your own code, or can add the BNO080 to the OLA firmware. There is a checklist of things to do here:

https://github.com/sparkfun/OpenLog_Art … SENSORS.md

If it works, please send us a Pull Request! :wink:

Best wishes,

Paul

thanks Paul. I’ll take on the challenge but don’t hold your breath…i don’t even know what a Pull Request is…i think i’ll order the prescribed Redboard (Dev-13975) in the meantime.