

GameController
A custom ESP32 powered game controller!
- Size
- 146 × 89 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 23
- Nets
- 35
- Pads
- 104
- Tracks, vias
- 328, 21
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 20 Jun 2026
- Updated
- 28 Jul 2026
Overview
GameController is an open-source printed circuit board by aryanscodingden, from the aryanscodingden/Ares-Controller repository on GitHub. It is a 2-layer board of 146 × 89 mm with 23 parts on 35 nets, routed with 328 tracks and 21 vias.
Its parts include 13 switches, 4 connectors, 1 IC and 1 diode. It belongs with the keyboards and input boards of this library.
README
README.mdAres - A game controller
A custom game controller built using a ESP32.
This project was built because I always wanted to own a controller & decided to build one instead.
It was indeed a very intersting journey to build one of my own, started to appricate the small QOL of other products.
(P.S. This is my first ever hardware project)
Schematic
It features a ESP32-NodeMCU for the main controller board & a TP4056 Module to charge the entire controller.
PCB
Case
This case was designed in Fusion 360.
Firmware
The firmware is written in C++ and will be edited/deployed from Arduino IDE.
BOM
| SR NO | Item | Unit Price | URL |
|---|---|---|---|
| 1 | ESP 32 NODE-MCU | ₹383 ($4.06) | https://robocraze.com/products/nodemcu-32-wifi-bluetooth-esp32-development-board30-pin |
| 2 | Joysticks | ₹269 ($2.85) | https://www.amazon.in/Robocraze-Joystick-Module-PS2-Set/dp/B086VZH739 |
| 3 | TP4056 | ₹14 ($0.15) | https://robocraze.com/products/tp4056-battery-charger-c-type-module-with-protection-1 |
| 4 | Tactile Push Button Switch Assorted Kit | ₹156 ($1.65) | https://robocraze.com/products/tactile-push-button-switch-assorted-kit-25-pieces-pack |
| 5 | Right Angle Tactile Triggers | ₹383 ($4.06) | https://www.amazon.in/Push-Button-Tactile-Switch-Height/dp/B08P5BN7JM |
| 6 | SPST Switches | ₹74 ($0.78) | https://www.amazon.in/Panel-Mount-Momentary-Button-Switch/dp/B0B54XV8D2 |
| 7 | 18650 Battery | ₹217 ($2.30) | https://robu.in/product/bak-nmc-18650-2600mah-3c-lithium-ion-3-6v-battery/ |
| 8 | 18650 Battery Holder | ₹16 ($0.17) | https://robocraze.com/products/18650-1-cell-holder |
| 9 | PCB | ₹2,138 ($22.61) | robu.in |
| 10 | 3D Print | ₹699 ($7.08) | https://www.amazon.in/PLA-3D-Flexibility-Eco-Friendly-Compatible/dp/B071D82LDV |
| Total | ₹4,349 ($45) |
Assembly
- Manufacture the PCB from the Gerber files.
- Solder all components onto the PCB.
- Print 3D case & screw it using M3 screws.
- Upload the firmware to the ESP32.
- Verify all inputs are functioning correctly.
Parts
23| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | BTN A | Downloads:SW_VS-1213-67-160GF | SW1 |
| 1 | BTN B | Downloads:SW_VS-1213-67-160GF | SW2 |
| 1 | BTN HOME | Downloads:SW_VS-1213-67-160GF | SW9 |
| 1 | BTN START | Downloads:SW_VS-1213-67-160GF | SW8 |
| 1 | BTN X | Downloads:SW_VS-1213-67-160GF | SW3 |
| 1 | BTN Y | Downloads:SW_VS-1213-67-160GF | SW4 |
| 1 | Conn_01x02 For Battery | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J4 |
| 1 | Conn_01x06 For TP4056 | TP4056_withDW01A:TP4056-Module | J2 |
| 1 | DPAD D | Downloads:SW_VS-1213-67-160GF | SW11 |
| 1 | DPAD L | Downloads:SW_VS-1213-67-160GF | SW12 |
| 1 | DPAD R | Downloads:SW_VS-1213-67-160GF | SW13 |
| 1 | DPAD U | Downloads:SW_VS-1213-67-160GF | SW10 |
| 1 | Joystick_L | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Horizontal | J1 |
| 1 | Joystick_R | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Horizontal | J3 |
| 1 | L1 | Button_Switch_THT:SW_Tactile_SKHH_Angled | SW5 |
| 1 | LED | LED_THT:LED_D5.0mm_Horizontal_O6.35mm_Z3.0mm | D1 |
| 1 | R1 | Button_Switch_THT:SW_Tactile_SKHH_Angled | SW6 |
| 1 | SW_SPST | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | SW15 |
| 1 | ~ | ESP32_Footprints:ESP32_30pin | U1 |
The 19 most common of 23 parts.
Questions
How big is the GameController PCB?
It measures 146 × 89 mm and has 2 copper layers, 1.6 mm thick.
What parts does the GameController use?
23 parts. 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 GameController KiCad files?
From the aryanscodingden/Ares-Controller repository on GitHub, at the commit this page was made from: the board is PCB Files/GameController.kicad_pcb and its schematic PCB Files/GameController.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the GameController design in my own project?
Its repository states no licence, so its author keeps all rights: ask aryanscodingden before reusing the design.
Similar boards
- 2 layers65 × 56 mm

- 2 layers14 × 100 mm

Yunomi
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards
23 parts3kApache-2.0 - 2 layers50.8 × 52.2 mm

- 2 layers138.8 × 89.8 mm

- 2 layers32.9 × 53.3 mm

- 2 layers35.5 × 50 mm

- 2 layers19 × 19 mm

- 2 layers88.5 × 28 mm

ExpBreakout
Duet3D/Duet-2-Hardware
The KiCAD source for the Duet 3d printer controller see www.duet3d.com
23 parts258