
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.

A custom-designed breakout/minimum-system board built around the STM32F411 microcontroller, designed from datasheet-driven first principles rather than copied reference schematics.
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.
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).
🚧 In progress — schematic capture / PCB layout stage. Not yet fabricated. See Success Criteria for what "done" means for this iteration.
| MCU | STM32F411 (LQFP48) |
| Programming interface | SWD (via external ST-Link probe) |
| Power input | Single-cell battery (3.7V nominal) |
| Regulated rail | 3.3V |
| Motor driver | DRV8833 (dual H-bridge) |
| Form factor | ESP32 dev-board-style footprint |
| Design tool | KiCad |
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.
This board followed a structured, professional-style workflow rather than jumping straight into schematic capture:
This same process is intended to be reused for future hardware projects, including the drone flight controller.
Success criteria:
(This board is not being fabricated in this iteration — "done" means a clean, DRC/ERC-passing, well-reasoned design, not a physically tested unit.)
| Block | Component | Why |
|---|---|---|
| MCU | STM32F411 (LQFP48) | Matches the Nucleo-F411RE used for firmware learning/prototyping; Cortex-M4 with FPU, same family used in real flight controllers |
| Voltage regulator | TLS820F0EL V33 | Very 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 driver | DRV8833 | Dual 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. |
| Clock | Internal HSI (16MHz) — no external crystal | The 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 / BOOT0 | Tactile switches + pull resistors | BOOT0 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. |
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.
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.
| Decision | Reasoning | Reference |
|---|---|---|
| TLS820F0EL over AMS1117-3.3 | AMS1117's dropout voltage is too high for reliable single-cell LiPo operation as the battery discharges | TLS820F0EL datasheet, dropout spec |
| No external HSE crystal | No USB requirement; internal HSI is sufficient; matches Nucleo-F411RE reference design | STM32F411 datasheet, clock tree section |
| Motors isolated to DRV8833 outputs only | GPIO current limits make direct motor connection unsafe | DRV8833 datasheet, output current ratings |
| Flat schematic (not hierarchical) | Small block count (6); hierarchical sheets add navigation overhead without proportional benefit at this scale | — |
(Add a license — e.g., CERN-OHL or MIT for firmware, if/when this repository is made public.)
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C4, C8, C9, C10, C11, C12, C13 |
| 4 | 10uF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3, C7 |
| 3 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R3 |
| 2 | 1uF | Capacitor_SMD:C_0504_1310Metric | C5, C6 |
| 2 | Conn_01x02 | Connector_PinSocket_2.00mm:PinSocket_1x02_P2.00mm_Vertical | J2, J3 |
| 2 | SW_Push | Button_Switch_THT:SW_PUSH_6mm | SW1, SW2 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | Conn_01x04 | Connector_PinSocket_1.27mm:PinSocket_1x04_P1.27mm_Vertical | J1 |
| 1 | DRV8833RTY | Package_DFN_QFN:Texas_RTY_WQFN-16-1EP_4x4mm_P0.65mm_EP2.1x2.1mm_ThermalVias | U3 |
| 1 | STM32F411CCUx | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U1 |

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.

MarkusVLA/robot-controller
150g combat robot controller PCB and firmware

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


robotronik/cdfr2026_pamis
Les Pamis pour la coupe de france de robotique de 2026



It measures 37.3 × 33.8 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask Gregor-prog before reusing the design.