ControlDeck is an open-source printed circuit board by CircuitPhantom, from the CircuitPhantom/ControlDeck repository on GitHub, published under the MIT licence. It is a 2-layer board of 44.5 × 57 mm with 5 parts on 14 nets, routed with 35 tracks and 0 vias.
Its parts include 4 switches and 1 IC.
README
README.md
ControlDeck
A compact, open-source desktop media controller / macropad, built for the StarDance Hackpad mission on Hack Club.
3 mechanical keys + a rotary encoder with push-button, all driven by a Seeeduino XIAO RP2040 running QMK firmware.
Important Note
I haven't tested it myself yet, so no guarantees it works 100%. I plan to build it this month (August 2026) but if you end up building it before I do, let me know how it goes!
Quick Start
Order the PCB — send the files in /pcb to your fab of choice (e.g. JLCPCB).
Print the case — slice and print the enclosure files in /cad.
Flash the firmware — build and flash with QMK:
bash
1x EC11 rotary encoder with push switch (volume control / scroll / custom actions)
Custom PCB designed in KiCad
3D-printed enclosure designed in Fusion 360
Powered by a Seeeduino XIAO RP2040 running QMK firmware
Hardware
Component
Qty
Notes
Seeeduino XIAO RP2040
1
Main controller
Cherry MX-style keyswitch
3
SW1, SW2, SW3
EC11 rotary encoder (with push switch)
1
SW6
Custom PCB
1
KiCad design, see /pcb
3D-printed case (top + base)
1
Fusion 360 design, see /cad
Wiring
All switches share a common GND. Signal pins connect to the XIAO RP2040 as follows:
Pin
Function
GND
Common ground for all switches
D1
Encoder A
D2
Encoder B
D3
Encoder push switch
D4
SW1
D5
SW2
D6
SW3
Firmware
Built with QMK Firmware for RP2040, using DIRECT_PINS (no key matrix) and the built-in QMK encoder support. See firmware/controldeck/readme.md for build/flash instructions.
3D Models Used
Cherry MX keyswitches — GrabCAD(not redistributed in this repo — download from source, see License section)
EC11 rotary encoder — GrabCAD(not redistributed in this repo — download from source, see License section)
XIAO RP2040 — Seeed Studio Wiki (reference only, no files redistributed)
Project Structure
text
├── cad/ # STEP file for the enclosure
├── firmware/
| └──controldeck # QMK files for the firmware
├── pcb/ # PCB schematic and layout
├── production/ # Production ready files
├── Demo.mp4
├── LICENSE
└── README.md
About
Built by CircuitPhantom for the StarDance Hackpad mission on Hack Club.
Gallery
License
The hardware design (PCB, KiCad files), original enclosure design, and this repository's own content are licensed under the MIT License — see LICENSE. Feel free to fork, remix, and build your own.
Third-party and per-file exceptions — not covered by the MIT license above:
GrabCAD Library content — personal/non-commercial use only; contact the original uploader for redistribution or commercial use. Not redistributed in this repo.
Documentation reference only, no files redistributed.
If you plan to redistribute this project (including the cad/ STL files), make sure any GrabCAD-sourced geometry is either removed/regenerated or that you've obtained permission from the original uploader — the MIT license on this repo does not extend to that content. Likewise, keymap.c remains GPL-2.0-or-later regardless of the repo-level MIT license.
It measures 44.5 × 57 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ControlDeck use?
5 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 ControlDeck KiCad files?
From the CircuitPhantom/ControlDeck repository on GitHub, at the commit this page was made from: the board is pcb/KiCad.kicad_pcb and its schematic pcb/KiCad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ControlDeck design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).