Skip to the content
4 layers40.3 × 57.1 mmPrimary Board, the printed circuit board in 3D

Pulse Oximeter Capstone Project

Size
40.3 × 57.1 mm
Copper layers
4
Thickness
1.6 mm
Parts
132
Nets
101
Pads
442
Tracks, vias
1,056, 158
Pours
8
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
20 Jun 2026
Updated
27 Jun 2026

Overview

Primary Board is an open-source printed circuit board by agonzalez85, from the agonzalez85/Pulse_Oximeter_Project repository on GitHub. It is a 4-layer board of 40.3 × 57.1 mm with 132 parts on 101 nets, routed with 1,056 tracks and 158 vias.

It is built around the TLV9002ID, REF3333AIDBZR and TMUX1104DGSR, with the 74HC595D and ADG701BRJZ-REEL7 among its other parts. Its parts include 73 capacitors, 26 resistors, 15 ICs, 2 connectors and 1 diode. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

Transmissive Pulse Oximeter

A ground-up, battery-powered clip-on pulse oximeter designed to measure blood oxygen saturation ($SpO_2$), heart rate (BPM), and body temperature in real-time. Built around an ESP32 microcontroller, the device features a custom-designed analog front end (AFE), a discrete SAR ADC, and an OLED display for live vitals and waveform monitoring.

Repository Structure

  • /hardware - Contains all PCB design files, schematics, and the Bill of Materials (BOM).
  • /software - Complete ESP32 firmware source code. Includes the main application (main.ino), custom LED driving logic (LEDDriver.h), discrete ADC libraries (cap_adc.h, ots_adc.h), oxygen calculation algorithms, and OLED GUI drivers.
  • /simulations - LTspice files used to model and verify the AFE, Power Manangement, and SAR ADC binary search behavior prior to physical layout.
  • /docs - Project documentation, including the final project report (Final_Report.pdf) and the final presentation slides (Final_Presentation.pdf).

System Highlights

  • Dual-Wavelength PPG: Uses alternating Red and IR LEDs with ambient light subtraction to calculate precise oxygen saturation.
  • Custom Analog Front End: In-house transimpedance amplification, filtering, and signal conditioning.
  • Thermal Compensation: Integrated PTAT circuit and bandgap reference to prevent thermal drift and ensure measurement accuracy across different operating conditions. Additionally allows for real-time temperature measurement and compensation for the LEDs.
  • Discrete SAR ADC: Custom analog-to-digital conversion using a 14-bit capacitive DAC/off-the-shelf DAC approach alongside an external comparator.
  • Real-time OLED GUI: On-device rendering of the PPG waveform, battery life, $SpO_2$ percentage, BPM, and temperature.

Team

  • Andy Gonzalez – Analog Front End, PTAT & Bandgap, Temperature Compensation, GUI
  • Adam Amir – Power Management, Heart Rate Detection, $SpO_2$ Algorithm
  • Yash Bhagat – SAR ADC, ADC Timing Conversion, Data Acquisition
  • Ben Ha – Mechanical Design, LED Driver

Parts

