

Limbo main
Limbo ESP32-S3 single-PCB and two-PCB prototype designs
- Size
- 105 × 98.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 59
- Nets
- 41
- Pads
- 246
- Tracks, vias
- 442, 50
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 18 Sep 2026
- Updated
- 19 Sep 2026
Overview
Limbo main is an open-source printed circuit board by madmecodes, from the madmecodes/pcb-limbo-test repository on GitHub. It is a 2-layer board of 105 × 98.1 mm with 59 parts on 41 nets, routed with 442 tracks and 50 vias.
It is built around the 74AHCT1G125SE, TPS61022RWUR and BQ24074RGTR, with the DW01A, USBLC6-2SC6 and MF-MSMF200-2 among its other parts. Its parts include 17 capacitors, 14 resistors, 6 ICs, 3 diodes and 1 transistor. It belongs with the ESP32 boards of this library.
Main components
874AHCT1G125SE
SOT-353-40℃~+125℃ 1 1 4.5V~5.5V 4.7ns@5V,50pF 40uA 74AHCT 8mA 8mA Schmitt trigger Tri-State Unidirectional SOT-353 Buffers, Drivers, Receivers, Transceivers ROHSDiodes IncorporatedBuffers, Drivers, Receivers, TransceiversTPS61022RWUR
VQFN-7(2x2)-40℃~+125℃@(TJ) 1 2.2V~5.5V 3A 3uA 500mV~5.5V 600kHz、1MHz Adjustable Boost Boost Built-in Overcurrent Protection、Light load efficient mode、Load disconnect Yes VQFN-7(2x2) DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersBQ24074RGTR
QFN-16-EP(3x3)-40℃~+125℃ 1 1.5A 4.2V 4.35V~10.2V 6.5uA Charging IC Lithium Battery Not supported Support QFN-16-EP(3x3) Battery Management ROHSTexas InstrumentsBattery ManagementDW01A
SOT-23-6L-40℃~+85℃ 1 2.5V 300mV~10V 3uA 4.3V Protection IC Support SOT-23-6L Battery Management ROHSPUOLOPBattery ManagementUSBLC6-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)MF-MSMF200-2
1812-40℃~+85℃ 20mΩ 2A 2W 3.2mm 40A 4A 5.4mm 80mΩ 8V 1812 Resettable Fuses ROHSBournsResettable FusesSMBJ5.0A
DO-214AA(SMB)-65℃~+150℃ 5V 600W@10/1000us 65.3A@10/1000us 7V 800uA 9.2V TVS Unidirectional DO-214AA(SMB) ESD and Surge Protection (TVS/ESD) ROHSMDDESD And Surge Protection (TVS/ESD)SS34
SMA(DO-214AC)-55℃~+125℃ 3A 40V 500uA@40V 550mV@3A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky Diodes
README
single-pcb/README.mdLimbo single controller PCB — Rev 2.0
This is the single-board Limbo controller requested for the compact enclosure. It sockets the existing OceanLabz ESP32-S3 DevKit N16R8 and MAX98357A breakout, and provides wired connectors for the OLED, two I2S microphones and speaker. There is no second face PCB.
| Item | Result |
|---|---|
| Board size | 105.0 × 98.1 mm |
| Construction | 2-layer, 1.6 mm nominal FR-4 |
| KiCad DRC | 0 violations |
| Connectivity | 0 unconnected items |
| Revision | v2.0, 2026-09-19 |
The design is electrically complete in KiCad, but remains a prototype release, not a production-approved battery product. Measure the exact OceanLabz DevKit, connectors, battery, speaker and enclosure before ordering. See ECO-v2.md for the circuit, parts, power budget and release holds.
What the one PCB contains
- 16-pin USB-C power input with 5.1 kΩ CC resistors, PTC fuse, reverse-current Schottky diode, TVS and CC-line ESD protection.
- BQ24074 single-cell Li-ion/LiPo charger with dynamic power path.
- DW01A + FS8205A cell protection.
- TPS61022 battery-to-5 V boost converter controlled by one latching master switch.
- Socketed ESP32-S3 DevKit and MAX98357A amplifier breakout.
- Two shared-bus I2S microphone connectors, strapped left and right.
- Remote OLED and speaker connectors.
- One buffered WS2812B-Mini addressable RGB status LED.
The master switch disables the boost converter, cutting power to the ESP32, amplifier, OLED, microphones and RGB LED. The charger and battery-protection circuit remain connected so the battery can charge while the product is off.
External connectors
| Connector | Pin order |
|---|---|
BATT | 1 BAT+, 2 cell negative |
OLED | 1 GND, 2 3V3, 3 SCL, 4 SDA |
MIC_L | 1 L/R=GND, 2 WS, 3 SCK, 4 SD, 5 3V3_MIC, 6 GND |
MIC_R | 1 L/R=3V3_MIC, 2 WS, 3 SCK, 4 SD, 5 3V3_MIC, 6 GND |
AMP | 1 LRC, 2 BCK, 3 DIN, 4 GAIN open, 5 SD, 6 GND, 7 5V |
AOUT | 1 SPK+, 2 SPK− from amplifier breakout |
SPK | 1 SPK+, 2 SPK− to enclosure speaker |
Use short twisted wires for SPK+/SPK−. Keep microphone wiring away from
the boost inductor and speaker wiring. The OLED and both microphones are
physically mounted in the enclosure, not directly on the PCB.
ESP32 pin map
| Function | GPIO |
|---|---|
| Microphone BCLK / WS / shared SD | 4 / 5 / 6 |
| Amplifier DIN / BCLK / LRC / shutdown | 7 / 15 / 16 / 17 |
| OLED SDA / SCL | 8 / 9 |
| RGB LED data | 18 |
GPIO19 and GPIO20 remain unused for the DevKit's native USB interface.
Fabrication package
limbo-main-v2.0-fab.zip contains copper, solder mask, silkscreen, board
outline and Excellon drill files. Suggested prototype order: two layers,
1.6 mm FR-4, 1 oz copper, HASL or ENIG, green solder mask.
Do not place a production quantity order until every item in the release hold
section of ECO-v2.md is closed.
Rebuild and verify
Run from this directory with KiCad 10, OpenJDK 21 and Freerouting 2.1.0:
KIPY=/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3
JAVA21=/opt/homebrew/opt/openjdk@21/bin/java
"$KIPY" gen.py
FREEROUTING__GUI__ENABLED=false \
FREEROUTING__USAGE_AND_DIAGNOSTIC_DATA__DISABLE_ANALYTICS=true \
"$JAVA21" -jar /tmp/freerouting-2.1.0.jar \
--router.stop_pass_no=40 --router.optimizer.enabled=false \
-de limbo-main.dsn -do limbo-main-v2-final.ses -mt 1
"$KIPY" apply_ses.py limbo-main.kicad_pcb limbo-main-v2-final.ses
kicad-cli pcb drc --exit-code-violations --severity-all \
--format json --output drc-limbo-main.json limbo-main.kicad_pcbgen.py is the authoritative connectivity source for this revision;
limbo-main.kicad_pcb is the routed board. A formal KiCad schematic should be
captured and reviewed before converting this prototype into a production
design.
Parts
59| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | M2 | H1, H2, H3, H4 | |
| 3 | 22uF BOOST OUT | C_0805_2012Metric | C10, C11, C12 |
| 1 | 1.10k ILIM 1.4A | R_0603_1608Metric | R4 |
| 1 | 1.78k ISET 500mA | R_0603_1608Metric | R3 |
| 1 | 100R BAT sense | R_0603_1608Metric | R8 |
| 1 | 100k AMP mute | R_0603_1608Metric | R13 |
| 1 | 100k EN pulldown | R_0603_1608Metric | R12 |
| 1 | 100k FB | R_0603_1608Metric | R11 |
| 1 | 100n AHCT | C_0603_1608Metric | C20 |
| 1 | 100n AMP | C_0603_1608Metric | C15 |
| 1 | 100n BAT sense | C_0603_1608Metric | C7 |
| 1 | 100n BOOST IN | C_0603_1608Metric | C8 |
| 1 | 100n LED | C_0603_1608Metric | C19 |
| 1 | 100n MIC-L | C_0603_1608Metric | C17 |
| 1 | 100n MIC-R | C_0603_1608Metric | C18 |
| 1 | 10k TS | R_0603_1608Metric | R7 |
| 1 | 10uF AMP | C_0805_2012Metric | C14 |
| 1 | 10uF MIC | C_0805_2012Metric | C16 |
| 1 | 1k VM | R_0603_1608Metric | R9 |
| 1 | 1uF IN | C_0805_2012Metric | C4 |
| 1 | 22uF BOOST IN | C_0805_2012Metric | C9 |
| 1 | 3.0k ITERM 50mA | R_0603_1608Metric | R5 |
| 1 | 330R LED data | R_0603_1608Metric | R14 |
| 1 | 4.7uF BAT | C_0805_2012Metric | C6 |
| 1 | 4.7uF OUT | C_0805_2012Metric | C5 |
| 1 | 46.4k TMR | R_0603_1608Metric | R6 |
| 1 | 470uF 10V LOW ESR | CP_Radial_D10.0mm_P5.00mm | C13 |
| 1 | 5.1k CC1 | R_0603_1608Metric | R1 |
| 1 | 5.1k CC2 | R_0603_1608Metric | R2 |
| 1 | 600R@100MHz | L_0805_2012Metric_Pad1.05x1.20mm_HandSolder | FB1 |
| 1 | 74AHCT1G125 | SOT-23-5 | U6 |
| 1 | 750k FB | R_0603_1608Metric | R10 |
| 1 | AMP | AMP | |
| 1 | AOUT | AOUT | |
| 1 | BQ24074RGTR | VQFN-16-1EP_3x3mm_P0.5mm_EP1.68x1.68mm_ThermalVias | U2 |
| 1 | C&K OS102011MA1Q | SW_Slide_SPDT_Angled_CK_OS102011MA1Q | SW1 |
| 1 | Coilcraft XAL7030-102MEB 1uH | L_Coilcraft_XAL7030-102 | L1 |
| 1 | DW01A | SOT-23-6 | U3 |
| 1 | ESP32-S3-DevKitC-1 N16R8 | U1 | |
| 1 | FS8205A common-drain | TSSOP-8_3x3mm_P0.65mm | Q1 |
| 1 | JST-PH 1S LIPO | JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | BATT |
| 1 | MF-MSMF200-2 | Fuse_1812_4532Metric_Pad1.30x3.40mm_HandSolder | F1 |
| 1 | MIC_L | MIC_L | |
| 1 | MIC_R | MIC_R | |
| 1 | OLED | OLED | |
| 1 | SMBJ5.0A | D_SMB | D2 |
| 1 | SPK | SPK | |
| 1 | SS34 | D_SMA_Handsoldering | D1 |
| 1 | TPS61022RWUR | Texas_RWU0007A_VQFN-7_2x2mm_P0.5mm | U5 |
| 1 | TP_CHG | TP_CHG | |
| 1 | TP_PG | TP_PG | |
| 1 | USB-C POWER | USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J1 |
| 1 | USBLC6-2SC6 | SOT-23-6 | U4 |
| 1 | WS2812B-Mini 3535 | LED_WS2812B-Mini_PLCC4_3.5x3.5mm | LED1 |
More from madmecodes/pcb-limbo-test
1- 2 layers53.3 × 45.7 mm

