

Joystick
A modular game console based on RP2354
- Size
- 25.5 × 32 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 6
- Nets
- 14
- Pads
- 34
- Tracks, vias
- 36, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 12 Aug 2026
- Updated
- 27 Oct 2026
Overview
Joystick is an open-source printed circuit board by hackclub, from the hackclub/hackxpansion repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 25.5 × 32 mm with 6 parts on 14 nets, routed with 36 tracks and 0 vias.
It is built around the COM-09032. Its parts include 2 resistors, 1 IC and 1 connector. It belongs with the keyboards and input and retro computing and games boards of this library.
Main components
1README
README.mdHackxpansion
Website
A handheld console with 4 expansion solts
Key Features
- Resistor based module identification at start up
- 2" 240x320 ST7789 LCD panel
- RP2354 MCU
- Easily adaptable module standard
- Rust firmware with embassy and slint-ui
Why?
I really like the idea of modules, and modular things, and making people work together, so I made this.
PCB
The console has two 4 layer PCBs designed in KiCAD, a main-board and a daughter-board, designed for JLC's basic process.

Main-Board

Daughter-Board

Making Your Own Modules
There are three simple steps to making your own module:
- Design the module PCB in KiCAD
- Design the module case in CAD
- Write a driver for the module
There are detailed docs on the hackxpansion website
Case
The case is designed in Autodesk Fusion, there are .f3z files in the hardware directory.
The models have parameters that can be adjusted to fit your needs.
Shoutouts
Thank you so much for Simon who helped with the fanout of the RP, and also gave a ton of constructive feedback!!!!
Zine
BOM for Console
This is for an order of 2 PCBA PCBs.
Also found in a CSV file. Each component has an LCSC part number attached that can be used to find the component on the LCSC website.
| Item | Price per unit | Nr of units | Total price | Link |
|---|---|---|---|---|
| PCB with PCBA | $60.00 | 1 | $60.00 | https://jlcpcb.com/ |
| Display | $4.36 | 1 | $4.36 | https://www.buydisplay.com/2-inch-ips-tft-lcd-display-ips-panel-screen-240x320-for-smart-watch |
| 2x7 2.54mm header | $0.386 | 10 | $3.860 | https://www.aliexpress.com/item/1005012166781874.html |
| Battery 502035 | $6.64 | 1 | $6.64 | https://www.aliexpress.com/item/1005008218024646.html |
| M2 OD3 L2 heat set insert | $0.0696 | 15 | $1.0440 | https://www.aliexpress.com/item/1005006798286851.html |
| M2 L6 screw | $0.0766 | 5 | $0.3830 | https://www.aliexpress.com/item/4000970993800.html |
| M2 L8 screw | $0.0766 | 2 | $0.1532 | https://www.aliexpress.com/item/4000970993800.html |
| M2 L4 screw | $0.0766 | 8 | $0.6128 | https://www.aliexpress.com/item/4000970993800.html |
| Total: | $77.05 |
Parts
6| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2 |
| 2 | R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R2 |
| 1 | COM-09032 | joystick:PS4_joystick | U1 |
| 1 | ~ | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Horizontal | J1 |
Questions
How big is the Joystick PCB?
It measures 25.5 × 32 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Joystick use?
6 parts, built around the COM-09032. 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 Joystick KiCad files?
From the hackclub/hackxpansion repository on GitHub, at the commit this page was made from: the board is hardware/modules/joystick/pcb/joystick.kicad_pcb and its schematic hardware/hackxpansion/pcb/ADC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Joystick design in my own project?
Its repository publishes it under the GPL-3.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).
More from hackclub/hackxpansion
7- 4 layers52 × 69 mm

- 2 layers25.5 × 32 mm

- 2 layers52 × 34.5 mm

- 2 layers25.5 × 32 mm

- 2 layers25.5 × 32 mm

- 2 layers25.5 × 32 mm

- 2 layers25.5 × 32 mm

Similar boards
- 2 layers304.8 × 95.2 mm

LMN
FundamentalFrequency/LMN-3-ECAD
Electrical CAD Files for the LMN-3 Project
106 parts106CC-BY-SA-4.0 - 2 layers27.3 × 34.3 mm

- 2 layers235.8 × 117.2 mm

- 2 layers130 × 109 mm

Right
Hex-4/glyph
[ a custom split keyboard for portably and comfortably interfacing with computing systems ]
49 parts11MIT - 2 layers107 × 83 mm

HEX remote
Josh4minee/HEX-B12.V1
HEX-B12.V120 is a custom designed hexapod using mg996r servos and has it's theme based on the beloved bot B-12 from the popular video game STRAY.
16 parts7MIT - 2 layers268.4 × 63.2 mm

Project Hermes
shiva233/Project-Hermes
Project Hermes is a handheld "console" designed for people who already own gaming PCs so they can stream their games via SteamLink so they can take it anywhere for cheap!
17 parts4 - 2 layers50 × 200 mm

Mouse c1
kayaked/esp32-ble-mouse-remote
Bluetooth LE hybrid of a computer mouse and a TV remote. (software/electronics)
31 parts2MIT - 2 layers188.5 × 88.9 mm

Esp gamepad v2
Reiko0908/NeuralNetwork_Based_AutonomousCar
This project focuses on developing an autonomous car system powered by neural networks (NN). It utilizes deep learning techniques to enable key functionalities such as perception, path planning, and control.
70 parts2Apache-2.0