Skip to the content
PCBKitNew board
2 layers32 × 25.5 mmController, the printed circuit board in 3D

This is my first custom hardware module for the hackxpansion console. It combines a physical rotary encoder knob with two extra push buttons so you can scroll through menus, tweak settings, and play games with tactile…

Size
32 × 25.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
14
Pads
35
Tracks, vias
60, 7
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
24 Aug 2026
Updated
24 Aug 2026

Overview

Controller is an open-source printed circuit board by Alcindoromycine1, from the Alcindoromycine1/controller repository on GitHub. It is a 2-layer board of 32 × 25.5 mm with 8 parts on 14 nets, routed with 60 tracks and 7 vias.

Its parts include 3 switches, 2 resistors and 1 connector.

README

README.md

Controller!

3D Model Render

This is my first custom hardware module for the hackxpansion console. It combines a physical rotary encoder knob with two extra push buttons so you can scroll through menus, tweak settings, and play games with tactile controls.

Design

I wanted to build something practical for menu navigation without taking up too much space.

I combined a standard EC11 rotary encoder (with its built-in push switch) alongside two standalone push buttons. The encoder handles spinning controls for scrolling lists or adjusting levels, while the buttons give you quick action controls for selecting items or going back.

Schematic

I made this schematic in KiCad by routing the encoder pins (GPIO0 & GPIO1), the two external buttons (GPIO2 & GPIO3), and the encoder shaft button (GPIO4) directly to the hackxpansion pin headers.

KiCad Schematic

Layout

PCB Layout

The board layout fits a single hackxpansion module slot. It uses a standard 2-layer PCB with ground planes on both top and bottom layers.

You can inspect the design in your browser using the Live Interactive PCB Layout (KiCanvas).

Case & 3D Model

I modeled the enclosure in Fusion 360 using the hackxpansion base template. The shell holds the PCB using two M2 screws from the back so the knob and buttons stay solid when pressed.

CAD Assembly Front View CAD Assembly Internal View

Check out the interactive 3D model via the Fusion 360 Live Web Link.

Software & Hardware Config

The driver for this module was built in Rust using xpanse-api.

Pin mapping:

  • GPIO0 & GPIO1 -> Rotary Encoder rotation
  • GPIO2 -> Button A
  • GPIO3 -> Button B
  • GPIO4 -> Encoder Shaft Push Switch (Button X)

The driver code lives in the /firmware folder.

BOM

Component / VendorQuantityUnit Price ($)Link
ALPSALPINE EC11 Encoder12.24LCSC C202365
SHOU HAN 6x6 Tactile Switches20.05LCSC C393938
0805 1kΩ Resistor (MD0)10.01LCSC C2889523
0805 36kΩ Resistor (MD1)10.01LCSC
PCB Fabrication (JLCPCB)14.00JLCPCB
Printing Legion 3D Printed Case110.00Custom Print
Shipping Costs117.00N/A
Total Cost$33.37

Parts

8
QtyValueFootprintReferences
2SW_PushButton_Switch_THT:SW_PUSH_6mmSW2, SW3
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
135kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Bourns_Vertical_PEC12R-3x17F-SxxxxSW1
1~Hackxpansion:Male_ModuleJ1

The 6 most common of 8 parts.

Questions

How big is the Controller PCB?

It measures 32 × 25.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller use?

8 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 Controller KiCad files?

From the Alcindoromycine1/controller repository on GitHub, at the commit this page was made from: the board is pcb/controller.kicad_pcb and its schematic pcb/controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask Alcindoromycine1 before reusing the design.

Similar boards

  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k
  • 2 layers59.9 × 25.7 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    8 parts1kGPL-3.0
  • 2 layers52 × 12.6 mmUSB, the printed circuit board in 3D

    USB

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    8 parts960Apache-2.0
  • 2 layers87.5 × 48.5 mm7 input macropad, the printed circuit board in 3D

    7 input macropad

    hackclub/OnBoard

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

    8 parts915
  • 2 layers36.2 × 63.1 mmPicoMemcard pico, the printed circuit board in 3D

    PicoMemcard pico

    dangiu/PicoMemcard

    Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

    8 parts694GPL-3.0
  • 2 layers36 × 10 mmPCB4-PWR BTN Rev.A, the printed circuit board in 3D

    PCB4-PWR BTN Rev.A

    OLIMEX/DIY-LAPTOP

    Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop

    8 parts578Apache-2.0