

Isc motorbeep
ESP32 board driving two bipolar stepper motors and a speaker from 3x AA cells — a complete KiCad 9 schematic authored headlessly via MCP. ERC-clean, netlist-asserted, priced BOM.
- Size
- 70 × 50 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 69
- Nets
- 67
- Pads
- 356
- Tracks, vias
- 0, 0
- Routed
- Not yet
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 18 Sep 2026
- Updated
- 18 Sep 2026
Overview
Isc motorbeep is an open-source printed circuit board by ISC-HEI, from the ISC-HEI/isc-motorbeep repository on GitHub. It is a 4-layer board of 70 × 50 mm with 69 parts on 67 nets.
It is built around the CP2102N-EK, ESP32-WROOM-32E and STSPIN220, with the TPS63001DRC, USBLC6-2SC6 and MBR0520 among its other parts. Its parts include 28 resistors, 18 capacitors, 7 ICs, 5 connectors and 3 diodes. It belongs with the robots and motor control and audio and music boards and the ESP32 boards of this library.
Main components
8CP2102N-EK
-- USB Conversion Modules ROHSSilicon LabsUSB Conversion ModulesESP32-WROOM-32E
SMD,18x25.5mmSMD,18x25.5mm WiFi Modules ROHSEspressif SystemsWiFi ModulesSTSPIN220
VFQFPN-16(3x3)-40℃~+150℃ 1.3A 1.8V~10V 2 256、1、4、8、16、32、64、128 400mΩ Yes VFQFPN-16(3x3) Stepper Motor Driver ROHSSTMicroelectronicsStepper Motor DriverTPS63001DRC
VSON-10-EP(3x3)-40℃~+85℃@(TA) 1 1.5MHz 1.8V~5.5V 3.3V 50uA Buck-Boost Buck-Boost Built-in Fixed Yes VSON-10-EP(3x3) DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)MBR0520
SOD-123-55℃~+150℃ 20V 450mV@500mA 5.5A 500mA Independent SOD-123 Schottky Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Schottky DiodesMMBT3904
SOT-23-55℃~+150℃ 1 NPN 100 100nA 200mA 200mW 300MHz 300mV 40V 6V NPN SOT-23 Bipolar (BJT) ROHSJiangsu Changjing Electronics Technology (CJ)Bipolar (BJT)BSS138
SOT-23-55℃~+150℃ 1 N-channel 1.1Ω@10V、1.2Ω@4.5V 1.2V 1.7nC@10V 17.5pF 340mA 350mW 50V 6.5pF N-Channel SOT-23 MOSFETs ROHShongjiachengMOSFETs
README
README.md
ISC MotorBeep — ESP32 dual-stepper + audio board
A complete KiCad 9 schematic for an ESP32 board driving two bipolar stepper motors and a small speaker, powered from 3× AA cells. It is an improved derivative of the ESP32 DevKit DOIT v1: the AMS1117 LDO, the thin bulk capacitance, the micro-USB connector and the absent battery sensing are all addressed.
The brief
Take the ESP32 DevKit DOIT v1 as the reference design and produce an improved version of it that drives two stepper motors and a small speaker, running off AA cells — originally two, changed to three during the work. Deliver the complete schematic in KiCad (installing it as needed), authored through the KiCAD-MCP-Server.
What was built
- KiCad 9 installed, the MCP server built, and patched — it emits the KiCad 10 file format, which 9 refuses to load.
- Architecture chosen from the battery up: 3× AA (2.8–4.8 V) sits inside the STSPIN220 and MAX98357A supply windows, so motors and audio need no converter; only the ESP32 does, and it must be a buck-boost.
- Parts picked against what KiCad actually ships —
DRV8834andTPS63020have no stock symbols, soSTSPIN220andTPS63001replaced them. - Four hierarchical sheets authored headlessly: power, MCU, motors, audio. Root ERC: 0 errors.
- Verified three ways — ERC, a rendered image of every sheet reviewed by eye, and
check_nets.py, which asserts 29 design-intent connections against the exported netlist. - Footprints assigned and checked to exist, netlist and PDF exported, BOM priced against the real JLCPCB catalog ($14.49, part links in
doc/BOM.md). - A 4-layer PCB created and fully placed — antenna overhanging the edge, switching nodes 4.3 mm — then rendered in 3D. Routing was not done.
Schematic
Four hierarchical sheets plus a root. Click any image for full resolution, or read the complete PDF.
Root — sheet hierarchy
Power — 3× AA, Schottky OR, TPS63001 buck-boost, USB-C
MCU — ESP32-WROOM-32E, CP2102N bridge, auto-reset
Motors — 2× STSPIN220 stepper drivers
Audio — MAX98357A Class-D
PCB
Placed, not routed. 70 x 50 mm, 4 layers, 69 footprints, verified by
tools/place_board.py: no overlaps, nothing off-board, and nothing
inside the ESP32 antenna keepout. The module's antenna deliberately overhangs the top edge, and
L1 sits directly left of the TPS63001 so both switching nodes come out as 4.3 mm straight runs.
Routing is not done, so there are no tracks and no copper pours yet.
Architecture
Three AA cells deliver 2.8–4.8 V, and that range sits inside the supply window of both power loads — the STSPIN220 works from 1.8 V and the MAX98357A from 2.5 V — so the motors and the speaker run straight off the pack with no converter at all. Only the ESP32 needs one, and it has to be a buck-boost: the pack starts above 3.3 V and ends below it, so an LDO would drop out and a plain boost could not regulate down. USB and battery are OR'd through two Schottky diodes into that converter only, which is what stops USB from back-feeding and charging the alkaline cells.
flowchart LR
B["3x AA / 2.8-4.8 V"] --> D2["D2 Schottky"]
U["USB-C 5 V"] --> D1["D1 Schottky"]
D1 --> V["VSYS"]
D2 --> V
V --> R["U2 TPS63001 buck-boost"]
R --> L3["+3V3 - ESP32 only"]
B --> M["U5/U6 STSPIN220 - 2 steppers"]
B --> A["U7 MAX98357A - speaker"]Every line the ESP32 gates has a resistor defining its state at reset, so the motors cannot twitch
and the speaker cannot pop at power-up; GPIO12 is left unconnected because it straps the flash
voltage. The reasoning, the full pin budget and the pre-fabrication checklist are in
doc/DESIGN.md.
Bill of materials
70 components in 36 lines, about $14.49 in parts at 1-off LCSC prices (catalog snapshot of
14 September 2026). Full priced BOM with a part link per line: doc/BOM.md.
[!WARNING] The STSPIN220 was down to 27 units at JLCPCB in that snapshot — check it live before committing to a build.
doc/BOM.mdnames the substitute and what swapping costs you.
Almost every part is a JLCPCB Extended part with a $3 setup fee each, so for a one-off, hand assembly is cheaper than paying the setup fees.
Open it
kicad hardware/isc-motorbeep/isc-motorbeep.kicad_proGenerated headlessly through the KiCAD-MCP-Server — reproduction steps, the KiCad 9 file-format
patch it needs, and the helper scripts are in doc/TOOLING.md.
Before fabricating
The schematic is complete and ERC-clean, but two questions could not be settled without
manufacturer datasheets. Both are detailed, with the rest of the checklist, in
doc/DESIGN.md §8.5–8.6:
- Are the STSPIN220 and MAX98357A logic inputs rated independently of their supply? The ESP32
drives 3.3 V into them while
+BATTmay be at 2.8 V. If either is VS-referenced, the design breaks at low battery. This is the one that matters. - The QFN-16 exposed-pad dimension for U5/U6/U7 — stock footprint variants run 1.45 to 1.85 mm, and it is the thermal path the current-chopping depends on.
License
Copyright © 2026 P.-A. Mudry / ISC — HES-SO Valais. Released under CC-BY-NC-ND 4.0.
Made with ♥ by mui, 2026
Parts
69| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 10k | Resistor_SMD:R_0603_1608Metric | R10, R11, R13, R14, R15, R16, R21, R23, R24, R30, R40 |
| 7 | 100nF | Capacitor_SMD:C_0603_1608Metric | C4, C10, C13, C14, C20, C22, C30 |
| 5 | 100k | Resistor_SMD:R_0603_1608Metric | R3, R22, R31, R41, R50 |
| 5 | 10uF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C11, C31 |
| 4 | 0.33 | Resistor_SMD:R_1206_3216Metric | R33, R34, R43, R44 |
| 2 | 100uF | Capacitor_SMD:C_1210_3225Metric | C5, C32 |
| 2 | 20k | Resistor_SMD:R_0603_1608Metric | R32, R42 |
| 2 | 47uF | Capacitor_SMD:C_1210_3225Metric | C21, C23 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | MBR0520 | Diode_SMD:D_SOD-123 | D1, D2 |
| 2 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q2, Q3 |
| 2 | STSPIN220 | Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.45x1.45mm_ThermalVias | U5, U6 |
| 1 | 10R | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R12 |
| 1 | 2.2uH | Inductor_SMD:L_Bourns-SRN4018 | L1 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric | C12 |
| 1 | 39k | Resistor_SMD:R_0603_1608Metric | R20 |
| 1 | 3x AA | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | BT1 |
| 1 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C15 |
| 1 | 68k | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_SKQG_WithoutStem | SW1 |
| 1 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | CP2102N | Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.15x2.15mm | U4 |
| 1 | ESP32-WROOM-32E | RF_Module:ESP32-WROOM-32E | U3 |
| 1 | GPIO header | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J2 |
| 1 | MAX98357A | Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.45x1.45mm_ThermalVias | U7 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_SKQG_WithoutStem | SW2 |
| 1 | Speaker 4-8R | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J5 |
| 1 | Stepper 1 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3 |
| 1 | Stepper 2 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J4 |
| 1 | TPS63001 | Package_SON:Texas_DRC0010J_ThermalVias | U2 |
| 1 | USB-C | Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASV | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | USER | Button_Switch_SMD:SW_SPST_SKQG_WithoutStem | SW3 |
| 1 | green | LED_SMD:LED_0603_1608Metric | D3 |
Similar boards
- 4 layers83 × 55 mm

