Hardware NEXT firmware
Hardware Overview
The HealthyPi 5 platform is built around four sub-assemblies — the main board, the carrier board, the display, and the enclosure. This page covers each at a high level. For how each signal is captured in practice, see Hooking up the Sensors.
Main board
The main board pairs a Raspberry Pi RP2040 with an ESP32-C3. The RP2040 is the main MCU — it owns the sensors, the microSD card, and the display connector. The ESP32-C3 is a wireless co-processor that owns the BLE and Wi-Fi radios; the two chips talk over a dedicated UART.
Three analog front-ends sit alongside:
| Part | Signals | Notes |
|---|---|---|
| MAX30001 | ECG, bio-impedance (respiration), heart rate | SPI, 18-bit ECG |
| AFE4400 | PPG, SpO₂ | SPI, 22-bit |
| MAX30205 or AS6221 | Body temperature | I²C, auto-detected at boot |
Older kits ship a MAX30205 at I²C address 0x49 (1/256 °C per LSB). Newer QWIIC kits ship an AS6221 at 0x48 (1/128 °C per LSB). The firmware probes both addresses at boot and adapts, so you never need to configure it. Both sit on I²C1, alongside the MAX17048 fuel gauge at 0x36 (absent if no battery is fitted).
The board exposes a 40-pin Raspberry Pi HAT connector for stacking, includes integrated power-path management (auto-switching between a 3.7 V LiPo battery and USB), and has an on-board microSD slot for local recording. Both microcontrollers expose their boot/reset buttons, so firmware updates are a matter of holding a button and drag-and-dropping a .uf2 file.
Board revisions and pins
Revisions 5.2 through 5.7 are electrically identical, so one pin map serves all of them. The authoritative source is board.h in the HealthyPi5 Arduino library, with a human-readable copy at extras/docs/PIN_MAP.md. Every sketch references it through HPI_PIN_* macros rather than hardcoding a GPIO.
The most commonly needed pins:
| Signal | GPIO |
|---|---|
| SPI0 SCK / MOSI / MISO (sensors) | 2 / 3 / 4 |
| MAX30001 CS | 5 |
| AFE4400 CS / PWDN | 19 / 18 |
| I²C1 SDA / SCL (temperature, fuel gauge) | 6 / 7 |
| microSD CS (on SPI1) | 13 |
| LCD backlight (PWM) | 16 |
| UART1 → ESP32-C3 TX / RX | 24 / 25 |
board.h
Note that GPIO 16 is the LCD backlight, not the microSD chip select, and the AFE4400 chip select is GPIO 19. Referencing HPI_PIN_* rather than a literal GPIO keeps a sketch correct across the whole 5.2–5.7 range.
Carrier board
The carrier board adds isolation and protection around the main board’s signal-acquisition paths. It provides galvanic isolation between the analog front-ends and the rest of the system, exposes additional connector breakouts, and brings the design in line with the safety expectations for body-contact biosignal acquisition.
You can use a main board on its own for development, but the Complete Kit pairs it with the carrier board for any application where a person is in the circuit.
Display
The Complete Kit ships with one of two 3.5-inch TFT displays:
- ILI9488 — white display panel
- ST7796 — black display panel
Both are 3.5″ at the same resolution; the only practical difference is the panel/driver pair. Each display board includes a side-actuated three-way navigation switch. The panel connects through the 40-pin HAT connector on SPI1.
The display is currently driven by the Zephyr firmware only — see Display Add-On Module.
Enclosure
The enclosure is injection-moulded polycarbonate, sized to hold the main board, carrier board, and display together. It provides mechanical protection and shields the analog front-ends from electrostatic discharge.
Configurations
- Basic Kit — just the main board. Best for development, integration into custom enclosures, or use as a Raspberry Pi HAT.
- Complete Kit — main board + carrier board + display + enclosure. Ready to use out of the box, with the isolated signal paths required for any body-contact application.
Open hardware
All schematics, PCB layouts, and mechanical CAD are open source:
→ protocentral_healthypi_5 (board files) · protocentral_healthypi_5_firmware (Arduino / NEXT) · protocentral_healthypi5_zephyr (Zephyr)





