Skip to the content
4 layers99.9 × 74.9 mmAmidalaShield, the printed circuit board in 3D

Amidala drive system sketch for ESP32 S3 Amidala Board

Size
99.9 × 74.9 mm
Copper layers
4
Thickness
1.6 mm
Parts
40
Nets
32
Pads
196
Tracks, vias
333, 355
Pours
5
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Jun 2024
Updated
5 Nov 2026

Overview

AmidalaShield is an open-source printed circuit board by thePunderWoman, from the thePunderWoman/Amidala repository on GitHub, published under the GPL-2.0 licence. It is a 4-layer board of 99.9 × 74.9 mm with 40 parts on 32 nets, routed with 333 tracks and 355 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.

Main components

1

README

PCB/README.md

AmidalaBoard (AmidalaShield)

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 electrical design is written in Stackup KDL, using the pinned Stackup parts library plus board-specific parts. The KiCad PCB is linked to it through AmidalaShield.stackup_sch; sync it with the Stackup KiCad plugin after changing the design. See stackup/README.md.


Overview

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.


Requirements

  • Microcontroller: ESP32-S3 N16R8 DevKit (16 MB flash, 8 MB PSRAM)
  • Wireless modules: XBee3 modules (x2 recommended — one for drive controller, one for dome controller)

Hardware Features

Wireless Communication

  • XBee3 module socket for dual-controller operation (drive + dome)

Servo Control

  • 4× PWM servo outputs — 3-pin headers (signal, power, ground)

Serial Ports

  • 3× hardware serial ports — UART0 (shared with USB/programming, silkscreen "Serial 0"), UART1 ("Serial 1"), and UART2 ("Serial 2"). None of these are bit-banged/software serial — the ESP32-S3's UART peripherals route through its GPIO matrix onto whichever pins are needed, unlike chips with a single hardware UART. Firmware reassigns the dome drive and drive system's serial link between Serial 1/Serial 2 at runtime — see the Amidala firmware wiki's Serial Ports page.

I/O

  • 4× digital I/O pins
  • 2× analog input pins
  • 1× Aux I2C header — for external I2C devices

RC Control

  • PPM input (ppmin) — for analog RC receiver

Storage

  • Built-in microSD card reader — used for config.txt at startup (matches Amidala Firmware config system)

Expansion

  • Dedicated SPI header — for external SPI peripherals

Repository Contents

File/FolderDescription
stackup/board.kdlElectrical design (Stackup KDL), replacing the KiCad schematics
stackup/parts.kdlParts the Stackup library doesn't have (DevKitC, microSD socket, screw terminal, 3-way jumper)
AmidalaShield.kicad_pcbPCB layout, synced from the Stackup design
gerbers/Production-ready Gerber files
libraries/Project-specific KiCad symbol/footprint libraries
images/Board renders and screenshots

Getting Started

  1. Clone this repo and open AmidalaShield.kicad_pro in KiCad 8+.
  2. Review the Stackup design and the GPIO table below for pin assignments before assembling.
  3. Use the Gerber files in gerbers/ to order PCBs from your preferred fab.
  4. Flash your ESP32-S3 with the Amidala Firmware.
  5. Place a config.txt on the microSD card — see the firmware repo for a full annotated example.

GPIO Table

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.

FunctionGPIODevKit SideNotes
SPI MOSIGPIO11LeftNative FSPI, shared bus
SPI MISOGPIO13LeftNative FSPI, shared bus
SPI SCKGPIO12LeftNative FSPI, shared bus
SD Card CSGPIO10Left
XBee CSGPIO7Left
SPI Spare CSGPIO14LeftExposed header
XBee ATTNGPIO16Left
XBee SLEEPGPIO15Left
I2C SDAGPIO8LeftNative I2C default
I2C SCLGPIO9LeftNative I2C default
UART0 TXGPIO43RightShared w/ USB — do not use simultaneously. Silkscreen "Serial 0"; fixed, carries the main serial-out/WCB mesh path
UART0 RXGPIO44RightShared w/ USB — do not use simultaneously
UART1 TXGPIO17RightSilkscreen "Serial 1". Reassignable between the dome/drive serial link (default: dome)
UART1 RXGPIO18Right
UART2 TXGPIO21RightSilkscreen "Serial 2". Real hardware UART, not software serial. Reassignable between the dome/drive serial link (default: drive)
UART2 RXGPIO38Right
PPMINGPIO47Right
Analog 1GPIO1RightADC1_0, WiFi-safe
Analog 2GPIO2RightADC1_1, WiFi-safe
Servo 1GPIO3LeftStrapping pin (JTAG source), safe after boot
Servo 2GPIO4Left
Servo 3GPIO5Left
Servo 4GPIO6Left
Digital 1GPIO39RightGoes HIGH after reset (not LOW like most GPIOs)
Digital 2GPIO40Right
Digital 3GPIO41Right
Digital 4GPIO42RightTransitions low on reset slightly slower
RGB LEDGPIO48RightReserved — onboard DevKit RGB LED
NCGPIO8LeftReserved

