Implementing ICM-42688-P software sensor fusion (quaternions) on nRF52832 and nRF54L15

Hello,

I am designing a device utilizing the InvenSense ICM-42688-P 6-axis IMU. We are currently targeting two SoCs for our product line: the nRF52832 and the newer nRF54L15.

Since the ICM-42688-P lacks an on-chip hardware DMP (unlike older chips like the ICM-20948), we must process the raw gyro and accelerometer data in software on the host MCU to extract clean Quaternions/Euler angles.

I have a few questions regarding implementation and optimization in the Nordic ecosystem:

1. Filter Selection & Performance: For a 6-axis setup running at a high ODR (e.g., 200Hz+), what are the performance impacts of running software filters like Madgwick or Mahony on the nRF52832 (Cortex-M4) versus the nRF54L15 (Cortex-M33)? Are there any recommended, highly optimized sensor fusion libraries natively supported or widely used within the nRF Connect SDK (NCS)?

2. 9-Axis Integration: If we supplement the ICM-42688-P with an external I2C magnetometer down the line, would a lightweight EKF (Extended Kalman Filter) run reliably on the nRF54L15 without significantly draining power or bottlenecking the BLE stack?

3. Data Acquisition Strategy: To minimize CPU wakeups, should we utilize the ICM-42688-P's internal FIFO buffer to burst-read sensor data via SPI/I2C, or is it better to stream data using pin interrupts for real-time filter feeding?

Environment Details:
* nRF52832: Running nRF Connect SDK
* nRF54L15: Running nRF Connect SDK
* Interface: SPI / I2C

Any examples, code snippets, or architecture advice for handling high-rate IMU software filtering on these SoCs would be highly appreciated.

Best regards,
Pavanreddy

Parents
  • Hi,

    ICM-42688-P doesn't support embedded 9 axis usion.

    New family ICM45689 can manage TDK TMR compass (ICT1531x) through I2C with embedded 9 axis fusion. Driver are available on Arduino and Zephyr.

    Other ICM456xx are available on Zephyr and Arduino but cannot manage embedded 9 axis fusion.

    You can find tdk driver and xamples here: github.com/.../tdk-invn-oss

    Regards,

    Sebastien

  • Hi Sebastien,

    Thank you for the suggestion.

    We looked into the ICM45689 family, but since we are targeting mass production, availability and long-term sourcing are important considerations for us. Currently, the ICM45689 does not seem to be as widely available through major distributors.

    Do you know if the ICM45689 is already in volume production and broadly available through distributors such as DigiKey, Mouser, Arrow, or Avnet?

    Also, if we stay with a 6-axis IMU, do you have any recommendations for software-based sensor fusion libraries that work well on Nordic devices?

    Best regards,
    Pavanreddy

Reply
  • Hi Sebastien,

    Thank you for the suggestion.

    We looked into the ICM45689 family, but since we are targeting mass production, availability and long-term sourcing are important considerations for us. Currently, the ICM45689 does not seem to be as widely available through major distributors.

    Do you know if the ICM45689 is already in volume production and broadly available through distributors such as DigiKey, Mouser, Arrow, or Avnet?

    Also, if we stay with a 6-axis IMU, do you have any recommendations for software-based sensor fusion libraries that work well on Nordic devices?

    Best regards,
    Pavanreddy

Children
Related