Skip to main content
Version: FILS English

PulseOx

A device that monitors your pulse and oxygen levels, alerting you the moment vitals lose balance

info

Description

PulseOx is a sophisticated health-monitoring station designed for real-time tracking of heart rate and oxygen saturation. Using advanced optical sensing, the system provides instant physiological insights through live waveforms and clear data visualization on an integrated display. With an intuitive tactile interface and audio feedback, it offers a seamless way to monitor and manage your vital signs in any environment.

Motivation

The PulseOx project was born from the need for reliable, accessible monitoring of life-critical parameters. From an engineering perspective, it presented a complex system integration challenge: synchronizing high-frequency data acquisition from optical sensors with real-time waveform rendering on a TFT display. The goal is to bridge the gap between raw signal processing and intuitive user feedback, creating a responsive, standalone device that transforms physiological data into actionable health insights.

Architecture

Here is the schematic of the project:

Architecture

Log

Week 5

Brainstormed the ideas for the project and searched for the required components.

Week 6

Discussed the idea of the project with lab assistant and ordered the components & other necessary supplies.

Weeks 7-8

Started working on my project:

  • soldered MAX30102 sensor(and 2 back-up ones)
  • found data sheets for the sensor and the screen
  • set up the display of the information on the display
  • sped up the process of the update on the screen

Hardware

The hardware architecture of PulseOx utilizes an STM32U5 microcontroller as its high-performance processing core. Physiological sensing is handled by a MAX30102 high-sensitivity optical sensor, capturing both heart rate (BPM) and blood oxygen saturation (SpO2). The system features a TFT ST7789V display for real-time data visualization, capable of rendering complex signal waveforms alongside numerical measurements. User interaction is enhanced through an active buzzer for synchronized audio feedback and a tactile button interface for seamless measurement control.

Schematics

Place your KiCAD or similar schematics here in SVG format(will be displayed once everything is connected together.)

Bill of Materials

DeviceUsagePrice
STM32 NUCLEO-U545RE-QThe microcontrollerborrowed
TFT Display ST7789VUser interface screen55 RON
BPM and SpO2 sensor MAX30102Measurement of pulse and blood oxygen30 RON
Active buzzerFeedback giver1 RON

Software

LibraryDescriptionUsage
embassy_stm32Hardware abstraction layer for STM32Configures clocks, GPIO, SPI and initializes microcontroller
embassy_executorAsync task executor for bare-metal embedded systemsManages scheduling and running async tasks on the device
display_interface_spiSPI communication interface for displaysConnects SPI bus with the display driver
ili9341Display driver for ILI9341 TFTControls the display (init, clear, draw pixels)
embedded_graphics2D graphics library for embedded displaysDraws text, buttons, shapes on the screen
embassy_timeAsync timers and delaysUsed for delays
embassy_syncSynchronization primitivesProvides Mutex for safe shared access to SPI
embassy_embedded_halHAL abstraction for Embassy async frameworkProvides SpiDevice to safely share SPI bus between devices
coreRust core libraryProvides basic functionality
panic_probePanic handler for embedded systemsCaptures and displays panics for debugging
defmt_rttLogging framework for embeddedSends debug messages from MCU to PC
  1. MAX30102 Data Sheet
  2. ILI9341 Data Sheet