Issue with MAX32664 breakout board from Protocentral on STM32L476RG Nucleo-64: Fixed SpO2 value
I am working with an STM32L476RG Nucleo-64 MCU and MAX32664 breakout board from Protocentral connected via I2C.
Goal: To retrieve four values from the sensor: systolic BP, diastolic BP, heart rate, and SpO2.
I have developed a library for the MAX32664 sensor on STM32 by referring to the Arduino library provided by Protocentral.
Issue:
- While I successfully receive all four values from the sensor, the SPO2 value remains fixed.
- It shows either 0% (when my finger is not on the sensor) or 100% (when my finger is placed on the sensor).
- The other values (systolic blood pressure, diastolic blood pressure, and heart rate) show variation as expected.
Observations:
- I examined the contents of the FIFO buffer received from the sensor and noticed that the SPO2-related data are located at the 18th and 19th indices.
- However, the data at the 19th index does not change at every execution, leading to the fixed SPO2 value issue.
Troubleshooting steps taken:
- Tried uploading Protocentral's example code (Example2-BPT-estimation-mode) on STM32 via Arduino IDE. Encountered the same issue.
- Sensor works flawlessly with ESP32 using Protocentral's library.
- Data at the 19th index of the FIFO buffer changes dynamically on ESP32, suggesting STM32-specific issue.
- I suspect there might be an issue with the STM32 HAL library, but I'm uncertain.
Request for Assistance:
- What could be causing this fixed SPO2 value issue on the STM32 platform?
- How can I troubleshoot and debug this issue further?
- Are there any specific considerations or configurations required in the STM32 HAL library when working with I2C sensors like the MAX32664?
Any insights or guidance on resolving this issue would be greatly appreciated. Thank you.