πŸ”¬
EIM Academy
  • πŸ‘Welcome to EIM Learning Center
  • Electronics Engineering
    • Electronics Enegineering
    • πŸ‘01-Basic Electricity
      • Before Your First Circuit
      • Measure electricity
      • Electromagnetic Induction
    • πŸ‘02-Electrical Circuits
      • Ohm's Law
      • Series and Parallel Circuits
      • Voltage and Current Divider
      • Watt’s Law
      • Kirchhoff's laws
    • πŸ‘03-Analog Circuits and Semiconductors
    • πŸ‘04-Digital Circuits and FPGA
      • Chapter 3 Code
      • Chapter 4 Code
      • Chapter 5 Code
      • Chapter 6 Code
      • Design for Simulations
    • ✍️05-Engineering Signals and Analog Filters
  • Skill Development
    • πŸ‘01-Breadboarding Skills
      • Tools & Accessories
      • Breadboard Projects
    • πŸ‘‰02-Electronics Soldering
      • Practice Projects
    • ✍️03-Perfboard Prototyping
  • Project-based Learning
    • πŸ‘Green Electrical Energy
    • πŸ‘Smart Traffic Light
      • Board Design
      • STEPico & Micropython
      • STEPFPGA & Verilog
      • Demos
    • ✍️Electronic Pinao with FPGA
    • ✍️Semiconductor Cooler
      • What You'll Learn
      • Technical Docs
      • Project Demo
    • πŸ‘Smart Greenhouse
      • Irrigation System
      • Lighting System
      • Temperature Control System
      • Humidity Control System
    • πŸ‘AI with Hardware
      • Finger Detection
      • LCD control by Hand Gesture
      • Robotic Hand
      • Facial Recognition Security System
      • Common Questions
      • Video Tutorial
  • ✍️Bio-medical Applications
    • Blood Oximeter
    • Electrocardiogram
    • Electromyography
  • Educational Development
    • πŸ‘‰Educational Development
    • Educators' Repository
    • Basic Electronics Lesson Plan
      • Electronics Components
      • Ohm's Law
      • Series & Parallel Circuit
      • Watt's Law
      • Kirchhoff's Law
Powered by GitBook
On this page
  • Project Overview
  • Circuiting Instruction

Was this helpful?

  1. Bio-medical Applications

Blood Oximeter

PreviousBio-medical ApplicationsNextElectrocardiogram

Last updated 1 month ago

Was this helpful?

Project Overview

If you have ever been a patient at an emergency room before, you may have had a plastic clip with a wire attached to your finger. That clip is called a pulse oximeter: it’s a monitoring device used to track and report the oxygen levels in your blood as well as your heart rate.

Pulse oximeters are a non-invasive, compact, and easy method of gathering important information for monitoring patients. They also prove to be a useful tool for diagnosing issues related to low oxygen levels in your blood, such as heart attacks and heart failure.

Thanks to the development of this technology, many lives have been saved and minds kept at peace. The pulse oximeter’s ease of use and ability to alert others for medical attention when a patient’s oxygen levels are dangerously low has prevented many deaths.

In this project, we will use the Max30102 pulse oximeter module to obtain raw data and transfer it to the STEPico microcontroller. The microcontroller will record the data, calculate the average value, and use its built-in LED lights and ST7789 display to show the information.

List of materials and tools:

  • 1 Breadboard

  • 1 Max30102 pulse oximeter module

  • 1 STEPico microcontroller

  • 1 ST7789 display

  • 1 USB type-C cable

  • Multiple male to male jumper wires

  • A computer with Thonny IDE and MicroPython installed

Circuiting Instruction

Out of the 8 pins on the max30102 module, only 4 are used (GND, VIN, SCL, SDA) for this oximeter project. GND and VIN supply power to the module (3.3V or 5V input) while SCL and SDA are communication pins utilizing the I2C. I2C is a simple short range bidirectional communication protocol only needing 2 pins (clock and data) given that the devices already share the same GND.

Note that Max30102 module’s SDA and SCL pin could be connected to any I2C SCL/SDA GPIO pin on STEPico, but should ensure the I2C ID of the pin will be the same as the I2C ID of the pin you connect the other pin to.

GND

negative power pin

any GND on STEPico

VIN

Input voltage positive power pin

3V3(OUT)

SCL

An I2C communication pin. SCL is a clock pin that keeps the module and STEPico in sync for communication

Any I2C SCL GPIO pin. Ensure the I2C ID of the pin will be the same as the I2C ID of the pin you connect SDA to.

SDA

An I2C communication pin. SDA is the data pin that sends information.

Any I2C SDA GPIO pin. Ensure the I2C ID of the pin is the same as your SCL’s I2C ID

A bidirectional communication protocol in hardware design enables two-way data exchange between devices, allowing both to send and receive signals dynamically. It is essential for real-time interaction, efficient data transfer, and error handling in embedded systems. Common examples include UART, I2C, SPI, and USB, which facilitate communication between microcontrollers, sensors, and peripherals. These protocols often use clock synchronization, handshaking, or acknowledgment mechanisms to ensure reliable data flow.

The display for the projects is ST7789. This display is a type of thin-film-transistor liquid-crystal display (TFT-LCD) controller driver developed by Sitronix. It is widely used in small, full-color displays for embedded systems, IoT devices, and other compact hardware applications.

To wire your STEPico to your ST7789, follow the steps to connect them on breadboard(figure 1.3.10):

Power Connections:

  • Connect the VCC pin of the display to the 3.3V power pin on STEPico.

  • Connect the GND pin of the display to any GND pin on the STEPico.

SPI Interface:

  • Connect the SCL pin on the display to GP18.

  • Connect the DSA pin on the display to GP19.

Control Pins:

  • Connect the RES pin on the display to GP16.

  • Connect the DC pin to GP21.

  • Connect the CS pin to GP17.

Backlight:

  • Connect the BL pin to GP20.

By completing circuiting, the breadboard should be like the following image

✍️