

Macropad circuit
Macropad using a Raspberry Pi microcontroller
- Size
- 88.2 × 99.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 23
- Pads
- 142
- Tracks, vias
- 184, 0
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 24 Jul 2025
- Updated
- 8 Dec 2025
Overview
Macropad circuit is an open-source printed circuit board by SoulUnderscore, from the SoulUnderscore/PWS-Macropad repository on GitHub, published under the MIT licence. It is a 2-layer board of 88.2 × 99.8 mm with 19 parts on 23 nets, routed with 184 tracks and 0 vias.
It is built around the PEC12R-4230F-S0024. It belongs with the keyboards and input boards of this library.
Main components
1README
README.mdCode and files I wrote for a school research project.
This project uses a Raspberry Pi Pico 2 family microcontroller to make a reprogrammable macropad. The microncontroller code is based on code from the Adafruit TinyUSB Library for Arduino (https://github.com/adafruit/Adafruit_TinyUSB_Arduino/blob/master/examples/HID/hid_composite/hid_composite.ino).
Microcontroller setup guide:
- Connect the microcontroller to your computer as a mass storage device by holding the button labelled "Bootsel" while plugging the USB-connector into your computer, it should show up as "RP2350"
- Download the latest release of the microcontroller code
- Extract the downloaded "Microcontroller.code.zip" file
- Move the folder labelled "Microcontroller code" over to the root of the Pico. Be sure to move the entire folder, not just its contents
If done properly, the Pico should disconnect automatically after moving over the folder.
PCB:
PCB designed with KiCad 9.0 and should work with PCB ordering services such as PCBWay.
Code compilation guide:
- Download the Arduino IDE
- Open MicrocontrollerCode.ino in the IDE
- In the menubar go to File > Preferences > Settings and add "https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json" to the Additional boards manager URLs
- In the boards manager in the sidebar install "Raspberry Pi Pico/RP2040/RP2350" by Earle F. Philhower, |||
- In the library manager in the sidebar install "Adafruit TinyUSB Library" by Adafruit
- In the dropdown below the menubar press "Select other boards and port...", then select the USB port that the raspberry pi is connected to and search and select the correct Raspberry Pi Pico model
- In the menubar go to Tools > USB Stack and select Adafruit TinyUSB\
- Press upload
If done properly, the code should be compiled and automatically uploaded to the microcontroller
Standard keymaps:
Encoders:
- Press: switch keymap, Turn: change screen brightness
- Press: mute volume, Turn: change volume
Keymap 1: Sends signals to the companion app
- F13
- F14
- F15
- F16
- F17
- F18
- F19
- F20
- F21
- F22
- F23
- F24
Keymap 2: Mouse
- Left click
- Middle click
- Right click
- Scroll up
- Move mouse up
- Scroll down
- Move mouse left
- Scroll lock
- Move mouse right
- Scroll left
- Move mouse down
- Scroll right
Keymap 3: Various shortcuts
- Previous track
- Next track
- Play/pause
- Ctrl + x
- Ctrl + c
- Ctrl + v
- Ctrl + z
- Ctrl + s
- Alt + tab
- Calculator
- Screenshot
- Delete
Components:
Off the shelf:
- PEC12R-4217F-S0024 rotary encoder
- Kaihl hotswap sockets for cherry mx
- Cherry MX keyswitches
- Raspberry Pi Pico 2 + socket
- Keycaps for cherry mx (optional)
Custom:
- PCB
- 3d printed case
- 3d printed knobs
- 3d printed keycaps
Parts
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | CherryMX | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.00u | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12 |
| 4 | MountingHole_2.7mm_M2.5 | MountingHole:MountingHole_2.7mm_M2.5 | M2.5, M2.5, M2.5, M2.5 |
| 2 | PEC12R-4230F-S0024 | Rotary encoder:XDCR_PEC12R-4230F-S0024 | S1, S2 |
| 1 | ~ | rpi-pico2w-kicad-main:Raspberrypi pico2 THT | Pi pico |
Questions
How big is the Macropad circuit PCB?
It measures 88.2 × 99.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Macropad circuit use?
19 parts, built around the PEC12R-4230F-S0024. 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 Macropad circuit KiCad files?
From the SoulUnderscore/PWS-Macropad repository on GitHub, at the commit this page was made from: the board is PCB/Macropad circuit.kicad_pcb and its schematic PCB/Macropad circuit.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Macropad circuit 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 layers125 × 93 mm

- 2 layers43.9 × 27.7 mm

- 2 layers50 × 60 mm

Debate Device
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
19 parts915 - 2 layers102.9 × 96.7 mm

ISA adapter
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
19 parts805 - 2 layers60 × 39 mm

- 2 layers70.1 × 43.2 mm

Iaq device
nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality
19 parts396 - 2 layers80 × 80 mm

- 2 layers25.4 × 25.4 mm

Ina169
Ardumower/ardumower
Develop an open source robotic lawn mower (HW+SW reference platform)
19 parts282