

Two button
A modular game console based on RP2354
- Size
- 25.5 × 32 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 7
- Nets
- 14
- Pads
- 28
- Tracks, vias
- 18, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 12 Aug 2026
- Updated
- 27 Oct 2026
Overview
Two button 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 7 parts on 14 nets, routed with 18 tracks and 0 vias.
Its parts include 2 resistors, 2 switches and 1 connector. It belongs with the retro computing and games boards of this library.
README
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
7| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2 |
| 2 | SW_Push | Button_Switch_THT:SW_PUSH_6mm | SW1, SW2 |
| 1 | 1k5 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | 1k6 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2 |
| 1 | ~ | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Horizontal | J1 |
Questions
How big is the Two button PCB?
It measures 25.5 × 32 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Two button use?
7 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 Two button KiCad files?
From the hackclub/hackxpansion repository on GitHub, at the commit this page was made from: the board is hardware/modules/two_button/pcb/two_button.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 Two button 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 layers

Encoder
byrantech/laptop
anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.
7 parts4.3kMIT - 2 layers40 × 20 mm

- 2 layers19.8 × 30 mm

- 2 layers35.6 × 58.2 mm

Display Carrier
AxxAxx/AxxSolder
STM32 Based soldering station for JBC cartridges, 9-24 VDC and USB-PD power
7 parts1.7kGPL-3.0 - 2 layers20.3 × 16.3 mm

- 2 layers26 × 44 mm

Compact carrier board
jamro/tiny-engineer
A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.
7 parts1.1k - 2 layers26.4 × 53.8 mm

Atari pickup
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
7 parts1kGPL-3.0 - 2 layers
