Skip to the content
2 layers37.3 × 33.8 mmMinimal STM, the printed circuit board in 3D

A custom-designed breakout/minimum-system board built around the STM32F411 microcontroller, designed from datasheet-driven first principles rather than copied reference schematics.

Size
37.3 × 33.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
49
Pads
149
Tracks, vias
185, 26
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Sep 2026
Updated
14 Sep 2026

Overview

Minimal STM is an open-source printed circuit board by Gregor-prog, from the Gregor-prog/Minimal_STM32 repository on GitHub. It is a 2-layer board of 37.3 × 33.8 mm with 24 parts on 49 nets, routed with 185 tracks and 26 vias.

It is built around the DRV8833RTYR and AP2112K-3.3. Its parts include 13 capacitors, 3 resistors, 3 ICs, 3 connectors and 2 switches. It belongs with the STM32 boards of this library.

Main components

2

README

readme.md

STM32F411 Minimum System Board

A custom-designed breakout/minimum-system board built around the STM32F411 microcontroller, designed from datasheet-driven first principles rather than copied reference schematics. This project exists to build genuine hardware design intuition — every component value and circuit decision below was derived by reading the relevant datasheet, not by mimicking an existing board.

This board also serves as a stepping stone toward a larger drone flight controller [blocked] project, sharing the same MCU family and several of the same design fundamentals (power regulation, motor driving, reset/boot circuitry).

Status

🚧 In progress — schematic capture / PCB layout stage. Not yet fabricated. See Success Criteria for what "done" means for this iteration.

Overview

MCUSTM32F411 (LQFP48)
Programming interfaceSWD (via external ST-Link probe)
Power inputSingle-cell battery (3.7V nominal)
Regulated rail3.3V
Motor driverDRV8833 (dual H-bridge)
Form factorESP32 dev-board-style footprint
Design toolKiCad

Why This Board Exists

Prior PCB work (an ESP32 minimal board) was largely built by following a tutorial's schematic without fully understanding why each component and value was chosen. This project deliberately reverses that: every design decision below is backed by a specific datasheet reference, and wrong first attempts are documented rather than hidden, since the mistakes were as instructive as the final design.

Design Process

This board followed a structured, professional-style workflow rather than jumping straight into schematic capture:

  1. Requirements Definition — functional requirements, power budget, and constraints written before opening any tool.
  2. Block Diagram — system partitioned into functional subsystems (power, MCU, motor driver, communication, GPIO, boot/reset, clock) before component-level detail.
  3. Component Selection — actual part numbers chosen and verified against datasheets.
  4. Schematic Capture — drawn in KiCad using values derived from datasheets, not copied designs.
  5. Simulation & ERC — power stage checked in SPICE where applicable; full schematic run through Electrical Rule Check.
  6. Design Review — each block checked against the original requirements.
  7. PCB Layout & DRC — physical placement and routing, checked against manufacturing rules.
  8. (Fabrication and physical testing are out of scope for this iteration — see Success Criteria.)

This same process is intended to be reused for future hardware projects, including the drone flight controller.

Requirements

  • Power delivery via a single-cell battery, stepped down to a regulated 3.3V rail
  • Total current budget: ~150mA (STM32F411 draws up to ~100mA, plus margin) — separate and isolated from motor current, which is supplied directly from the battery through the motor driver IC, not through the logic supply
  • Programming via SWD (SWDIO, SWCLK, Power, Ground exposed on a header)
  • General-purpose I/O exposed: multiple I2C and UART pins, PWM-capable pins, analog/digital GPIO, ADC pins — for driving LEDs and low-current peripherals only
  • Motor driver IC (DRV8833) with motor outputs exposed separately from the GPIO header — motors never connect directly to logic-level pins
  • Reset and BOOT0 circuitry, each with a tactile switch
  • ESP32-style board outline

Success criteria:

  1. Full schematic passes Electrical Rule Check (ERC) — no unconnected pins, no duplicate reference designators, no power conflicts.
  2. Power regulation subcircuit simulates correctly in SPICE — stable 3.3V output under a simulated 150mA load.
  3. Every pin function (SWD, I2C, UART, PWM, ADC) is confirmed against a valid STM32F411 alternate-function mapping per the datasheet.
  4. PCB layout passes Design Rule Check (DRC) — manufacturable trace widths, clearances, and via sizes.

(This board is not being fabricated in this iteration — "done" means a clean, DRC/ERC-passing, well-reasoned design, not a physically tested unit.)

Component Selection & Reasoning

BlockComponentWhy
MCUSTM32F411 (LQFP48)Matches the Nucleo-F411RE used for firmware learning/prototyping; Cortex-M4 with FPU, same family used in real flight controllers
Voltage regulatorTLS820F0EL V33Very low dropout (~80mV @ 100mA) — critical for single-cell LiPo operation, where voltage sags to ~3.3–3.5V under discharge. An initial choice (AMS1117-3.3) was rejected: its ~1.1–1.3V dropout requires ~4.4V+ input to regulate cleanly, which a single-cell LiPo cannot reliably supply as it discharges.
Motor driverDRV8833Dual H-bridge driver; isolates motor current entirely from MCU GPIO (which cannot safely source the current a motor draws). Logic-side inputs (AIN1/AIN2, BIN1/BIN2) are PWM-driven from the MCU; VM (motor supply) connects directly to the battery, not through the 3.3V regulator.
ClockInternal HSI (16MHz) — no external crystalThe board has no USB requirement, so the precision-grade 25MHz HSE crystal USB requires is unnecessary. Internal HSI accuracy (~1%) is sufficient for GPIO, PWM, I2C, and UART. This matches the actual reference design of the ST Nucleo-F411RE, which also omits an external HSE crystal.
Reset / BOOT0Tactile switches + pull resistorsBOOT0 is pulled low by default (normal boot from flash); the switch allows forcing it high (into the system bootloader) as a recovery path — not needed in normal SWD-based operation, but valuable if SWD ever becomes unresponsive.

