Why PPG Still Rules Our Wrist — and How We’ll Make It Reliable
We present a practical, technical walkthrough to get clinically useful heart-rate traces from wrist PPG. Shockingly, wrist PPG powers over 90% of consumer wearables yet struggles with motion noise — we show hardware fixes, sampling strategies, filters, and calibration steps.
What We'll Need
Our kit: smartwatch/dev board w/ PPG LEDs+photodiode, tri-axial accelerometer, USB logger, chest-strap HR reference, soldering/debug tools, sampling/signal-processing familiarity
Step 1 — Hardware and Placement: Get the Optics Right
Believe it or not, a millimeter of misplacement can wreck accuracy — where and how we mount the sensor matters more than extra LEDs.Optimize sensor placement and the optical stack first.
Position the PPG LEDs and photodiode over the distal wrist crease or along the radial artery path to maximize perfusion; we prefer the distal crease for everyday wear and the radial path for exercise watches.
Ensure firm, comfortable contact to reduce slip—tighten the band enough to prevent sensor movement but not so tight it collapses microvasculature. For activity, secure the strap with an elastic band or locking clasp (example: a runner tightens slightly more than an office worker).
Choose LED wavelengths deliberately: green (~525 nm) for best SNR on the wrist; add red/IR for deeper perfusion and motion-compensation algorithms. Minimize ambient light leakage with an opaque bezel and a soft, skin-conforming gasket to cut stray photons.
Pay attention to LED–photodiode spacing: 2–6 mm is typical on small wearables; increase spacing to reach deeper vessels but expect lower SNR. Verify mechanical strain relief on the flex cable (add a fillet or meander) to avoid connector stress.
Record baseline ambient conditions (skin tone, local skin temperature, and lighting) since these parameters materially change optical absorption and algorithm tuning.
Step 2 — Sampling and Acquisition: Capture Clean Raw Signals
Sampling is more than fast numbers — can we afford aliasing, jitter, and dropped frames? Spoiler: no.Define acquisition parameters next. Choose a sampling rate of 50–200 Hz (we favor 100 Hz as a pragmatic balance) so our HR harmonics are captured without oversized data.
Use synchronous timestamping for PPG and accelerometer streams so we can align motion and optical data for artifact rejection. Timestamp at the ADC event, not the OS tick.
Implement LED duty‑cycling and ADC oversampling to maximize SNR and save power. Pulse LEDs in short windows (example: 1–3 ms LED‑on at 100 Hz) and average multiple ADC samples or use 4–8× oversampling to reduce quantization noise.
Store raw streams in a circular buffer for real‑time and post processing. Include:
Implement sensor exposure control and dark reference subtraction: acquire a dark sample with LEDs off and subtract to remove ambient offset. Monitor a contact quality metric (DC level stability, low short‑term variance). Flag epochs with unstable DC or sudden variance spikes as poor contact and gate them from HR outputs.
Keep buffer depth sufficient for your filters (example: 5–15 s at chosen rate) so we can run adaptive filtering and retrospective calibration.
Step 3 — Real-Time Signal Processing: Pull HR from Noise
Motion destroys PPG — but with the right filters and accelerometer tricks, we can almost make motion jealous of our signal clarity.Filter the PPG to isolate physiological heart‑rate content — typically 0.5–4.5 Hz (≈30–270 bpm; trim to expected cohorts). Use FIR or IIR filters; prefer linear‑phase FIR for offline work and apply zero‑phase (forward‑backward) filtering to avoid waveform distortion.
Cancel motion by regressing accelerometer information onto the PPG using adaptive filters (LMS or RLS) and, when multimodal artifacts exist, run ICA to separate motion components. Tune LMS step sizes on-device (start small, increase until residual motion drops).
Enhance peaks with a derivative‑based filter (first or second derivative) and compute an adaptive threshold from recent amplitude statistics (e.g., 5–10 s rolling RMS). Detect peaks, then validate beats with a refractory period and RR sanity checks.
Validate beat‑to‑beat intervals with physiologic rules and outlier rejection (example: enforce refractory ≈300 ms, reject RR giving HR <30 or >220 bpm unless cohort dictates otherwise). Optionally smooth HR with a small Kalman filter to produce a smoothed estimate and confidence interval for downstream consumers.
Keep auditable buffers: preserve raw PPG, accelerometer streams, filtered signals, detected peaks, and HR time‑series so we can replay, debug, and tune thresholds.
Step 4 — Validation, Calibration, and Power Trade-offs
Want reliable HR under sprinting and commuting? We validate, calibrate, and compromise on battery life like engineers who actually use the device.Run structured validation sessions: record rest, paced‑breathing, brisk walking and running while we capture a chest‑strap ECG as ground truth. Use synchronized timestamps and identical epoching.
Compute objective metrics: RMSE, MAE, bias, and Bland–Altman limits to quantify agreement (aim consumer RMSE <5 bpm). Calculate per‑activity and overall statistics so we know where errors concentrate.
Iterate on algorithmic knobs: adjust bandpass cutoffs, tune adaptive‑filter step sizes, and tighten or loosen contact‑quality gating until metrics meet targets. Re-test after each change.
Calibrate for population and hardware variability: apply small per‑skin‑tone or per‑device offsets as a quick fix, or train lightweight ML models on labeled data for systematic correction (example: linear regression on bias vs. skin tone + device ID).
Optimize power with conditional strategies: reduce LED duty‑cycle (e.g., 10–30% on-time), drop sampling from 100 Hz to 25–50 Hz during low activity, and trigger high‑rate acquisition only when accelerometer variance falls below a motion threshold.
Log everything: store calibration parameters, dataset IDs, and firmware versions for reproducibility.
Document failure modes (low perfusion, tattoos, cold skin) and expose a UI confidence indicator so downstream users know when to trust the HR.
Ship It — or Keep Iterating
We can ship repeatable, auditable smartwatch HR: use optics, disciplined acquisition, robust processing, and validation; iterate across users and conditions, report results, widely share our findings to improve and publish.