Similar boards
- 4 layers150 × 95 mm

Skysweep32 rev c
bobberdolle1/SkySweep32
Open-source passive multi-band RF monitoring system | 855–925 MHz, 2.4 GHz, 5.8 GHz | Rev C first prototype
103 parts33GPL-3.0 - 2 layers

Openchess controller
PaoloJN/openchess
A chessboard that knows where the pieces are: 64 Hall sensors, 81 RGB LEDs, one ESP32, a printed case, and a BLE phone app. KiCad hardware, PlatformIO firmware, Expo app.
67 parts1 - 2 layers62 × 6 mm

TableLight
jonny190/TableLight
A 3D-printable, battery-powered, USB-C rechargeable table lamp in the classic "Poldina" shape - honeycomb disc base, thin stem, down-firing cone shade with a white top - running WLED on an ESP32, with a capacitive touch…
72 partsMIT - 6 layers313 × 259.5 mm

Open8-vga motherboard
adham404/Open8-VGA
An 8-bit computer from 74HC logic: microcoded CPU, VGA, PS/2, on-board editor and assembler. Play it in your browser.
322 parts3MIT - 2 layers55 × 55 mm

- 2 layers89.5 × 26.5 mm

Gopro powerbank
ritaru/gopro-powerbank
A simple 5V/3A output single-18650 cell power bank circuit
29 parts1 - 4 layers77.2 × 55.1 mm

Neon beat buzzer pcb
neon-beat/neon-beat-buzzer-pcb
Electronic design for the Neon Beat buzzer
66 partsGPL-3.0 - 2 layers83.1 × 34.9 mm

Questions
How big is the Limbo main PCB?
It measures 105 × 98.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Limbo main use?
59 parts, built around the 74AHCT1G125SE, TPS61022RWUR, BQ24074RGTR and DW01A. 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 Limbo main KiCad files?
From the madmecodes/pcb-limbo-test repository on GitHub, at the commit this page was made from: the board is single-pcb/limbo-main.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Limbo main design in my own project?
Its repository states no licence, so its author keeps all rights: ask madmecodes before reusing the design.