← projects

Pulse Oximeter

A pulse oximeter built from scratch, with a custom PCB and a Poké Ball-inspired case.

Completed pulse oximeter in a 3D-printed Poké Ball case
Date
Oct 2022 – Jun 2023
Context
UCLA BMES Build Team
Discipline
medical device development
Stack
Arduino Nano · MCP6041 op-amps · EAGLE PCB · Processing · Autodesk Fusion 360

A pulse oximeter is a medical device that measures your blood oxygen levels and pulse.

During my sophomore year, I built a pulse oximeter from scratch with a team of four, using circuitry, CAD, and software development. This project was part of the Biomedical Engineering Society (BMES) at UCLA’s Build Team technical project.

Pulse waveform displayed in Processing

Pulse reading.

We used Processing to handle the pulse signal and display the waveform in an easily readable way. The pulse rate was calculated with a peak-detection algorithm we developed. Here’s a real-time video.

Breadboarded pulse sensing circuit

Breadboarded circuit.

To detect the pulse, we used a red LED and a photodiode to capture absorbance, which changes with blood volume in the finger. The sensing circuit amplifies the signal with MCP6041 op-amps and filters it with capacitors, with an Arduino as the microcontroller. We breadboarded it first, then recreated it in EAGLE to make a printed circuit board.

Circuit schematic

Circuit schematic.

PCB layout

PCB design.

Once the PCB was printed, we soldered the components onto the board. The PCB was designed to sit on top of an Arduino Nano.

Soldering components onto the PCB

Soldering in progress.

The casing for the electronics was designed in Autodesk Fusion 360. We modeled it on the beloved Poké Ball, with a hole for users to insert their finger for a pulse reading.

CAD model of the casing

CAD of the casing.

3D-printed casing

Printed model.

PCB inserted into the casing

PCB inserted into the casing.

Our final device successfully read our pulse! We presented it at a Demo Day at the end of the school year alongside the other BMES technical projects.

The team at Demo Day

My team at our Demo Day!