

Duodec
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
1README
README.mdDuodec
A 12-key + 1 rotary encoder macropad built on the RP2040-Zero, designed for developers and students who live in their terminal.

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.

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

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.

Customization
- Clone this repository
- Open
src/main.py - Modify keymaps (line 26)
- Add your own shortcuts and layers
- 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | D | Diode_SMD:D_SOD-123 | D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12 |
| 12 | SW_Push | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | SW1, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13 |
| 1 | C | Capacitor_SMD:C_0402_1005Metric | C1 |
| 1 | Conn_01x04_Socket | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J1 |
| 1 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1 |
| 1 | RP2040-Zero | RP2040-Zero-Kicad-main:RP2040-Zero | RZ1 |
| 1 | RotaryEncoder_Switch | Library:RotaryEncoder_Duodec | SW2 |
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 mm

- 2 layers321 × 92.3 mm

- 2 layers255.9 × 99.3 mm

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 mm

- 2 layers54 × 64 mm

DonConIOmini
ravinrabbid/DonCon2040
RP2040 based firmware and hardware for DIY Taiko no Tatsujin Drum Controllers
96 parts66MIT - 2 layers52 × 50 mm

RP2040-TestPatternGenerator VGA
nmur/RP2040-TestPatternGenerator
A simple test pattern generator running on the RP2040 microcontroller
12 parts64GPL-3.0 - 2 layers120 × 40 mm

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 mm
