Getting Started NEXT firmware
Choosing Your Firmware Path
HealthyPi 5 runs one production firmware, available in two implementations. This page helps you pick.
Earlier firmware shipped four separate images — Basic, BLE, Display, and Logger — and you chose one by flashing it. That model is gone. There is now a single firmware that does all of it at once, and the features you’d have picked a mode for are switched on individually in code, or simply always available.
Why NEXT explains the change in full.

The two paths
| Arduino (NEXT) — default | Zephyr | |
|---|---|---|
| Best for | Everything: running the board, learning it, extending it | The display add-on; RTOS-based production ports |
| Ready-made binary | ✅ Drag-and-drop .uf2 |
✅ one .uf2 per display panel |
| Build toolchain | Arduino IDE + Library Manager | Zephyr SDK + west |
| Teaching sketches | ✅ 11 single-purpose examples | — |
| Lossless acquisition | ✅ enforced by the dual-core design | — |
| OpenView 2 over USB | ✅ | ✅ |
| BLE / Wi-Fi | ✅ via the ESP32-C3 co-processor | ✅ |
| microSD recording | ✅ binary /REC*.BIN |
✅ CSV, retrievable over BLE |
| On-board display | ❌ not in this release | ✅ |
Both are open source and both stream a byte-compatible OpenView 2 packet.
Use Arduino unless you need the display
Arduino/NEXT is the default, and the one the rest of these docs assume. It is not a simplified teaching build — it is the production firmware, and its dual-core architecture makes lossless 128 SPS acquisition a structural guarantee rather than something you tune for.
Download the ready-to-run .uf2 and you’re streaming in a couple of minutes. When you want to go further, the same repo ships eleven teaching sketches that bring up one sensor at a time, and the full firmware is a twelve-line sketch over a library you can read.
Reach for Zephyr if…
You have the display add-on, or you’re building a production port that needs an RTOS, a devicetree, and Zephyr’s driver ecosystem.
The Arduino NEXT firmware does not drive the on-board LCD in this release — the LVGL vitals screen is held back pending hardware validation and will return in a later version. If you want the screen today, use the Zephyr firmware. See Display Add-On Module.
What replaced the modes
If you were following the old docs, here’s where each mode went.
| Old mode | Now |
|---|---|
| Basic | The production firmware. There is no other build. |
| USB Streaming | Always on. HealthyPi5.streamOpenView() in Arduino. → Streaming to OpenView 2 |
| BLE Streaming | Handled by the ESP32-C3 co-processor. HealthyPi5.enableBridge(). → Wireless: BLE & Wi-Fi |
| Data Logging | HealthyPi5.recordSD(), or REC_START over the command plane. → Recording Data |
| Display | Zephyr firmware only. → Display Add-On Module |
In the Arduino firmware these are sinks. Each one is an independently queued consumer of the sample stream, so enabling four of them costs you nothing in acquisition reliability — a slow card or an unplugged ESP32 drops only its own samples, and the count is reported once a second in the telemetry line.