

Primary Board
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
5TLV9002ID
SOIC-8-2.75V~-900mV、900mV~2.75V -40℃~+125℃ 1.6mV 1.8V~5.5V 1MHz 2 2V/us 2pA 30nV/√Hz@1kHz 40mA 5pA 600nV/℃ 60uA 86dB EMI filtering/RF suppression Rail-to-Rail Input, Rail-to-Rail Output SOIC-8 Operational Amplifier ROHSTexas InstrumentsOperational AmplifierREF3333AIDBZR
SOT-23-40℃~+125℃ 3.3V 3.5V~5.5V 30ppm/℃ 5mA 8.5uA 92uVp-p Fixed Series ±0.15% SOT-23 Voltage Reference ROHSTexas InstrumentsVoltage ReferenceTMUX1104DGSR
VSSOP-10-40℃~+125℃ 1.08V~5.5V 1.5pC 12ns 155MHz 2Ω 35pF 4 4:1 5ns Bidirectional analog channel、Fault protection VSSOP-10 Analog Switches, Multiplexers ROHSTexas InstrumentsAnalog Switches, Multiplexers74HC595D
SOP-16-40℃~+105℃ 1 100MHz 15ns@6V,50pF 2V~6V 74HC 8 Asynchronous clear function、Output enable Serial-to-Serial or Parallel Tri-State SOP-16 Shift Registers ROHSJSMSEMIShift RegistersADG701BRJZ-REEL7
SOT-23-5-40℃~+85℃ 1 1.8V~5.5V 12ns 18ns 1:1 200MHz 2Ω SOT-23-5 Analog Switches, Multiplexers ROHSAnalog DevicesAnalog Switches, Multiplexers
README
README.mdTransmissive 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 30 | 8pF | Capacitor_SMD:C_0603_1608Metric | C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28 +14 |
| 17 | 100nF | Capacitor_SMD:C_0402_1005Metric | C12, C45, C48, C51, C54, C55, C59, C60, C61, C62, C63, C64, C66, C67, C69, C70 +1 |
| 7 | 100k | Project Footprints:0603_resistor | R1, R3, R4, R5, R17, R25, R26 |
| 6 | 100 | Resistor_SMD:R_0402_1005Metric | R13, R14, R15, R16, R18, R19 |
| 5 | TMUX1133PWR | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U8, U9, U10, U12, U15 |
| 4 | .1u | Project Footprints:0603_capacitor | C1, C3, C8, C9 |
| 4 | 10k | Project Footprints:0603_resistor | R8, R9, R11, R24 |
| 4 | 10nF | Capacitor_SMD:C_0603_1608Metric | C29, C30, C31, C32 |
| 4 | 1pF | Capacitor_SMD:C_0603_1608Metric | C4, C56, C57, C58 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_2.2mm_M2_DIN965_Pad | H1, H2, H3, H4 |
| 4 | TVG | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | S/H_EN1, S/H1, VG1, VG2 |
| 3 | 10k | Resistor_SMD:R_0402_1005Metric | R12, R20, R21 |
| 3 | 220n | Project Footprints:0603_capacitor | C6, C7, C68 |
| 2 | 1uF | Capacitor_SMD:C_0402_1005Metric | C10, C11 |
| 2 | 2pF | Capacitor_SMD:C_0603_1608Metric | C52, C53 |
| 2 | 4.7k | Resistor_SMD:R_0402_1005Metric | R22, R23 |
| 2 | 4pF | Capacitor_SMD:C_0603_1608Metric | C49, C50 |
| 2 | 74HC595D | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | SR1, SR2 |
| 2 | CAP | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | CAP1, CAP2 |
| 2 | TLV9002 | Project Footprints:TLV9002 | U2, U4 |
| 1 | 100n | Project Footprints:0603_capacitor | C73 |
| 1 | 100pF | Capacitor_SMD:C_0402_1005Metric | C71 |
| 1 | 150k | Project Footprints:0603_resistor | R2 |
| 1 | 1k | Project Footprints:0603_resistor | R6 |
| 1 | 1nF | Capacitor_SMD:C_0402_1005Metric | C65 |
| 1 | 2.2p | Project Footprints:0603_capacitor | C2 |
| 1 | 3.9u | Project Footprints:0603_capacitor | C5 |
| 1 | 33k | Project Footprints:0603_resistor | R10 |
| 1 | 390k | Project Footprints:0603_resistor | R7 |
| 1 | 3V3 Bypass | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | ESP_3V3 |
| 1 | 5034801000 | Project Footprints:Conn_FFC_10pin | J3 |
| 1 | AD5621AKSZ | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U14 |
| 1 | ADC_BYPASS | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | ADC_BY1 |
| 1 | ADG701BRJZ-REEL7 | Package_TO_SOT_SMD:SOT-23-5_HandSoldering | SH1 |
| 1 | Conn_01x10_Pin | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J4 |
| 1 | DM-OLED096-636 | Project Footprints:OLED096-636 | U6 |
| 1 | MCP6561T-E/OT | Package_TO_SOT_SMD:SOT-23-5_HandSoldering | U11 |
| 1 | OPA320SAIDBVR | Package_TO_SOT_SMD:SOT-23-6_Handsoldering | U13 |
| 1 | OPA381 | Project Footprints:OPA381 | U1 |
| 1 | REF3333AIDBZR | Package_TO_SOT_SMD:SOT-23-3 | U3 |
| 1 | SFH 2704 | Project Footprints:SFH2704_LED | LED1 |
| 1 | TMUX1104DGSR | Package_SO:VSSOP-10_3x3mm_P0.5mm | U7 |
| 1 | XIAO-ESP32-S3-SMD | Project Footprints:XIAO-ESP32-S3-SMD | U16 |
More from agonzalez85/Pulse_Oximeter_Project
1- 4 layers40.3 × 57.1 mm

Similar boards
- 4 layers230 × 84.9 mm

- 4 layers88 × 136 mm

- 2 layers77.5 × 107.9 mm

- 4 layers140.5 × 58.6 mm

- 4 layers73.6 × 59.8 mm

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 mm

- 2 layers114 × 135.2 mm

Kicker LT3751 OxeBots
OxeBots/ssl_electronics
Oxebots electronics design for the RoboCup Soccer Small-Size League
126 partsGPL-3.0 - 2 layers

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.