AFE4490: Unstable Heart-Rate and SpO₂ Readings with AFE4490 Breakout on nRF52840 – Sudden Spikes and Drops

Part Number: AFE4490

Tool/software:

Hello TI Support Team,

We’re using the AFE4490 breakout PCB from Protocentral as our analog front-end for PPG, heart-rate, and SpO₂ measurements. Our host is an nRF52840 Development Kit. We started with the reference C++ firmware from the AFE44x0 GitHub repo (https://github.com/Protocentral/protocentral-afe4490-arduino.git) , then ported it to plain C to fit into our existing codebase. source code is shared below.

Issue Description:
• Heart-rate readings fluctuate wildly and exhibit sudden spikes—for example, jumping from ~80 BPM up to ~115 BPM within one second, then back down.
• SpO₂ readings are similarly unstable, oscillating between ~98 % and as low as ~22 % without any changes in finger placement or ambient conditions.

Hardware & Firmware Details:
• AFE4490 breakout PCB (Protocentral) wired per reference schematic; 3.3 V supply, 4 MHz clock.
• nRF52840 DK running at 64 MHz; SPI configured Mode 0, 2 MHz clock.
• Ported TI example code to C—register settings for CONTROL0, LED currents, PGA gains, and LED timing are unchanged from TI’s demo.
• No external analog filtering beyond the PCB’s onboard components.

What We’ve Tried So Far:

  1. Adjusted LED drive currents (50 %, 75 %, 100 %)—no improvement in stability.
  2. Added software averaging over 4 —masks the spikes but doesn’t prevent them.

Questions & Requests:

  1. Are there recommended register settings (e.g., timing, settling delays, threshold registers) to improve measurement stability on the AFE4490?
  2. Could there be an unhandled timing constraint (e.g., LED phase timing vs. ADC_RDY) in the reference code when ported to C?
  3. Any tips on debug strategies (e.g., test patterns, register dumps, PPG waveform equivalence tests) to isolate whether this is a hardware, firmware, or signal-processing issue?

We appreciate any guidance or suggestions on tuning the AFE4490 for consistent PPG, heart-rate, and SpO₂ readings. Please let us know if further details (register dumps, scope captures, code snippets) would help.

Thank you,
Savith, Octane Circuits

AFE4490_spo2_Hr.zip