- 4 layers95 × 55.5 mm

EinkPDA keyboard
TalismanDesign/PocketMage_PDA
An E-Ink PDA device using the ESP32 S3.
137 parts2kApache-2.0 - 2 layers63.5 × 22.9 mm

LoRaWan1262 jlc
svcguy/LoRaWAN-Feather-Hardware
Schematic and PCB for a Feather-compatible, LoRaWAN-compatible board
86 parts4 - 4 layers60 × 50 mm

Smart helmet with anc
baba2712/smart-helmet-with-anc
An industrial safety helmet with hybrid active noise cancellation (feed-forward + adaptive feedback FxLMS) on an STM32H743.
154 partsMIT - 4 layers124.6 × 101 mm

- 2 layers90 × 50 mm

- 4 layers94 × 81.8 mm

ESP32 IO Controller
Satya777777/ESP32-Industrial-IO-Controller
4-layer ESP32-based industrial I/O controller designed in KiCad with 0–10 V, 4–20 mA, RS485, USB-C and relay interfaces.
58 partsMIT - 2 layers210 × 297 mm

Fra clock
albertoboffi-PERSONAL/fra-clock
A one-off gift PCB designed in KiCad 10: an ESP32 clock with a ring of 180 WS2812B‑2020 LEDs, a photo printed in exposed copper on the front, two Makerverse 8 Ω / 5 W speakers driven by two MAX98357A I²S amplifiers…
428 parts
Questions
How big is the Isc motorbeep PCB?
It measures 70 × 50 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Isc motorbeep use?
69 parts, built around the CP2102N-EK, ESP32-WROOM-32E, STSPIN220 and TPS63001DRC. 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 Isc motorbeep KiCad files?
From the ISC-HEI/isc-motorbeep repository on GitHub, at the commit this page was made from: the board is hardware/isc-motorbeep/isc-motorbeep.kicad_pcb and its schematic hardware/isc-motorbeep/audio.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Isc motorbeep design in my own project?
Its repository states no licence, so its author keeps all rights: ask ISC-HEI before reusing the design.





