Repository navigation
Dev Update #5: Main Control Board Rev 3 and more room to grow #91
jamro
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
A few weeks ago in Dev Update #4 I said the next main board should expose GPIO, I2S, and power so you can add small peripherals without soldering onto the ESP32 module.
That board is here. Main Control Board Rev 3 is designed, ordered, assembled, and running in a real robot.
PR: #66
Preview:
hardware/boards/main-control-board/What Rev 3 actually is
Same core job as before: one PCB for PCA9685, MAX98357A, USB-C power/data, and sockets for the Waveshare ESP32-C3-Zero. Plug in OLED, five servos, and speaker — stock robot still works the same way.
The headline change is J4, a 12-pin 2.54 mm extension header that breaks out unused ESP32 pins plus power:
Header is meant for jumper wires, and stays reachable after the board sits in the Desk.
Also in this revision: ESP antenna keepout, a couple of decoupling / eFuse tweaks, and clearer silkscreen (including BOOT / strapping marks on the extension pins).
What it means for you
If you are about to order a board
Order from the current KiCad in the repo (Rev 3). Same fab flow as before — order guide. You get the expansion port “for free” in the design.
If you already have Rev 2
Nothing breaks. Firmware, USB, servos, OLED, and audio behave the same. You just do not have J4. No rush to reorder unless you want the header.
If you want to hack / mod
Rev 3 is the board that makes “add a mic, button, or sensor” a header job instead of a surgery job. That is the path toward two-way voice and other community mods without forking the PCB for every idea.
Watch the strapping pins
On J4, GP8 and GP9 are ESP32-C3 strapping pins — do not pull them low at reset (GP9 low enters download mode). GP20 / GP21 are default UART0; fine for extension use if you keep USB CDC as the console. Full pin table: pinout.md — J4.
Power reminder (unchanged, still important)
Use 5 V / ≥ 2 A. Servos sit behind the eFuse (~2 A). Stall currents can trip that before the USB fuse — board recovers with auto-retry. Details: power.md.
Status
Still figuring out how you get one
Self-ordering five boards from a fab still works and is documented. Making that cheaper / less wasteful is the same open question as in Update #4 — please 👍 the interest check if an assembled board would help you.
Regional group orders are also a thing now: About Regional PCB Group Orders.
What I would love to hear
What would you plug into J4 first — mic, buttons, extra I2C sensor, something else?
If you are already building on Rev 2 or Rev 3, photos and war stories welcome in Show us your Tiny Engineer.
Thanks for building this with me. 🤖
All reactions