

Motherboard
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
8TPS54140ADGQR
MSOP-10-EP-40℃~+150℃@(TJ) 1 1.5A 116uA 2.5MHz 3.5V~42V 800mV~39V Adjustable Buck Buck Built-in No MSOP-10-EP DC-DC Converters ROHSTexas InstrumentsDC-DC Converters25LC256-I/SN
SOIC-8-40℃~+85℃ 1,000,000 cycles 10MHz 2.5V~5.5V 200 Years 256Kbit 5ms SPI SOIC-8 EEPROM ROHSMicrochip TechnologyEEPROMAM26LS32ACDRE4
SOIC-16SOIC-16 RS-485 / RS-422 ICs ROHSTexas InstrumentsRS-485 / RS-422 ICsAP2112K-3.3TRG1
SOT-25-5-40℃~+85℃@(Ta) 1 250mV@(600mA) 3.3V 50uVrms 55uA 600mA 65dB@(1kHz) 6V Fixed Over Current Protection、Thermal Shutdown、Enable control Positive SOT-25-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsLM74700QDBVTQ1
SOT-23-6-40℃~+150℃ 1 11mA 15V 2.37A 20mV 3.2V~65V 65V 80uA External FET Reverse current blocking、Reverse polarity protection、With enable SOT-23-6 ORing Controllers ROHSTexas InstrumentsPower Distribution SwitchesTL431AIDR-MS
SOP-8SOP-8 Voltage Reference ROHSMSKSEMIVoltage ReferenceTXS0104EPWR-TP
TSSOP-14Level translator TSSOP-14 Translators, Level Shifters ROHSTECH PUBLICTranslators, Level ShiftersSS24FL
SOD-123F-55℃~+125℃ 1 Independent 100uA@40V 2A 40V 50A 550mV@2A SOD-123F Schottky Diodes ROHSonsemiSchottky Diodes
README
README.mdSyringe-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
| Area | Contents |
|---|---|
| docs | Report, architecture notes, protocol notes and project catalog |
| firmware | ESP32 and STM32 firmware area |
| software/gui | Main desktop control interface, main_gui.py |
| software/tools | BLE terminal, CSV visualizer and Python dependency notes |
| hardware | KiCad boards, custom libraries and board documentation |
| analysis/matlab | Measurement interpolation and resistance-analysis scripts |
| data/measurements/raw | Original experimental CSV measurements |
| mechanical/renders | Syringe assembly render |
| archive | GUI prototypes and duplicate/legacy experiments |
| docs/references/datasheets | Component reference documents |
| archive/sensor-sdp800 | Sensor 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:
streamlit run software/tools/visualizer.pyIts 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
- Project catalog
- Communication protocol notes
- Project report
- Code-flow diagram
- Firmware pseudocode
- Assembly render
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 10k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R9, R10, R11, R12, R13, R14, R15, R19, R24, R26, R27, R31 |
| 9 | 100n | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C4, C5, C22, C27, C28, C29, C30, C31, C32 |
| 6 | LOGO | LOGO | G***, G***, G***, G***, G***, G*** |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 10K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R20, R21, R25 |
| 3 | 150p | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C15, C16, C17 |
| 3 | 22uH | inductors:IND-SMD_L17.0-W17.0_YSPIA1770-100M | L2, L3, L4 |
| 3 | 330p | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C18, C19, C20 |
| 3 | 390 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R16, R17, R18 |
| 3 | Conn_01x03 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-3-2.54_1x03_P2.54mm_Horizontal | J5, J6, J13 |
| 2 | 1u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C11, C14 |
| 2 | 220u | Capacitor_SMD:C_Elec_10x10.2 | C23, C24 |
| 2 | 47u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C10, C25 |
| 2 | Conn_01x06 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-6-2.54_1x06_P2.54mm_Horizontal | J2, J8 |
| 1 | 100u | Capacitor_SMD:C_Elec_10x10.2 | C3 |
| 1 | 105k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R29 |
| 1 | 10u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C12 |
| 1 | 133k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R7 |
| 1 | 154 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R5 |
| 1 | 1k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R32 |
| 1 | 1k4 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R6 |
| 1 | 1n8 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C8 |
| 1 | 1p2 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C9 |
| 1 | 220p | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C7 |
| 1 | 22n | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C21 |
| 1 | 249k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1 |
| 1 | 25 Ohm | resistors:TO-220-2_L10.1-W4.5-P5.08-L | R28 |
| 1 | 25LC256-I/SN | 25LC256-ISN:SOIC8-N_MC_MCH | U7 |
| 1 | 26V | diodes:SMB_L4.3-W3.6-LS5.4-BI | D1 |
| 1 | 27k4 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R4 |
| 1 | 3n9 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C13 |
| 1 | 47u | inductors:IND-SMD_L13.5-W12.6_125CDMCC-DS | L1 |
| 1 | 499k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R2 |
| 1 | 4k75 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R22 |
| 1 | 4n3 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C6 |
| 1 | 4u7 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1 |
| 1 | 52k3 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R8 |
| 1 | 61k9 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R3 |
| 1 | 6k49 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R30 |
| 1 | 6n8 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C2 |
| 1 | 95k3 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R23 |
| 1 | AM26LS32ACDR | AM26LS32ACDR:D16 | U8 |
| 1 | AP2112K-3.3TRG1 | SOT_RG1:SOT_RG1_DIO | U3 |
| 1 | Conn_01x02 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-3-2-5.08_1x02_P5.08mm_Horizontal | J9 |
| 1 | Conn_01x04 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J4 |
| 1 | Conn_01x04 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal | J1 |
| 1 | Conn_01x05 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-5-2.54_1x05_P2.54mm_Horizontal | J11 |
| 1 | Conn_01x08 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-8-2.54_1x08_P2.54mm_Horizontal | J3 |
| 1 | Conn_01x11 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-11-2.54_1x11_P2.54mm_Horizontal | J12 |
| 1 | DNP | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C26 |
| 1 | LED_BLUE | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D6 |
| 1 | LED_GREEN | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D5 |
| 1 | LED_ORANGE | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D3 |
| 1 | LED_RED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D4 |
| 1 | LED_YELLOW | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D7 |
| 1 | LM74700QDBVTQ1 | LM74700QDBVTQ1:SOT95P280X145-6N | U6 |
| 1 | NMOS | transistors:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | Q3 |
| 1 | NMOS | transistors:PG-TDSON-8_L5.0-W6.0-P1.27-BL-EP | Q1 |
| 1 | NUCLEO-L432KC | NUCLEO_L432KC:MODULE_NUCLEO-L432KC | U4 |
| 1 | PMOS | transistors:DFN-8_L5.7-W4.9-P1.27-LS6.1-BL | Q2 |
| 1 | PTPS259830LNRGER | vqfn24:VQFN24_RGE_TEX | U2 |
| 1 | SS24FL | diodes:SMA_L4.4-W2.8-LS5.4-RD | D2 |
| 1 | Screw_Terminal_01x03 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-3-5.0-H_1x03_P5.00mm_Horizontal | J10 |
| 1 | TL431AIDR | TL431AIDR:D8 | U9 |
| 1 | TPS54140ADGQR | dgq10:DGQ10_1P88X1P57_TEX | U1 |
| 1 | TXS0104EPWR | TXS0104EPWR:SOP65P640X120-14N | U5 |
| 1 | TestPoint | TestPoint:TestPoint_Pad_D2.5mm | TP1 |
| 1 | escon | escon50_5:escon_vero | E1 |
More from RisottoRis8/Breath_Simulator
2- 4 layers100 × 100 mm

- 2 layers22.9 × 20.3 mm

Similar boards
- 2 layers41.5 × 27.6 mm

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 - 2 layers35.6 × 22.9 mm

- 4 layers95.9 × 90.2 mm

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 mm

- 2 layers93 × 85.9 mm

- 4 layers65 × 56 mm

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 mm

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 mm

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.