Reference NEXT firmware

Release Notes

Last updated Jul 10, 2026

Release history for the two HealthyPi 5 firmwares. Latest at the top.

GitHub is the source of truth

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_RawProcessing tutorial streamed OpenView but never enabled the I²C sensors, so the OpenView temperature channel read 0. It now calls enableSensors(), 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_INSTR telemetry.
  • 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 GPIO 13.
  • 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_NEXT firmware 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 .uf2 per 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 mismatchMNGR_INT was configured with EFIT=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=0 and bioz_sample=0, creating the zero spikes.
    • Incorrect sample-count calculation — the driver read the MNGR_INT threshold register instead of reading enough samples and validating via the ETAG/BTAG markers.

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).