A note on motor wiring (a mistake worth documenting)

An early draft of this design routed motors through the board's general-purpose 3.3V/5V header pins. This is wrong: GPIO pins max out around 20–25mA, while motors draw hundreds of mA to amps — wiring a motor directly to a logic pin would damage the MCU. The corrected design routes motors only through the DRV8833's dedicated output terminals, which draw current from the battery's VM line, completely separate from the MCU's logic-level supply and current budget.

Schematic Organization

This board uses a flat, single-sheet schematic rather than hierarchical sheets. Given the relatively small number of functional blocks (six), a flat sheet keeps every connection visible without needing to flip between pages — valuable while still building intuition for how these blocks interact. (Hierarchical sheets are used on the drone flight controller project instead, where repeated blocks — four identical ESC circuits — and a larger overall block count make that structure worthwhile.)

Text annotations are used liberally on the schematic (e.g., component value justifications referencing specific datasheet sections) rather than embedding component images — images belong in this documentation, not the schematic file itself.

Decisions Log

DecisionReasoningReference
TLS820F0EL over AMS1117-3.3AMS1117's dropout voltage is too high for reliable single-cell LiPo operation as the battery dischargesTLS820F0EL datasheet, dropout spec
No external HSE crystalNo USB requirement; internal HSI is sufficient; matches Nucleo-F411RE reference designSTM32F411 datasheet, clock tree section
Motors isolated to DRV8833 outputs onlyGPIO current limits make direct motor connection unsafeDRV8833 datasheet, output current ratings
Flat schematic (not hierarchical)Small block count (6); hierarchical sheets add navigation overhead without proportional benefit at this scale—

Tools

  • KiCad — schematic capture and PCB layout
  • draw.io — block diagram
  • ngspice (via KiCad) — power stage simulation

Related Projects

  • Drone flight controller (STM32-based, hierarchical schematic, four-ESC output) — builds directly on the fundamentals established here.

License

(Add a license — e.g., CERN-OHL or MIT for firmware, if/when this repository is made public.)

Parts

24
QtyValueFootprintReferences
70.1uFCapacitor_SMD:C_0402_1005MetricC4, C8, C9, C10, C11, C12, C13
410uFCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C7
310kResistor_SMD:R_0603_1608MetricR1, R2, R3
21uFCapacitor_SMD:C_0504_1310MetricC5, C6
2Conn_01x02Connector_PinSocket_2.00mm:PinSocket_1x02_P2.00mm_VerticalJ2, J3
2SW_PushButton_Switch_THT:SW_PUSH_6mmSW1, SW2
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U2
1Conn_01x04Connector_PinSocket_1.27mm:PinSocket_1x04_P1.27mm_VerticalJ1
1DRV8833RTYPackage_DFN_QFN:Texas_RTY_WQFN-16-1EP_4x4mm_P0.65mm_EP2.1x2.1mm_ThermalViasU3
1STM32F411CCUxPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU1

Similar boards

  • 2 layers69 × 72 mmMMv3, the printed circuit board in 3D

    MMv3

    MrCroesus/MMv3

    MMv3 is the 3rd generation robot platform used to teach the IEEE Micromouse DeCal at UC Berkeley. It was designed with usability, manufacturability, size, and cost in mind.

    47 parts16Apache-2.0
  • 4 layers45.8 × 30.4 mmBattle bot pcb, the printed circuit board in 3D

    Battle bot pcb

    MarkusVLA/robot-controller

    150g combat robot controller PCB and firmware

    66 parts3Apache-2.0
  • 4 layers60 × 40 mmRCcar, the printed circuit board in 3D

    RCcar

    jeffreydthompson/Open_Roadster

    Support files for course creating BLE remote controlled car from scratch.

    95 parts1
  • 2 layers80 × 117.3 mmMicromouse pcb, the printed circuit board in 3D

    Micromouse pcb

    jtorbett/micromouse-pcb

    An electronic design for a micromouse

    98 parts1
  • 4 layers50 × 80 mmPami 2026, the printed circuit board in 3D

    Pami 2026

    robotronik/cdfr2026_pamis

    Les Pamis pour la coupe de france de robotique de 2026

    147 parts1MIT
  • 4 layers22.9 × 62.2 mmUpdog, the printed circuit board in 3D

    Updog

    stevenpetryk/updog

    53 parts1
  • 4 layers65.1 × 56 mmAstropi micro, the printed circuit board in 3D

    Astropi micro

    acalinp/Astropi-micro

    69 parts

Questions

How big is the Minimal STM PCB?

It measures 37.3 × 33.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Minimal STM use?

24 parts, built around the DRV8833RTYR and AP2112K-3.3. 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 Minimal STM KiCad files?

From the Gregor-prog/Minimal_STM32 repository on GitHub, at the commit this page was made from: the board is Minimal_STM.kicad_pcb and its schematic Minimal_STM.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Minimal STM design in my own project?

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