Heartwave Pico is a portable Heart Rate Variability (HRV) analysis device based on Raspberry Pi Pico W. It uses Photoplethysmography (PPG) technology to measure and analyze users' heart rate and heart rate variability, providing real-time health monitoring.
-
Real-time heart rate monitoring
-
Heart Rate Variability (HRV) analysis
-
Integration with Kubios Cloud service for advanced HRV analysis
-
User-friendly interface with OLED display
-
Data transmission via MQTT protocol
-
Local data storage and history viewing
-
3D-printed case for enhanced portability and user experience, see case design
User Interface
User Interface in Action
- Raspberry Pi Pico W
- Crowtail Pulse Sensor
- OLED Display (SSD1306 I2C 128x64 pixels)
- Rotary Encoder
- Connect the Crowtail Pulse Sensor to GP26 (yellow wire). White wire is not used.
- Connect the OLED Display to GP14 (SDA) and GP15 (SCL).
- Connect the Rotary Encoder to GP10 (CLK), GP11 (DT), and GP12 (SW).
Note: All components should be powered by 3.3V and connected to GND.
-
Install
mpremote
if you don't have it installed.pip install mpremote
-
Clone the repository
git clone --recurse-submodules https://github.com/shengt25/Heart-Wave-pico.git
-
[Optional] Configure settings:
- If you want to use MQTT, open and edit the
config.json
to set up the WiFi:wifi_ssid
andwifi_password
,mqtt_broker_ip
- If you want to use Kubios Cloud, set up WiFi as above and:
kubios_apikey
kubios_client_id
andkubios_client_secret
. - If you're using different pins than those specified in the hardware setup above, open
src/hardware.py
and modify the default parameters in__init__
functions for classes accordingly.
- If you want to use MQTT, open and edit the
-
Connect the Raspberry Pi Pico W to your computer via USB and run the script:
for Linux or MacOS:
cd Heart-Wave-pico && ./install.sh
for Windows:
cd Heart-Wave-pico && .\install.cmd
-
Restart the Raspberry Pi Pico W and it should be ready to use.
Note: To ensure a faster system booting, MQTT will not be connected by default, because if it will block the whole system for about 15 seconds if the broker is not available. You can connect it manually in the settings menu, if the Wi-Fi and MQTT broker is correctly set up.
- The device will start automatically when connected to power.
- Navigate through the main menu using the rotary encoder, push to select.
- Select the desired mode: heart rate measure, hrv analysis, kubios analysis, history or settings
- Raspberry Pi Foundation
- Kubios Cloud
- Teammates Minimal-Alexi and VitaliiVIP contributed to this project
- Joseph (project engineer) - For providing the custom expansion board
Case Design in CAD
Case 3D Printed
Main Data Flow
Task Scheduling
Program Structure