Skip to the content
4 layers148.8 × 100 mmMotherboard, the printed circuit board in 3D

Progetti Ing Biomed

Size
148.8 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
111
Nets
102
Pads
395
Tracks, vias
14,551, 471
Pours
20
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Mar 2026
Updated
25 Aug 2026

Overview

Motherboard is an open-source printed circuit board by RisottoRis8, from the RisottoRis8/Breath_Simulator repository on GitHub. It is a 4-layer board of 148.8 × 100 mm with 111 parts on 102 nets, routed with 14,551 tracks and 471 vias.

It is built around the TPS54140ADGQR, 25LC256-I/SN and AM26LS32ACDRE4, with the AP2112K-3.3TRG1, LM74700QDBVTQ1 and TL431AIDR-MS among its other parts. Its parts include 32 capacitors, 32 resistors, 12 connectors, 9 ICs and 7 diodes. It belongs with the computers and single-board computers boards of this library.

Main components

8

README

README.md

Syringe-Based Breathing Simulator

University biomedical engineering project developed by Gruppo Viola: a motorized syringe generates controlled air flow at its outlet. The system combines a BLDC motor with an ESCON 50/5 drive, encoder feedback, Sensirion pressure or mass-flow sensing, PID control, BLE communication and a desktop monitoring GUI.

This repository presents the final ESP32-based system together with its electronics, control software, measurement data and technical documentation. Earlier firmware, interface and hardware iterations are preserved separately as supporting development history.

System overview

The final firmware runs on an ESP32 and coordinates:

  • flow sensing through SDP810 or SFM3300 devices;
  • motor control through the ESCON driver;
  • incremental encoder feedback and homing signals;
  • PID regulation of the generated flow;
  • external SPI EEPROM storage;
  • HM-10 compatible BLE telemetry and commands.

The final architecture is supported by a custom control board and a desktop BLE interface. Earlier STM32 and ESP32 bridge implementations are preserved as development iterations.

Repository map

AreaContents
docsReport, architecture notes, protocol notes and project catalog
firmwareESP32 and STM32 firmware area
software/guiMain desktop control interface, main_gui.py
software/toolsBLE terminal, CSV visualizer and Python dependency notes
hardwareKiCad boards, custom libraries and board documentation
analysis/matlabMeasurement interpolation and resistance-analysis scripts
data/measurements/rawOriginal experimental CSV measurements
mechanical/rendersSyringe assembly render
archiveGUI prototypes and duplicate/legacy experiments
docs/references/datasheetsComponent reference documents
archive/sensor-sdp800Sensor sample-code project and documentation

The detailed working inventory is in docs/PROJECT_CATALOG.md.

Final system

  • Controller: firmware/esp32/main coordinates sensing, encoder feedback, motor actuation, PID flow regulation, EEPROM storage and BLE communication.
  • Control interface: software/gui/main_gui.py provides BLE discovery, connection management, real-time flow/position/PWM plots, operating modes, calibration controls, logging and emergency stop.
  • Electronics: hardware/motherboard-r2 and hardware/pogo-adapter contain the KiCad designs for the control board and sensor adapter. The original motherboard design is preserved as motherboard-r1.
  • Validation data: data/measurements/raw contains the experimental acquisitions used during characterization and analysis.

Communication status

The final ESP32 interface uses an HM-10-compatible BLE service (FFE0/FFE1) and telemetry frames in the form SNSR <flow> <encoder_position> <pwm>. The communication details are summarized in docs/protocol.md.

The earlier Nordic UART bridge and STM32 variants remain available in archive as development iterations and are not part of the primary ESP32 control path.

Running the Python tools

The main GUI requires Python packages including PyQt6, pyqtgraph, bleak and qasync. The BLE terminal declares its dependency in requirements-ble.txt.

The CSV visualizer is a separate Streamlit utility:

text
streamlit run software/tools/visualizer.py

Its expected columns are Timestamp_s and Pressione_Pa; the raw measurements commonly use Time_s and Pressure_Pa, so they are not directly interchangeable yet.

Firmware and hardware

The Arduino ESP32 sketch is located in firmware/esp32/main and uses the local NimBLE-Arduino library in firmware/esp32/libraries.

KiCad source files are separated from local state, backups and manufacturing exports. The root .gitignore excludes regenerable artifacts while keeping source schematics, PCB files, custom libraries and experimental measurements available for review.

Project documentation

Development history

Previous ESP32 sketches, STM32 firmware, BLE bridges and GUI prototypes are preserved in archive. They document the iterations that led to the final ESP32 architecture, while the project entrypoints above describe the system delivered by the team.

Parts