132
QtyValueFootprintReferences
308pFCapacitor_SMD:C_0603_1608MetricC13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28 +14
17100nFCapacitor_SMD:C_0402_1005MetricC12, C45, C48, C51, C54, C55, C59, C60, C61, C62, C63, C64, C66, C67, C69, C70 +1
7100kProject Footprints:0603_resistorR1, R3, R4, R5, R17, R25, R26
6100Resistor_SMD:R_0402_1005MetricR13, R14, R15, R16, R18, R19
5TMUX1133PWRPackage_SO:TSSOP-16_4.4x5mm_P0.65mmU8, U9, U10, U12, U15
4.1uProject Footprints:0603_capacitorC1, C3, C8, C9
410kProject Footprints:0603_resistorR8, R9, R11, R24
410nFCapacitor_SMD:C_0603_1608MetricC29, C30, C31, C32
41pFCapacitor_SMD:C_0603_1608MetricC4, C56, C57, C58
4MountingHole_PadMountingHole:MountingHole_2.2mm_M2_DIN965_PadH1, H2, H3, H4
4TVGJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmS/H_EN1, S/H1, VG1, VG2
310kResistor_SMD:R_0402_1005MetricR12, R20, R21
3220nProject Footprints:0603_capacitorC6, C7, C68
21uFCapacitor_SMD:C_0402_1005MetricC10, C11
22pFCapacitor_SMD:C_0603_1608MetricC52, C53
24.7kResistor_SMD:R_0402_1005MetricR22, R23
24pFCapacitor_SMD:C_0603_1608MetricC49, C50
274HC595DPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmSR1, SR2
2CAPJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmCAP1, CAP2
2TLV9002Project Footprints:TLV9002U2, U4
1100nProject Footprints:0603_capacitorC73
1100pFCapacitor_SMD:C_0402_1005MetricC71
1150kProject Footprints:0603_resistorR2
11kProject Footprints:0603_resistorR6
11nFCapacitor_SMD:C_0402_1005MetricC65
12.2pProject Footprints:0603_capacitorC2
13.9uProject Footprints:0603_capacitorC5
133kProject Footprints:0603_resistorR10
1390kProject Footprints:0603_resistorR7
13V3 BypassJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmESP_3V3
15034801000Project Footprints:Conn_FFC_10pinJ3
1AD5621AKSZPackage_TO_SOT_SMD:SOT-363_SC-70-6U14
1ADC_BYPASSJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmADC_BY1
1ADG701BRJZ-REEL7Package_TO_SOT_SMD:SOT-23-5_HandSolderingSH1
1Conn_01x10_PinConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ4
1DM-OLED096-636Project Footprints:OLED096-636U6
1MCP6561T-E/OTPackage_TO_SOT_SMD:SOT-23-5_HandSolderingU11
1OPA320SAIDBVRPackage_TO_SOT_SMD:SOT-23-6_HandsolderingU13
1OPA381Project Footprints:OPA381U1
1REF3333AIDBZRPackage_TO_SOT_SMD:SOT-23-3U3
1SFH 2704Project Footprints:SFH2704_LEDLED1
1TMUX1104DGSRPackage_SO:VSSOP-10_3x3mm_P0.5mmU7
1XIAO-ESP32-S3-SMDProject Footprints:XIAO-ESP32-S3-SMDU16

More from agonzalez85/Pulse_Oximeter_Project

1
  • 4 layers40.3 × 57.1 mmSecondary Board, the printed circuit board in 3D

    Secondary Board

    agonzalez85/Pulse_Oximeter_Project

    Pulse Oximeter Capstone Project

    59 parts1

Similar boards

  • 4 layers230 × 84.9 mmDrunkDashboard v2, the printed circuit board in 3D

    DrunkDashboard v2

    drunkbatya/DrunkDashboard

    STM32 powered pixel automotive dashboard

    223 parts1GPL-3.0
  • 4 layers88 × 136 mmSlapdaq board, the printed circuit board in 3D

    Slapdaq board

    graysonriffe/slapdaq-board

    This is the KiCad project for the SlapDAQ PCB.

    72 parts
  • 2 layers77.5 × 107.9 mmPowerBoard, the printed circuit board in 3D

    PowerBoard

    AUV-IITK/electrical-systems

    64 parts4
  • 4 layers140.5 × 58.6 mmTerasaki V.1, the printed circuit board in 3D

    Terasaki V.1

    Kiya86/Terasaki-Main-

    103 parts
  • 4 layers73.6 × 59.8 mmLeak sensor v1, the printed circuit board in 3D

    Leak sensor v1

    lewipewi/leakwatch

    A multi-channel leak sensor for equipment enclosures. Instead of reporting "wet / dry" like a normal leak probe, it measures how wet each enclosure is, on a separate channel per enclosure, and carries a second circuit…

    90 parts
  • 4 layers128 × 68 mmEENLD main, the printed circuit board in 3D

    EENLD main

    light655/EENight_light_dance

    Don't try this at home.

    136 parts
  • 2 layers114 × 135.2 mmKicker LT3751 OxeBots, the printed circuit board in 3D

    Kicker LT3751 OxeBots

    OxeBots/ssl_electronics

    Oxebots electronics design for the RoboCup Soccer Small-Size League

    126 partsGPL-3.0

Questions

How big is the Primary Board PCB?

It measures 40.3 × 57.1 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Primary Board use?

132 parts, built around the TLV9002ID, REF3333AIDBZR, TMUX1104DGSR and 74HC595D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Primary Board KiCad files?

From the agonzalez85/Pulse_Oximeter_Project repository on GitHub, at the commit this page was made from: the board is Hardware/Primary_Board/Primary_Board.kicad_pcb and its schematic Hardware/Primary_Board/ADC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Primary Board design in my own project?

Its repository states no licence, so its author keeps all rights: ask agonzalez85 before reusing the design.