Skip to the content
PCBKitNew board
2 layers88.2 × 99.8 mmMacropad circuit, the printed circuit board in 3D

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

1

README

README.md

Code 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:

  1. 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"
  2. Download the latest release of the microcontroller code
  3. Extract the downloaded "Microcontroller.code.zip" file
  4. 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:

  1. Download the Arduino IDE
  2. Open MicrocontrollerCode.ino in the IDE
  3. 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
  4. In the boards manager in the sidebar install "Raspberry Pi Pico/RP2040/RP2350" by Earle F. Philhower, |||
  5. In the library manager in the sidebar install "Adafruit TinyUSB Library" by Adafruit
  6. 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
  7. In the menubar go to Tools > USB Stack and select Adafruit TinyUSB\
  8. Press upload

If done properly, the code should be compiled and automatically uploaded to the microcontroller

Standard keymaps:

Encoders:

  1. Press: switch keymap, Turn: change screen brightness
  2. Press: mute volume, Turn: change volume

Keymap 1: Sends signals to the companion app

  1. F13
  2. F14
  3. F15
  4. F16
  5. F17
  6. F18
  7. F19
  8. F20
  9. F21
  10. F22
  11. F23
  12. F24

Keymap 2: Mouse

  1. Left click
  2. Middle click
  3. Right click
  4. Scroll up
  5. Move mouse up
  6. Scroll down
  7. Move mouse left
  8. Scroll lock
  9. Move mouse right
  10. Scroll left
  11. Move mouse down
  12. Scroll right

Keymap 3: Various shortcuts

  1. Previous track
  2. Next track
  3. Play/pause
  4. Ctrl + x
  5. Ctrl + c
  6. Ctrl + v
  7. Ctrl + z
  8. Ctrl + s
  9. Alt + tab
  10. Calculator
  11. Screenshot
  12. 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
QtyValueFootprintReferences
12CherryMXPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.00uSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12
4MountingHole_2.7mm_M2.5MountingHole:MountingHole_2.7mm_M2.5M2.5, M2.5, M2.5, M2.5
2PEC12R-4230F-S0024Rotary encoder:XDCR_PEC12R-4230F-S0024S1, S2
1~rpi-pico2w-kicad-main:Raspberrypi pico2 THTPi 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 layers43.9 × 27.7 mmTcd1304-4v, the printed circuit board in 3D

    Tcd1304-4v

    OpnTec/open-spectrometer-hardware

    Open source VIS spectrometer

    19 parts1.5k
  • 2 layers50 × 60 mmDebate Device, the printed circuit board in 3D

    Debate Device

    hackclub/OnBoard

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

    19 parts915
  • 2 layers102.9 × 96.7 mmISA adapter, the printed circuit board in 3D

    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 mmPs2usb, the printed circuit board in 3D

    Ps2usb

    rasteri/HIDman

    Adapting USB devices to work on old computers

    19 parts432
  • 2 layers70.1 × 43.2 mmIaq device, the printed circuit board in 3D

    Iaq device

    nkitanov/iaq_board

    IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

    19 parts396
  • 2 layers80 × 80 mmGB BRK CPU G1, the printed circuit board in 3D

    GB BRK CPU G1

    Gekkio/gb-hardware

    Game Boy -related custom hardware by gekkio

    19 parts379CC-BY-4.0
  • 2 layers25.4 × 25.4 mmIna169, the printed circuit board in 3D

    Ina169

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    19 parts282