Skip to the content
PCBKitNew board
2 layers44.5 × 57 mmControlDeck, the printed circuit board in 3D

A custom built 3-key desktop media controller with a volume control knob.

Size
44.5 × 57 mm
Copper layers
2
Thickness
1.6 mm
Parts
5
Nets
14
Pads
38
Tracks, vias
35, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
10 Aug 2026
Updated
14 Aug 2026

Overview

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.

ControlDeck assembled

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

  1. Order the PCB — send the files in /pcb to your fab of choice (e.g. JLCPCB).
  2. Print the case — slice and print the enclosure files in /cad.
  3. Flash the firmware — build and flash with QMK:
    bash
    qmk compile -kb controldeck -km default
    qmk flash -kb controldeck -km default
    See firmware/controldeck/readme.md for full build/flash instructions.
  4. Assemble — solder the switches and encoder per the wiring table below, mount in the case.

Features

  • 3x Cherry MX-style mechanical switches (media/macro keys)
  • 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

ComponentQtyNotes
Seeeduino XIAO RP20401Main controller
Cherry MX-style keyswitch3SW1, SW2, SW3
EC11 rotary encoder (with push switch)1SW6
Custom PCB1KiCad design, see /pcb
3D-printed case (top + base)1Fusion 360 design, see /cad

Wiring

All switches share a common GND. Signal pins connect to the XIAO RP2040 as follows:

PinFunction
GNDCommon ground for all switches
D1Encoder A
D2Encoder B
D3Encoder push switch
D4SW1
D5SW2
D6SW3

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)
  • Cherry MX keycaps — hineybush/CherryMX (MIT License)
  • 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

Ekran görüntüsü 2026-08-11 002451 Ekran görüntüsü 2026-08-11 002548 Ekran görüntüsü 2026-08-11 002629 Ekran görüntüsü 2026-08-11 002918

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:

AssetSourceLicense / Terms
Cherry MX keyswitch 3D modelGrabCADGrabCAD Library content — personal/non-commercial use only; contact the original uploader for redistribution or commercial use. Not redistributed in this repo.
EC11 rotary encoder 3D modelGrabCADSame as above — GrabCAD non-commercial terms. Not redistributed in this repo.
Cherry MX keycap modelshineybush/CherryMXMIT License (original author: Josh Hinnebusch)
firmware/controldeck/keymaps/default/keymap.cQMK new-keyboard templateGPL-2.0-or-later, per the file's own header (SPDX-License-Identifier: GPL-2.0-or-later) — this specific file is not covered by this repo's MIT license
firmware/controldeck/keyboard.json, firmware/controldeck/readme.mdOriginal, written for this projectMIT (this repo's license)
XIAO RP2040 referenceSeeed Studio WikiDocumentation 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.

Parts

5
QtyValueFootprintReferences
3SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3
1MOUDLE-SEEEDUINO-XIAOfootprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_MountingHolesSW6

Questions

How big is the ControlDeck PCB?

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).

Similar boards

  • 2 layers98 × 27 mmXy limit, the printed circuit board in 3D

    Xy limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    5 parts3.7k
  • 2 layers21 × 33 mm24g2usb pico2w, the printed circuit board in 3D

    24g2usb pico2w

    joypad-ai/joypad-os

    Universal controller firmware for building adapters, dongles, and custom controllers.

    5 parts1.7kApache-2.0
  • 2 layers53.2 × 59.6 mmA10 OLinuXino Lime Rev B SHIELD TEMPLATE, the printed circuit board in 3D

    A10 OLinuXino Lime Rev B SHIELD TEMPLATE

    OLIMEX/OLINUXINO

    OLINUXINO is Open Source / Open Hardware, low cost from EUR 24 Linux Industrial grade Single Board Computer capable to operate -25+85C

    5 parts1.5k
  • 2 layers30 × 11 mmMain control board servo tester, the printed circuit board in 3D

    Main control board servo tester

    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.

    5 parts1.1k
  • 2 layers78.8 × 35.3 mmKiCadTest, the printed circuit board in 3D

    KiCadTest

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    5 parts915
  • 2 layers50 × 23 mmMiniCircuits LTCC, the printed circuit board in 3D

    MiniCircuits LTCC

    VanceVagell/kv4p-ht

    Open source handheld ham radio project KV4P-HT

    5 parts828GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 light sensor, the printed circuit board in 3D

    L0 light sensor

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    5 parts546MIT