Skip to the content
4 layers70 × 50 mmIsc motorbeep, the printed circuit board in 3D

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

8

README

README.md
ISC Logo

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

  1. KiCad 9 installed, the MCP server built, and patched — it emits the KiCad 10 file format, which 9 refuses to load.
  2. 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.
  3. Parts picked against what KiCad actually ships — DRV8834 and TPS63020 have no stock symbols, so STSPIN220 and TPS63001 replaced them.
  4. Four hierarchical sheets authored headlessly: power, MCU, motors, audio. Root ERC: 0 errors.
  5. 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.
  6. 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).
  7. 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

Root sheet

Power — 3× AA, Schottky OR, TPS63001 buck-boost, USB-C

Power sheet

MCU — ESP32-WROOM-32E, CP2102N bridge, auto-reset

MCU sheet

Motors — 2× STSPIN220 stepper drivers

Motors sheet

Audio — MAX98357A Class-D

Audio sheet

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.

PCB 3D view

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.

mermaid
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.md names 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

bash
kicad hardware/isc-motorbeep/isc-motorbeep.kicad_pro

Generated 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 +BATT may 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
QtyValueFootprintReferences
1110kResistor_SMD:R_0603_1608MetricR10, R11, R13, R14, R15, R16, R21, R23, R24, R30, R40
7100nFCapacitor_SMD:C_0603_1608MetricC4, C10, C13, C14, C20, C22, C30
5100kResistor_SMD:R_0603_1608MetricR3, R22, R31, R41, R50
510uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C11, C31
40.33Resistor_SMD:R_1206_3216MetricR33, R34, R43, R44
2100uFCapacitor_SMD:C_1210_3225MetricC5, C32
220kResistor_SMD:R_0603_1608MetricR32, R42
247uFCapacitor_SMD:C_1210_3225MetricC21, C23
25.1kResistor_SMD:R_0603_1608MetricR1, R2
2MBR0520Diode_SMD:D_SOD-123D1, D2
2MMBT3904Package_TO_SOT_SMD:SOT-23Q2, Q3
2STSPIN220Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.45x1.45mm_ThermalViasU5, U6
110RResistor_SMD:R_0603_1608MetricR5
11kResistor_SMD:R_0603_1608MetricR12
12.2uHInductor_SMD:L_Bourns-SRN4018L1
122uFCapacitor_SMD:C_0805_2012MetricC12
139kResistor_SMD:R_0603_1608MetricR20
13x AAConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalBT1
14.7uFCapacitor_SMD:C_0805_2012MetricC15
168kResistor_SMD:R_0603_1608MetricR4
1BOOTButton_Switch_SMD:SW_SPST_SKQG_WithoutStemSW1
1BSS138Package_TO_SOT_SMD:SOT-23Q1
1CP2102NPackage_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.15x2.15mmU4
1ESP32-WROOM-32ERF_Module:ESP32-WROOM-32EU3
1GPIO headerConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ2
1MAX98357APackage_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.45x1.45mm_ThermalViasU7
1RESETButton_Switch_SMD:SW_SPST_SKQG_WithoutStemSW2
1Speaker 4-8RConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1Stepper 1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1Stepper 2Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4
1TPS63001Package_SON:Texas_DRC0010J_ThermalViasU2
1USB-CConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1USERButton_Switch_SMD:SW_SPST_SKQG_WithoutStemSW3
1greenLED_SMD:LED_0603_1608MetricD3

Similar boards

  • 4 layers83 × 55 mmSADA Board, the printed circuit board in 3D

    SADA Board

    makerCL/JUCI_CubeSat_SADA

    Solar Array Drive Assembly

    160 parts2
  • 4 layers95 × 55.5 mmEinkPDA keyboard, the printed circuit board in 3D

    EinkPDA keyboard

    TalismanDesign/PocketMage_PDA

    An E-Ink PDA device using the ESP32 S3.

    137 parts2kApache-2.0
  • 2 layers63.5 × 22.9 mmLoRaWan1262 jlc, the printed circuit board in 3D

    LoRaWan1262 jlc

    svcguy/LoRaWAN-Feather-Hardware

    Schematic and PCB for a Feather-compatible, LoRaWAN-compatible board

    86 parts4
  • 4 layers60 × 50 mmSmart helmet with anc, the printed circuit board in 3D

    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 mmMicrophone board, the printed circuit board in 3D

    Microphone board

    Epicotch/Acoustic-Camera

    acoustic camera:tm:

    212 partsMIT
  • 2 layers90 × 50 mmNFC ESP32 V2, the printed circuit board in 3D

    NFC ESP32 V2

    alantrundle/bluetooth_app

    62 partsMIT
  • 4 layers94 × 81.8 mmESP32 IO Controller, the printed circuit board in 3D

    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 mmFra clock, the printed circuit board in 3D

    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.