
Cube motherboard
willem-pennings/balancing-cube
A cube that balances itself in a corner or edge using reaction wheels

The ESP32 Shield designed specifically for using the Amidala Firmware
AmidalaShield is an open-source printed circuit board by thePunderWoman, from the thePunderWoman/AmidalaBoard repository on GitHub. It is a 4-layer board of 100 × 75 mm with 37 parts on 63 nets, routed with 316 tracks and 359 vias.
It is built around the ESP32-S3-DEVKITC-1-N8. Its parts include 8 capacitors, 4 resistors and 2 connectors. It belongs with the ESP32 boards of this library.
A custom KiCad PCB shield designed specifically for the Amidala Firmware — a control system for astromech and similar droid builds. This board provides all the I/O the firmware needs in a single, purpose-built package.
Designed by thePunderWoman
The AmidalaShield is a carrier/breakout board for the ESP32-S3 N16R8 DevKit. It breaks out and conditions the ESP32-S3's peripherals for the specific needs of the Amidala Firmware: wireless XBee communication, multi-channel servo control, RC receiver input, SD card storage, and expansion headers for additional peripherals.
config.txt at startup (matches Amidala Firmware config system)| File/Folder | Description |
|---|---|
AmidalaShield.kicad_sch | Top-level schematic |
comms.kicad_sch | XBee communications sub-sheet |
io.kicad_sch | Digital/analog I/O sub-sheet |
power.kicad_sch | Power distribution sub-sheet |
rc_control.kicad_sch | RC input sub-sheet |
servos.kicad_sch | Servo output sub-sheet |
spi.kicad_sch | SPI header sub-sheet |
gerbers/ | Production-ready Gerber files |
libraries/ | Project-specific KiCad symbol/footprint libraries |
images/ | Board renders and screenshots |
AmidalaShield.kicad_pro in KiCad 8+.gerbers/ to order PCBs from your preferred fab.config.txt on the microSD card — see the firmware repo for a full annotated example.V1.1 — Updated GPIO assignments for ESP32-S3 WROOM-1 N8R2/N16R2 (Quad flash/PSRAM). Avoid GPIO35–37 on R8 (Octal) variants. GPIO48 reserved for onboard RGB LED.
| Function | GPIO | DevKit Side | Notes |
|---|---|---|---|
| SPI MOSI | GPIO11 | Left | Native FSPI, shared bus |
| SPI MISO | GPIO13 | Left | Native FSPI, shared bus |
| SPI SCK | GPIO12 | Left | Native FSPI, shared bus |
| SD Card CS | GPIO10 | Left | |
| XBee CS | GPIO7 | Left | |
| SPI Spare CS | GPIO14 | Left | Exposed header |
| XBee ATTN | GPIO16 | Left | |
| XBee SLEEP | GPIO15 | Left | |
| I2C SDA | GPIO8 | Left | Native I2C default |
| I2C SCL | GPIO9 | Left | Native I2C default |
| UART0 TX | GPIO43 | Right | Shared w/ USB — do not use simultaneously |
| UART0 RX | GPIO44 | Right | Shared w/ USB — do not use simultaneously |
| UART1 TX | GPIO17 | Right | Primary droid brain serial |
| UART1 RX | GPIO18 | Right | |
| SW-UART TX | GPIO21 | Right | |
| SW-UART RX | GPIO38 | Right | |
| PPMIN | GPIO47 | Right | |
| Analog 1 | GPIO1 | Right | ADC1_0, WiFi-safe |
| Analog 2 | GPIO2 | Right | ADC1_1, WiFi-safe |
| Servo 1 | GPIO3 | Left | Strapping pin (JTAG source), safe after boot |
| Servo 2 | GPIO4 | Left | |
| Servo 3 | GPIO5 | Left | |
| Servo 4 | GPIO6 | Left | |
| Digital 1 | GPIO39 | Right | Goes HIGH after reset (not LOW like most GPIOs) |
| Digital 2 | GPIO40 | Right | |
| Digital 3 | GPIO41 | Right | |
| Digital 4 | GPIO42 | Right | Transitions low on reset slightly slower |
| RGB LED | GPIO48 | Right | Reserved — onboard DevKit RGB LED |
| NC | GPIO8 | Left | Reserved |
| GPIO | Reason |
|---|---|
| GPIO0 | Strapping pin — boot mode |
| GPIO3 | Strapping pin — JTAG source (used for Servo 1, safe after boot) |
| GPIO19/20 | USB D-/D+ |
| GPIO26–32 | Internal SPI flash/PSRAM — never use |
| GPIO35–37 | Internal on Octal (R8) variants — safe on R2 only |
| GPIO45 | Strapping pin — VDD_SPI voltage |
| GPIO46 | Strapping pin |
This hardware design is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).
You are free to share and adapt this design for non-commercial purposes, as long as you give appropriate credit and distribute any adaptations under the same license.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R5 |
| 3 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3 |
| 2 | 10u | Capacitor_SMD:C_0805_2012Metric | C4, C7 |
| 1 | 1 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Servo1 |
| 1 | 100µF | Capacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A | C9 |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | 2 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Servo2 |
| 1 | 3 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Servo3 |
| 1 | 4 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Servo4 |
| 1 | 8.2p | Capacitor_SMD:C_0603_1608Metric | C6 |
| 1 | A1 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Analog1 |
| 1 | A2 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Analog2 |
| 1 | Aux I2C | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | I2C1 |
| 1 | D1 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Digital1 |
| 1 | D2 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Digital2 |
| 1 | D3 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Digital3 |
| 1 | D4 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_Digital4 |
| 1 | ESP32-S3-DevKitC | ExpressIf:ESP32-S2-DevKitC-1 | ESP32-S3 |
| 1 | LOGO | Amidala:amidala-silkscreen | G*** |
| 1 | Micro_SD_Card | Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5 | J3 |
| 1 | PPMIN | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J_PPMIN1 |
| 1 | SPI | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | SPI1 |
| 1 | Screw_Terminal_01x02 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal | J1 |
| 1 | Serial0 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | Serial0 |
| 1 | Serial1 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | Serial1 |
| 1 | Serial2 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | SWSerial1 |
| 1 | XB3-24Z8UT-J | Xbee3:XB324Z8UTJ | XBee3 |
The 33 most common of 37 parts.

willem-pennings/balancing-cube
A cube that balances itself in a corner or edge using reaction wheels

jazzmonger/Traeger-PID-Controller
Traeger Smoker/Grill Controller based on an

ohasanov-hbrw/tribit32-advanced
A tri-microcontroller, overengineered GameBoy Advance clone. More value was given to the controls and the exterior look, which is cool!



FIPATECH/CDFR26_PAMI
Open source firmware and PCB for a differential mobile robot (PAMI) based on ESP32-S3 - Coupe de France de Robotique

dnhutchins/ETC_Express_Reverse_Eng
The ultimate goal of this work is to develop an interface to use the control surface from a legacy ETC Express 24/48 lighting controller as a modern EOSNomad compatible programming and fader wing.

heckler/esphome-device-configs
Configuration definitions for local ESPHome files
It measures 100 × 75 mm and has 4 copper layers, 1.6 mm thick.
37 parts, built around the ESP32-S3-DEVKITC-1-N8. 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 thePunderWoman/AmidalaBoard repository on GitHub, at the commit this page was made from: the board is AmidalaShield.kicad_pcb and its schematic AmidalaShield.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 thePunderWoman before reusing the design.