Software NEXT firmware
Streaming to OpenView 2
OpenView 2 is the desktop application for viewing every HealthyPi 5 channel at once — ECG, respiration, PPG, and the computed vitals — live over USB, with optional CSV logging.
This is the most common setup for development, signal validation, and lab work.
Requirements
- HealthyPi 5 (any kit)
- USB-C cable (not included)
- Computer running Windows, Linux, or macOS
- Firmware that streams the OpenView packet — the production firmware does this out of the box
Steps
-
Download OpenView 2 for your platform:
Platform Download Windows Download for Windows Linux Download for Linux macOS Download for macOS -
Extract the zip and launch the OpenView 2 application.
-
Pick the board. On launch, a dialog asks for the board and serial port.
OpenView 2 supports several ProtoCentral devices — make sure HealthyPi 5 is selected from the board dropdown.
-
Select the serial port the HealthyPi 5 is connected to and click Start. Signals begin streaming in real time.
-
To save the data to disk, click Start Logging during a session. When you click Stop, the data is written out as a CSV file on your computer.
OpenView carries a multi-channel binary packet over USB-CDC. The Serial Plotter and Serial Monitor expect newline-delimited text and will render it as garbage. That’s the one thing the Serial Plotter doesn’t do — for single numeric channels (ECG alone, PPG alone) it’s exactly the right tool, and the teaching sketches 01–07 use it.
Streaming from your own sketch
One line turns the stream on:
#include <FreeRTOS.h>
#include <Protocentral_HealthyPi_5.h>
void setup() {
HealthyPi5.computeVitals(); // optional: HR / SpO2 / respiration on-device
HealthyPi5.streamOpenView(); // 29-byte OpenView 2 frame over USB-CDC
HealthyPi5.begin();
}
void loop() {}
With computeVitals() enabled, the stream carries the DSP-computed heart rate, SpO₂ and respiration rate. Without it, it carries the raw per-sample values straight from the analog front-ends.
If you want to see the packet built byte by byte — without the dual-core runtime — read examples/Tutorials/08_OpenView_Stream. It’s a plain single-core sketch that emits the identical 29-byte frame.
The firmware’s 1 Hz HPI_INSTR telemetry goes to Serial1 (UART0, GP0/GP1), not USB. If you route text to the same Serial that carries the binary stream, OpenView will see corrupt frames.
Host commands
The production firmware also listens on the USB RX line for a small command plane (HealthyPi5.enableCommands()), framed as AA 55 | type | len | payload | xor:
| Command | Effect |
|---|---|
PING |
Acknowledged back to the sender |
STREAM_START / STREAM_STOP |
Gate the OpenView stream |
SET_NAME |
Set the device name (persisted) |
SET_AUTOSTREAM |
Stream on boot without waiting for STREAM_START (persisted) |
REC_START / REC_STOP |
Start / stop SD recording |
persistConfig() saves the device name and auto-stream flag to the last flash sector, so they survive a reboot.
Next
- Wireless: BLE & Wi-Fi — stream to a phone instead.
- Recording Data — unattended capture without a host computer.
