
Pratham
PeriwalPratham/FlightController
A basic PCB design which contains all components for a solo yet affordable basic drone controller

KiCad protected buck converter with Python-based automated hardware validation, fault injection, and CI reporting
Protected buck is an open-source printed circuit board by Shanshan3133, from the Shanshan3133/automated-hardware-validation-framework repository on GitHub. It is a 2-layer board of 120 × 70 mm with 35 parts on 20 nets, routed with 214 tracks and 35 vias.
It is built around the TPS5431DDA, TPS26600PWP and B340A, with the SMBJ24A among its other parts. Its parts include 16 resistors, 7 capacitors, 3 connectors, 2 ICs and 2 diodes. It belongs with the power boards of this library.
A portfolio project combining a protected 5 V buck-converter PCB with a Python automated validation bench. It demonstrates PCB design, instrument automation, fault injection, safety interlocks, data logging, and CI-style reporting—the day-to-day concerns of hardware validation and systems-integration engineering.
Engineering status: the software framework is operational. The KiCad 10 schematic passes ERC with zero violations, and the routed PCB passes DRC with zero violations and zero unconnected pads. This is still an engineering prototype, not a fabrication release: land patterns, thermal-via design, compensation, derating, enclosure constraints, and schematic/PCB parity need independent review.

The editable source is hardware/protected_buck.kicad_sch; its generated PDF is included for design review. KiCad 10.0.6 reports zero ERC errors and zero ERC warnings, and the automated parity check matches all 88 schematic pins to 88 PCB pads.
This review overview explicitly separates the TPS26600 RTN domain from SYSTEM_GND, shows the required 10 nF BOOT-to-PH capacitor, and identifies the protected DAQ signals.
The DUT uses a TPS26600 eFuse front end and a TPS5431 asynchronous buck stage. It targets 8–18 V input, regulated 5 V output, and a 1 A continuous validation load. The fixture connector exposes divided VIN/VOUT measurements, active-low fault status, shutdown control, and current-monitor signals.
flowchart LR
PY[Python test runner] -->|SCPI / USB| PSU[Programmable supply]
PSU --> DUT[Protected 5 V buck DUT]
DUT --> LOAD[Electronic load]
DUT -->|VIN and VOUT| ADC[MCP3008 ADC]
DUT -->|FLT and SHDN| GPIO[Raspberry Pi GPIO]
ADC --> PI[Raspberry Pi]
GPIO --> PI
PI --> PY
PY --> DATA[CSV and JSON results]
DATA --> REPORT[CI-style HTML report]All test logic depends on an abstract Bench interface. The same suite runs against a deterministic behavioral simulator in CI or against physical SCPI instruments and Raspberry Pi I/O in the lab.
| Test | Stimulus | Measurement | Pass criterion |
|---|---|---|---|
| Line regulation | VIN from 8 V to 18 V | VOUT | 5.0 V ±3% |
| Load regulation | Load from 0 A to 1 A | VOUT | 5.0 V ±3% |
| Output ripple | 2,000 samples at 10 MS/s | Robust Vpp | <50 mVpp |
| UVLO rising | VIN from 6 V to 9 V | Turn-on threshold | 7.1–7.9 V |
| OVP rising | VIN from 17 V to 21 V | Fault threshold | 18.4–19.6 V |
| Overcurrent trip | Load from 0.5 A to 1.8 A | Fault threshold | 1.35–1.65 A |
The MCP3008 measures DC rails and low-frequency behavior. The physical ripple test deliberately requests a 10 MS/s window through a SCPI oscilloscope adapter because a low-speed ADC cannot characterize the TPS5431's 500 kHz switching ripple. Use a bandwidth-limited scope measurement with a short ground spring and verify the scope's actual acquisition settings.
PASS Line regulation: VOUT range 4.995–5.011 V
PASS Load regulation: VOUT range 4.992–5.010 V
PASS Output ripple: Ripple 30.3 mVpp; mean 4.993 V
PASS UVLO rising: Turn-on detected at 7.50 V
PASS OVP rising: Trip detected at 19.05 V
PASS Overcurrent trip: Trip detected at 1.500 AView the self-contained HTML report with measurement plots, machine-readable results, and individual CSV files in artifacts/.
Fault injection verifies that real specification failures are detected:
python -m validation.cli run --backend sim --fault high-ripple --output artifacts-failingThis produces a failing 91.3 mVpp result and a nonzero process exit code suitable for CI gating.
hardware/
protected_buck.kicad_pro KiCad project
protected_buck.kicad_sch complete editable schematic; ERC clean
protected_buck.kicad_pcb routed two-layer PCB; DRC clean
protected_buck.dsn/.ses reproducible Specctra routing exchange
protected_buck_3d.png generated 3D preview
protected_buck_layout.pdf copper-layer review PDF
protected_buck_schematic.pdf schematic review PDF
BOM.csv preliminary bill of materials
DESIGN.md calculations and layout rationale
BRINGUP.md controlled first-power procedure
validation/
instruments.py bench abstraction
simulator.py deterministic behavioral DUT model
real_bench.py PyVISA supply/load/scope, MCP3008, and GPIO adapters
test_cases.py validation procedures and limits
report.py CSV, JSON, and HTML reporting
tests/ software unit tests
scripts/generate_board.py reproducible KiCad PCB generator
scripts/finalize_route.py imports routing session and finalizes reviewed nets
scripts/generate_schematic_modern.py reproducible KiCad 10 schematic generator
scripts/check_design_parity.py checks every schematic pin against its PCB pad net
.github/workflows/ simulated validation workflowSimulation requires Python 3.10+ and no third-party runtime packages:
python -m validation.cli run --backend sim --output artifacts
python -m unittest discover -s tests -vOpen artifacts/report.html after the run.
pip install -e ".[raspberry-pi]"
Copy-Item validation/real_bench.example.json bench.json
python -m validation.cli run --backend real --config bench.json --output artifacts-realBefore using the real backend:
The real-bench factory rejects configurations above the 2 A project safety ceiling before opening hardware resources. safe_shutdown() removes the electronic load and source output if a test raises an exception.
| Characteristic | Target |
|---|---|
| Operating input range | 8–18 V |
| Output voltage | 5.0 V ±3% |
| Validation load | 1.0 A continuous |
| Automated ripple screen | <50 mVpp |
| UVLO rising threshold | 7.5 V ±0.4 V |
| OVP rising threshold | 19.0 V ±0.6 V |
| Current-limit trip | 1.50 A ±0.15 A |
See DESIGN.md for calculations, VALIDATION_STATUS.md for the exact engineering status, and ROUTING_CHECKLIST.md for the post-routing review gates.
This repository is an engineering portfolio artifact and learning platform. It is not a certified power product or production manufacturing release.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 10k 1% | R_0603_1608Metric | R2, R4, R9, R11, R12 |
| 3 | 10uF 50V | C_1210_3225Metric | C1, C2, C6 |
| 2 | 100k | R_0603_1608Metric | R7, R16 |
| 2 | 47uF 10V | C_1210_3225Metric | C8, C9 |
| 1 | +5V | TestPoint_Plated_Hole_D2.0mm | TP3 |
| 1 | 0R | R_0603_1608Metric | R14 |
| 1 | 10nF BOOT | C_0603_1608Metric | C7 |
| 1 | 150k 1% | R_0603_1608Metric | R3 |
| 1 | 15k 1% | R_0603_1608Metric | R13 |
| 1 | 15uH 4A | L_10.4x10.4_H4.8 | L1 |
| 1 | 16.9k 1% | R_0603_1608Metric | R15 |
| 1 | 1k | R_0603_1608Metric | R6 |
| 1 | 22nF | C_0603_1608Metric | C5 |
| 1 | 30.9k 1% | R_0603_1608Metric | R8 |
| 1 | 52.3k 1% | R_0603_1608Metric | R1 |
| 1 | 56k 1% | R_0603_1608Metric | R10 |
| 1 | 5V OUT | TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J2 |
| 1 | 8.06k 1% | R_0603_1608Metric | R5 |
| 1 | B340A | D_SMA | D2 |
| 1 | DAQ | PinHeader_1x06_P2.54mm_Vertical | J3 |
| 1 | GND | TestPoint_Plated_Hole_D2.0mm | TP4 |
| 1 | PROTECTED_IN | TestPoint_Plated_Hole_D2.0mm | TP2 |
| 1 | SMBJ24A | D_SMB | D1 |
| 1 | TPS26600PWP | HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.66x2.46mm | U1 |
| 1 | TPS5431DDA | TI_SO-PowerPAD-8 | U2 |
| 1 | VIN | TestPoint_Plated_Hole_D2.0mm | TP1 |
| 1 | VIN 8-18V | TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J1 |

PeriwalPratham/FlightController
A basic PCB design which contains all components for a solo yet affordable basic drone controller


ziteh/pd-power-supply
Adjustable power supply based on USB PD (WIP)



RomLab/pcb-system-for-underfloor-heating-v2.0
PCB for underfloor heating system


zinedkahitaf-lang/AKD-SAFE-SourceControl
Infrastructure-Based Active Engineering Safety Platform. Move the safety burden from the worker to the hazard. Engineering prototype - not a certified safety device.
It measures 120 × 70 mm and has 2 copper layers, 1.6 mm thick.
35 parts, built around the TPS5431DDA, TPS26600PWP, B340A and SMBJ24A. 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.
From the Shanshan3133/automated-hardware-validation-framework repository on GitHub, at the commit this page was made from: the board is hardware/protected_buck.kicad_pcb and its schematic hardware/protected_buck.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Shanshan3133 before reusing the design.