Pins Intentionally Avoided

GPIOReason
GPIO0Strapping pin — boot mode
GPIO3Strapping pin — JTAG source (used for Servo 1, safe after boot)
GPIO19/20USB D-/D+
GPIO26–32Internal SPI flash/PSRAM — never use
GPIO35–37Internal on Octal (R8) variants — safe on R2 only
GPIO45Strapping pin — VDD_SPI voltage
GPIO46Strapping pin

License

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.

Parts

40
QtyValueFootprintReferences
410kΩResistor_SMD:R_0603_1608MetricR1, R2, R3, R5
3100nFCapacitor_SMD:C_0603_1608MetricC1, C2, C3
210µFCapacitor_SMD:C_0805_2012MetricC4, C7
11Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Servo1
1100µFCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-AC9
11µFCapacitor_SMD:C_0603_1608MetricC5
12Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Servo2
13Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Servo3
14Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Servo4
18.2pFCapacitor_SMD:C_0603_1608MetricC6
1A1Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Analog1
1A2Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Analog2
1Aux I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalI2C1
1D1Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Digital1
1D2Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Digital2
1D3Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Digital3
1D4Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_Digital4
1ESP32-S3-DevKitCExpressIf:ESP32-S2-DevKitC-1ESP32-S3
1Jumper_3_OpenConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1LOGOAmidala:amidala-silkscreenG***
1LOGOAmidala:amidala-logoG***
1LOGOAmidala:R2BuildersG***
1Micro_SD_CardConnector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5J3
1PPMINConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ_PPMIN1
1SPIConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalSPI1
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1Serial0Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalSerial0
1Serial1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalSerial1
1Serial2Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalSWSerial1
1XB3-24Z8UT-JXbee3:XB324Z8UTJXBee3

The 36 most common of 40 parts.

Similar boards

  • 4 layers95 × 95 mmCube motherboard, the printed circuit board in 3D

    Cube motherboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    52 parts1.1kGPL-3.0
  • 2 layers129.9 × 63.6 mmTraeger rev 2.3.0.kicad pro, the printed circuit board in 3D

    Traeger rev 2.3.0.kicad pro

    jazzmonger/Traeger-PID-Controller

    Traeger Smoker/Grill Controller based on an

    45 parts36
  • 2 layers168.8 × 78.9 mmGameboy3, the printed circuit board in 3D

    Gameboy3

    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!

    61 parts8
  • 2 layers134.6 × 49.5 mmMem esp, the printed circuit board in 3D

    Mem esp

    fread/visvitalis

    A very simple modular relay computer

    71 parts7
  • 2 layers90 × 102 mmPL Toon, the printed circuit board in 3D

    PL Toon

    pl-toon/pl-toon-codes

    PL-TOON material

    39 parts7
  • 2 layers119.4 × 98.9 mmPCB Pami, the printed circuit board in 3D

    PCB Pami

    FIPATECH/CDFR26_PAMI

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

    25 parts6
  • 2 layers76.2 × 40.6 mmEspressifESP32toExpressAdaptor, the printed circuit board in 3D

    EspressifESP32toExpressAdaptor

    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.

    3 parts5
  • 2 layersE ink multi sensor, the printed circuit board in 3D

    E ink multi sensor

    heckler/esphome-device-configs

    Configuration definitions for local ESPHome files

    11 parts4Apache-2.0

Questions

How big is the AmidalaShield PCB?

It measures 99.9 × 74.9 mm and has 4 copper layers, 1.6 mm thick.

What parts does the AmidalaShield use?

40 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.

Where can I download the AmidalaShield KiCad files?

From the thePunderWoman/Amidala repository on GitHub, at the commit this page was made from: the board is PCB/AmidalaShield.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the AmidalaShield design in my own project?

Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).