Skip to the content
PCBKitNew board
2 layers79 × 83.9 mmDuodec, the printed circuit board in 3D

A 12 key macro pad aimed at enhancing productivity of makers like me!

Size
79 × 83.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
35
Pads
121
Tracks, vias
214, 19
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 Mar 2026
Updated
26 Apr 2026

Overview

Duodec is an open-source printed circuit board by GoTouchGra55, from the GoTouchGra55/Duodec repository on GitHub, published under the MIT licence. It is a 2-layer board of 79 × 83.9 mm with 29 parts on 35 nets, routed with 214 tracks and 19 vias.

It is built around the RP2040-ZERO. Its parts include 13 switches, 12 diodes, 1 capacitor and 1 connector. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

1

README

README.md

Duodec

status platform license

A 12-key + 1 rotary encoder macropad built on the RP2040-Zero, designed for developers and students who live in their terminal.

Duodec 3d model


Overview

Duodec (Latin: twelve) is a compact, open-source macropad featuring 12 mechanical switches, a clickable rotary encoder, and an 128x32 OLED display. Built around the RP2040-Zero, it's fully programmable in Python.

PCB traces Schematic


Working Demo

Here’s a quick demonstration of Duodec in action, showing key inputs, encoder rotation, and OLED layer switching.

Duodec demo


Features

  • 12x mechanical key switches in a 4x3 matrix
  • 1x rotary encoder with push-button click
  • 128x32 OLED display
  • RP2040-Zero (RP2040 chip, USB-C)
  • Fully programmable in Python
  • Multiple layers for different workflows
  • Custom 3D printed keys
  • Open source hardware and software

⚠️ Important Wiring Note

Sorry about this ;-; but the OLED display requires 2-4kΩ 3.3V pull-up resistors on both:

  • SDA (I2C data line)
  • SCL (I2C clock line)

Without these, the display will not function at all.

PullUp Resistors

Customization

  1. Clone this repository
  2. Open src/main.py
  3. Modify keymaps (line 26)
  4. Add your own shortcuts and layers
  5. Flash to your RP2040-Zero

Be productive 🚀

Contributing

Contributions are welcome!

If you'd like to improve Duodec, you can:

  • Suggest new features or workflows
  • Improve firmware or add new layers
  • Fix bugs or optimize performance
  • Enhance documentation or visuals

Please open an issue first to discuss major changes.

Pull requests should be clean, well-documented, and tested where possible.

Parts

29
QtyValueFootprintReferences
12DDiode_SMD:D_SOD-123D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12
12SW_PushPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uSW1, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13
1CCapacitor_SMD:C_0402_1005MetricC1
1Conn_01x04_SocketConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ1
1MountingHoleMountingHole:MountingHole_3.2mm_M3H1
1RP2040-ZeroRP2040-Zero-Kicad-main:RP2040-ZeroRZ1
1RotaryEncoder_SwitchLibrary:RotaryEncoder_DuodecSW2

Questions

How big is the Duodec PCB?

It measures 79 × 83.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Duodec use?

29 parts, built around the RP2040-ZERO. 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 Duodec KiCad files?

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

Can I use the Duodec 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 layers132.3 × 94.9 mmCheapino, the printed circuit board in 3D

    Cheapino

    tompi/cheapino

    An affordable split 36 keys keyboard

    59 parts1.2kCC-BY-4.0
  • 2 layers321 × 92.3 mmMx40, the printed circuit board in 3D

    Mx40

    zzeneg/stront

    Split keyboards with 38 or 40 keys, LCD display and Cirque trackpad

    181 parts353MIT
  • 2 layers255.9 × 99.3 mmZerosprey42, the printed circuit board in 3D

    Zerosprey42

    beekeeb/zerosprey42

    Zerosprey42 Keyboard is a wired, beginner friendly, choc hotswap, MonoBlockSplit (Unibody), column-staggered, DIY mechanical keyboard.

    96 parts140
  • 2 layers146.3 × 69.5 mmStress, the printed circuit board in 3D

    Stress

    GroooveBob/Stress

    Pocket Arcade Fight Pad

    22 parts102MIT
  • 2 layers54 × 64 mmDonConIOmini, the printed circuit board in 3D

    DonConIOmini

    ravinrabbid/DonCon2040

    RP2040 based firmware and hardware for DIY Taiko no Tatsujin Drum Controllers

    96 parts66MIT
  • 2 layers52 × 50 mmRP2040-TestPatternGenerator VGA, the printed circuit board in 3D

    RP2040-TestPatternGenerator VGA

    nmur/RP2040-TestPatternGenerator

    A simple test pattern generator running on the RP2040 microcontroller

    12 parts64GPL-3.0
  • 2 layers120 × 40 mmBuinchiez40, the printed circuit board in 3D

    Buinchiez40

    ChrisChrisLoLo/bunchiez40

    A pocket keyboard that makes use of mouse switches to achieve a miniscule size

    90 parts56GPL-3.0
  • 2 layers305.2 × 76.2 mmSoroka, the printed circuit board in 3D

    Soroka

    kapee1/soroka

    40% DIY-keyboard with base kit support

    126 parts47Unlicense