

Esp32controller
esp32controller for Amiga etc
- Size
- 30.4 × 25.4 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 16
- Nets
- 25
- Pads
- 62
- Tracks, vias
- 83, 7
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 21 Apr 2026
- Updated
- 27 May 2026
Overview
Esp32controller is an open-source printed circuit board by bionik, from the bionik/esp32controller repository on GitHub. It is a 2-layer board of 30.4 × 25.4 mm with 16 parts on 25 nets, routed with 83 tracks and 7 vias.
It is built around the AO3400A. Its parts include 7 resistors, 7 transistors and 1 connector. It belongs with the radio and wireless boards and the ESP32 and RISC-V boards of this library.
Main components
1README
README.mdesp32controller
WiFi-enabled ESP32S3 game controller interface with WebSocket control, Bluetooth gamepad support, and OTA firmware updates.
The ESP32S3 runs a small HTTP/WebSocket server for remote control of GPIO pins, and also supports Bluetooth controllers through Bluepad32. The design is aimed at controlling classic systems such as the Amiga, with the option to adapt to other consoles if properly powered and filtered.
Features:
- WiFi connection using credentials from
firmware/src/credentials.hor fallback defaults. - WebSocket server at
/wsfor remote button press/release commands. - ElegantOTA support with authenticated OTA updates.
- Bluetooth controller support using Bluepad32.
- Boot-button pairing mode: long-press the BOOT button to enter Bluetooth pairing.
- Only the last paired Bluetooth controller is accepted after pairing mode, all others are rejected.
- GPIO safety fallback: all control pins are reset when WiFi, WebSocket, or Bluetooth disconnects.
- Phone keypad mapping on websocket: numeric keys
2/4/6/8map to directions and1/3/5map to buttons. - Built-in RGB LED status reporting for connection states and pairing.
LED color guide:
- Green: idle / no WiFi and no Bluetooth connected.
- Red: WiFi connected but no WebSocket client and no Bluetooth controller.
- Yellow: WiFi connected and WebSocket client connected.
- Blue: Bluetooth controller connected.
- Magenta: WiFi connected and Bluetooth connected, but no WebSocket client.
- White: WiFi, WebSocket, and Bluetooth all connected.
- Fast blinking blue: Bluetooth pairing mode active.
Firmware notes:
- Control pins are defined in
firmware/src/main.cppand are driven LOW by default for safety. - WiFi tries to reconnect automatically after a delay.
- Bluetooth pairing mode times out after 20 seconds if no device is found.
- On OTA start, GPIOs are reset and the device restarts after a successful update.
Project Files
- Hardware: KiCad PCB design files (
esp32controller.kicad_*) with custom ESP32S3 Supermini footprint - Firmware: PlatformIO project in
firmware/with WiFi server, WebSocket control, Bluepad32, and ElegantOTA support - Libraries: Custom symbol (
project_parts.kicad_sym) and footprint (project_parts.pretty/) libraries
Parts
16| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R4, R5, R6, R7 |
| 7 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6, Q7 |
| 1 | DE9_Socket | Connector_Dsub:DSUB-9_Socket_EdgeMount_P2.77mm | J1 |
| 1 | ~ | project_parts:ESP32S3_supermini | ESP32s3 |
Questions
How big is the Esp32controller PCB?
It measures 30.4 × 25.4 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Esp32controller use?
16 parts, built around the AO3400A. 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 Esp32controller KiCad files?
From the bionik/esp32controller repository on GitHub, at the commit this page was made from: the board is esp32controller.kicad_pcb and its schematic esp32controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Esp32controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask bionik before reusing the design.
Similar boards
- 4 layers149 × 95 mm

- 4 layers40 × 23 mm

- 4 layers81.2 × 96.6 mm

- 2 layers55 × 82.7 mm

- 4 layers42 × 42 mm

- 4 layers98 × 75 mm

PiFinder4
brickbots/PiFinder
A plate solving telescope finder based around a Raspberry PI and RPI HQ Camera
157 parts257GPL-3.0 - 2 layers240 × 240 mm

- 2 layers141.5 × 83 mm

Rolio
MickiusMousius/Rolio46Keyboard
A split wireless keyboard based on the Corne and Sofle
110 parts236MIT