Reference NEXT firmware
Release Notes
Release history for the two HealthyPi 5 firmwares. Latest at the top.
- Arduino (NEXT) — GitHub Releases
- Zephyr — GitHub Releases
This page summarises the highlights of each release. The complete, always-current changelogs — and the downloadable images — live on the two GitHub Releases pages linked above.
Arduino firmware (NEXT)
Published to the Arduino Library Manager as ProtoCentral HealthyPi 5.
v2.0.1
- Fix: the
09_RawProcessingtutorial streamed OpenView but never enabled the I²C sensors, so the OpenView temperature channel read 0. It now callsenableSensors(), matching the full firmware.
v2.0.0 — the NEXT rewrite
A complete rewrite of the RP2040 firmware as an Arduino library, built on the production NEXT dual-core architecture (arduino-pico / FreeRTOS-SMP).
Architecture
- Lossless 128 SPS acquisition on core1 into a lock-free ring. Core0 runs a broker with per-sink drop-newest queues, a hardware watchdog, and 1 Hz
HPI_INSTRtelemetry. - Byte-compatible OpenView 2 stream and HealthyBridge link to the ESP32-C3.
Correctness
- Correct v5.2–v5.7 pin map, taken from the board schematic: AFE4400 CS on GPIO
19, microSD CS on GPIO13. - Uses the current MAX30001 v2.0.0 API.
- Auto-detects the on-board temperature sensor — MAX30205 (
0x49) or AS6221 (0x48).
Examples
- Eleven tutorials (01–11): one sensor or idea at a time, through OpenView, your-own-DSP in
loop(), wireless, and SD datalogging. - The full
HealthyPi5_NEXTfirmware as a twelve-line sketch.
Not included
- On-panel LCD support (LVGL) is not in this release. It will return in a later version. See Display Add-On Module.
Also in this release
- The ESP32-C3 wireless firmware now lives in its own repository, healthybridge-esp32.
- Published to the Arduino Library Manager as ProtoCentral HealthyPi 5.
Zephyr firmware
v2.2.0
- Current release. One
.uf2per display panel (healthypi5_ili9488.uf2,healthypi5_st7796.uf2) — the separate Basic / Display images have been merged.
v2.1.0
Focused on signal-quality fixes in the MAX30001 driver.
- Fixed: ECG and respiration waveform spikes. Periodic sharp spikes and dropped samples gave the waveforms a “square wave” appearance during USB streaming. Three causes:
- FIFO timing mismatch —
MNGR_INTwas configured withEFIT=1(interrupt after 2 samples, ~15.6 ms at 128 SPS) while polling ran every 7 ms, so many polls found no data and queued zero-valued samples. - PPG-only sample queuing — when no ECG data was available in a polling cycle, samples were queued with
ecg_sample=0andbioz_sample=0, creating the zero spikes. - Incorrect sample-count calculation — the driver read the
MNGR_INTthreshold register instead of reading enough samples and validating via the ETAG/BTAG markers.
- FIFO timing mismatch —
v2.0.x
- Zephyr 4.2 base. Display driver and LVGL UI completed for both panels.
v1.0.0
- Fixed several data-loss issues present in earlier versions.
- Improved on-device algorithms for accuracy and responsiveness.
- Added support for the ILI9488 (white) display board.
- New SD-card data logging; simultaneous USB, BLE, and display output.
v0.5.0 and earlier
Pre-1.0 releases shipped as four separate images — Base, BLE, Display, and Logger — each with its own changelog. That split no longer exists; a single image per panel now covers all of it. The historical per-variant notes are in the GitHub release archive.
Highlights across that series: BLE PPG streaming (v0.2.0), respiration rate (v0.1.6), respiration waveform and rate fixes on the mobile app (v0.3.3), temperature and PPG scaling fixes (v0.3.0–v0.3.1), data logging to the mobile app (v0.3.4), and the Zephyr 3.6 upgrade (v0.5.0).