Skip to main content
Version: ACS CC

PulseBeats

A small device that reads your heart rate and plays matching sound feedback.

info

Author: Alexia-Andra Mihai
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-alexiamihai

Description

PulseBeats is a portable embedded device built with a Raspberry Pi Pico W that monitors the user’s heart rate using the MAX30102 sensor. It provides real-time visual and audio feedback through an LCD display and a passive speaker. The goal is to offer a simple way to reflect biometric signals in an engaging way.

Motivation

I enjoy working with sound and music, and I wanted to explore how it could be used in a meaningful, helpful way. This project gave me a chance to combine audio output with a real-life use case — monitoring your pulse — and make the data feel more alive through sound and display. It's both fun and potentially useful for relaxation or health awareness.

Architecture

Main components of the system:

  • Pulse Sensor (MAX30100)
    A digital pulse oximeter and heart-rate sensor that reads the user's heart rate using infrared light. It communicates with the controller via I2C.

  • Controller (Raspberry Pi Pico W)
    A low-cost microcontroller that manages the logic, processes sensor data, and controls both the audio and visual outputs.

  • Audio Output (Passive Speaker + Audio Filter)
    A small passive speaker driven through a basic audio filter and GPIO/DAC output. It plays rhythmic tones or feedback sounds based on heart rate.

  • Visual Output (LCD 1602 with I2C)
    A 16x2 character display with I2C interface, used to show the current BPM (beats per minute) or system messages.

  • DFPlayer Mini
    A compact MP3 player module that reads audio files from a microSD card. Controlled via UART, it allows playback of songs or audio messages, enabling richer sound feedback.

  • Optional UI (Buttons, Rotation Angle Sensor)

    • Buttons are used for starting/stopping measurement or sound.
    • Rotation Angle Sensor (Potentiometer-based) provides analog input for adjusting volume.
  • Storage (MicroSD Card Module)
    A module for reading/writing data to a microSD card via SPI. Used for storing the music that will be played according to the user’s pulse.

Log

Week 21 – 27 April

Ordered some of the required hardware components for the project, including the Raspberry Pi Pico W, LCD display, and audio modules. Also explored available alternatives for out-of-stock parts (the pulse sensor).

Week 28 April – 4 May

Worked on the initial project documentation. Defined the main structure, described the motivation, outlined the architecture, and began listing the components and their roles.

Week 5 – 11 May

Week 12 – 18 May

Week 19 – 25 May

Hardware

  • Raspberry Pi Pico W – The main microcontroller that reads sensor data, controls output devices, and handles logic.
  • MAX30100 Pulse Sensor – Detects heart rate using infrared light and communicates via I2C.
  • 1602 LCD Display (I2C) – Displays heart rate, system messages, or prompts in real time.
  • DFPlayer Mini – MP3 audio playback module used to play sound files stored on a microSD card.
  • MicroSD Card Module – Stores audio files or logs data; used with DFPlayer Mini.
  • Passive Speaker (0.5W) – Plays simple tones or audio feedback through the DFPlayer or filtered signal.
  • Jumper wires, breadboard – Used to connect all components for prototyping.
  • RC Filter (resistors + capacitor) – Smooths the audio signal before sending it to the speaker.

Schematics

TBD

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico WMicrocontroller39,66 RON
MAX30100Heart rate & SpO₂ sensor25 RON
LCD 1602 (I2C)Display15 RON
Miniature Speaker (0.5W)Sound feedback5 RON
MicroSD CardData storage40 RON
BreadboardPrototyping12 RON
DFPlayer MiniMP3 Player14 RON
Keyes 300 Rotation Angle SensorPotentiometer12 RON
RC Filter ComponentsSmooth PWM audio5 RON

Software

LibraryDescriptionUsage
embassy-rsAsync multitasking framework for embedded systemsUsed to manage asynchronous tasks
embedded-halHardware abstraction layer for embedded systemsUsed to interface with embedded peripherals generically
max3010xDriver for MAX30100/MAX30102 pulse oximeter sensorsUsed to read heart rate and SpO₂ data
dfplayer-rsLibrary for controlling the DFPlayer Mini MP3 moduleUsed for audio playback via serial communication
hd44780-driverLCD driver for HD44780-compatible displays over I2CUsed to show text on LCD1602 screens

TBD