111
QtyValueFootprintReferences
1210kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR9, R10, R11, R12, R13, R14, R15, R19, R24, R26, R27, R31
9100nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4, C5, C22, C27, C28, C29, C30, C31, C32
6LOGOLOGOG***, G***, G***, G***, G***, G***
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
310KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR20, R21, R25
3150pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC15, C16, C17
322uHinductors:IND-SMD_L17.0-W17.0_YSPIA1770-100ML2, L3, L4
3330pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC18, C19, C20
3390Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR16, R17, R18
3Conn_01x03TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-3-2.54_1x03_P2.54mm_HorizontalJ5, J6, J13
21uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC11, C14
2220uCapacitor_SMD:C_Elec_10x10.2C23, C24
247uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC10, C25
2Conn_01x06TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-6-2.54_1x06_P2.54mm_HorizontalJ2, J8
1100uCapacitor_SMD:C_Elec_10x10.2C3
1105kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR29
110uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC12
1133kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR7
1154Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR5
11kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR32
11k4Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR6
11n8Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC8
11p2Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC9
1220pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC7
122nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC21
1249kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1
125 Ohmresistors:TO-220-2_L10.1-W4.5-P5.08-LR28
125LC256-I/SN25LC256-ISN:SOIC8-N_MC_MCHU7
126Vdiodes:SMB_L4.3-W3.6-LS5.4-BID1
127k4Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4
13n9Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC13
147uinductors:IND-SMD_L13.5-W12.6_125CDMCC-DSL1
1499kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
14k75Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR22
14n3Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6
14u7Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
152k3Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR8
161k9Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3
16k49Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR30
16n8Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2
195k3Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR23
1AM26LS32ACDRAM26LS32ACDR:D16U8
1AP2112K-3.3TRG1SOT_RG1:SOT_RG1_DIOU3
1Conn_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-3-2-5.08_1x02_P5.08mm_HorizontalJ9
1Conn_01x04Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ4
1Conn_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_HorizontalJ1
1Conn_01x05TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-5-2.54_1x05_P2.54mm_HorizontalJ11
1Conn_01x08TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-8-2.54_1x08_P2.54mm_HorizontalJ3
1Conn_01x11TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-11-2.54_1x11_P2.54mm_HorizontalJ12
1DNPCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC26
1LED_BLUELED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD6
1LED_GREENLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD5
1LED_ORANGELED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD3
1LED_REDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD4
1LED_YELLOWLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD7
1LM74700QDBVTQ1LM74700QDBVTQ1:SOT95P280X145-6NU6
1NMOStransistors:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BRQ3
1NMOStransistors:PG-TDSON-8_L5.0-W6.0-P1.27-BL-EPQ1
1NUCLEO-L432KCNUCLEO_L432KC:MODULE_NUCLEO-L432KCU4
1PMOStransistors:DFN-8_L5.7-W4.9-P1.27-LS6.1-BLQ2
1PTPS259830LNRGERvqfn24:VQFN24_RGE_TEXU2
1SS24FLdiodes:SMA_L4.4-W2.8-LS5.4-RDD2
1Screw_Terminal_01x03TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-3-5.0-H_1x03_P5.00mm_HorizontalJ10
1TL431AIDRTL431AIDR:D8U9
1TPS54140ADGQRdgq10:DGQ10_1P88X1P57_TEXU1
1TXS0104EPWRTXS0104EPWR:SOP65P640X120-14NU5
1TestPointTestPoint:TestPoint_Pad_D2.5mmTP1
1esconescon50_5:escon_veroE1

More from RisottoRis8/Breath_Simulator

2
  • 4 layers100 × 100 mmMotherboard rev2, the printed circuit board in 3D

    Motherboard rev2

    RisottoRis8/Breath_Simulator

    Progetti Ing Biomed

    79 parts1
  • 2 layers22.9 × 20.3 mmPogoAdapter, the printed circuit board in 3D

    PogoAdapter

    RisottoRis8/Breath_Simulator

    Progetti Ing Biomed

    14 parts1

Similar boards

  • 2 layers41.5 × 27.6 mmGP Encoder Tran, the printed circuit board in 3D

    GP Encoder Tran

    Ahmedyasser572/Graduation_project_Field_Oriented_Control_For_PMSM

    This project implements and tests a Field-Oriented Control (FOC) system for a Permanent Magnet Synchronous Motor (PMSM).

    14 parts
  • 4 layers95.9 × 90.2 mmKENSAT EPS v1.2, the printed circuit board in 3D

    KENSAT EPS v1.2

    kenchangh/kensat

    KENSAT, Edge-AI Compute in Orbit - A 2U CubeSat that runs a large language model on-orbit. A power-gated NVIDIA Jetson Orin Nano executes neural-network inference in space, and the results are downlinked over a custom…

    218 parts119
  • 4 layers165.2 × 72 mmAudiograb, the printed circuit board in 3D

    Audiograb

    oveljosland/audiograb-pcb

    Design files for the Audiograb PCB.

    134 parts4CERN-OHL-S-2.0
  • 2 layers93 × 85.9 mmMiniSumoSTM, the printed circuit board in 3D

    MiniSumoSTM

    balamutnypapcio/MiniWilus2.0

    68 parts
  • 4 layers65 × 56 mmCanary pwr, the printed circuit board in 3D

    Canary pwr

    danbrunski/canary

    Four 25 F cells in series for CANary-PWR's LTC3350 hold-up, on a lead (design record: docs/CANary-PWR-Spec.md §P4). The board has no active parts: four cells, an NTC, two Kelvin net ties and a Micro-Fit 2 × 5 header.

    132 parts
  • 4 layers200 × 45 mmMQTT ModularControllerBoard, the printed circuit board in 3D

    MQTT ModularControllerBoard

    WiddleWabbit/MQTT-ModularControllerBoard

    ESP32-S3-WROOM-1U based motherboard designed to communicate externally via MQTT, and read sensors, control interfaces and other hardware through purpose built modules.

    83 partsCERN-OHL-P-2.0
  • 2 layers63.5 × 99.1 mmBlugasm, the printed circuit board in 3D

    Blugasm

    saawsm/Blugasm

    A battery powered nogasm with support for bluetooth toys.

    74 parts19GPL-3.0

Questions

How big is the Motherboard PCB?

It measures 148.8 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Motherboard use?

111 parts, built around the TPS54140ADGQR, 25LC256-I/SN, AM26LS32ACDRE4 and AP2112K-3.3TRG1. 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 Motherboard KiCad files?

From the RisottoRis8/Breath_Simulator repository on GitHub, at the commit this page was made from: the board is hardware/motherboard-r1/motherboard.kicad_pcb and its schematic hardware/motherboard-r1/ESCON50_5_sch.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Motherboard design in my own project?

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