Skip to the content
PCBKitNew board
2 layers30.4 × 25.4 mmEsp32controller, the printed circuit board in 3D

Esp32controller

bionik/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

1

README

README.md

esp32controller

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.h or fallback defaults.
  • WebSocket server at /ws for 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/8 map to directions and 1/3/5 map 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.cpp and 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
QtyValueFootprintReferences
710kResistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R5, R6, R7
7AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7
1DE9_SocketConnector_Dsub:DSUB-9_Socket_EdgeMount_P2.77mmJ1
1~project_parts:ESP32S3_superminiESP32s3

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 mmMobo, the printed circuit board in 3D

    Mobo

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    399 parts3.7k
  • 4 layers40 × 23 mmPixl.js, the printed circuit board in 3D

    Pixl.js

    solosky/pixl.js

    An emulator for Amiibo!

    45 parts1.4kGPL-2.0
  • 4 layers81.2 × 96.6 mmKv4p ht PANEL, the printed circuit board in 3D

    Kv4p ht PANEL

    VanceVagell/kv4p-ht

    Open source handheld ham radio project KV4P-HT

    174 parts828GPL-3.0
  • 4 layers42 × 42 mmHuvud, the printed circuit board in 3D

    Huvud

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    126 parts373GPL-3.0
  • 4 layers98 × 75 mmPiFinder4, the printed circuit board in 3D

    PiFinder4

    brickbots/PiFinder

    A plate solving telescope finder based around a Raspberry PI and RPI HQ Camera

    157 parts257GPL-3.0
  • 2 layers240 × 240 mmKfchess, the printed circuit board in 3D

    Kfchess

    misprit7/real-time-chess

    A physical chess board without the concept of turns

    235 parts254MIT
  • 2 layers141.5 × 83 mmRolio, the printed circuit board in 3D

    Rolio

    MickiusMousius/Rolio46Keyboard

    A split wireless keyboard based on the Corne and Sofle

    110 parts236MIT