A custom wired 3x3 macro pad PCB with MX switches, an OLED display, and a rotary encoder running QMK firmware.
Core electronics:
- 1x Adafruit KB2040 RP2040 Kee Boar Driver
- 1x 0.96 inch 128x64 SSD1306 I2C OLED display module
- 1x Bourns PEC11R-4220F-S0024 rotary encoder with push button
- 1x 6 mm D-shaft knob for the encoder
- 9x 1N4148 SOD-123 diodes
Keyboard parts:
- 9x Kailh Red Cherry MX-style switches
- 9x keycaps
Mounting:
- 5x M3 screws, 6 mm
- 5x M3 heat-set inserts
PCB:
- 2-layer custom PCB
- 1.6 mm thickness
- 1 oz copper
- Lead-free HASL finish
- No assembly
QMK keyboard source lives in firmware/.
Install the ARM toolchain and pipx:
brew install --cask gcc-arm-embedded
brew install pipxInstall QMK:
pipx install qmk
qmk setupConfigure the path to the firmware. Run from the repo root:
qmk config user.overlay_dir=$(pwd)/firmwareqmk compile -kb macropad -km default --compiledbThis produces firmware/macropad_default.uf2.
To enter boot mode, hold the BOOT button, press and release RESET, then release BOOT. A drive named RPI-RP2 will mount. Drop firmware/macropad_default.uf2 onto it; the board flashes, unmounts, and restarts automatically.
Switch to the BOOT layer with the rotary encoder, then press any key. The board enters boot mode and the RPI-RP2 drive mounts again — drop the updated firmware/macropad_default.uf2 onto it.
- Adafruit KB2040 PCB symbol and footprint: drewgates/kb2040-kicad