Custom Macropad PCB Design

I’ll inspect the current PCB placement, then rearrange the switches/encoders on the 19.05 mm grid and move bottom-side electronics into assembly-friendly locations.
I’m blocked again because the account has no available ACUs, so I can’t continue moving/fixing components right now.
Accomplished:
  • Changed the PCB to a 100 × 110 mm, rounded-corner, 2-layer board.
  • Moved most electronics to the bottom side.
  • Routing congestion is now reported as acceptable.
  • U1, U2, diodes, resistors, and test pads were roughly organized on the bottom.
Still needs fixing:
  • The placement optimizer disturbed the exact macropad grid: encoders and LEDs are no longer in their intended top-row/LED-row positions.
  • Some MX/socket centers were shifted from the required 19.05 mm grid.
  • Final overlap/spacing review still needs to be run after restoring the exact grid.
Next step once ACUs are available:
  • Re-apply deterministic positions for SW1–SW14, ENC1–ENC2, LED1–LED4, and mounting holes, then run placement checks and iterate.
Fix exact grid
Run DRC after placement
List off-grid parts
Save placement note

Refine this doc
Ask about this doc
Project Specification — RP2040 Macropad
Project Overview
Status: Draft. Compact premium custom macropad PCB using an RP2040-Zero module, MX hot-swap switches, standard EC11 encoders, and layer indicator LEDs.
Intended Use
Installed in a custom 3D-printed enclosure and fabricated through JLCPCB. User assembly after PCB fabrication.
What the Device Should Do
  • Provide a 4×4 keyboard matrix compatible with QMK, VIA, Vial, and KMK.
  • Support 14 MX-style hot-swap switch positions and 2 encoder push buttons as normal keys.
  • Read two EC11 rotary encoders.
  • Show four firmware-driven layer indicator LEDs.
  • Expose USB-C through the RP2040-Zero module and provide BOOTSEL, RESET, and SWD access.
Main Features
  • 19.05 mm ortholinear grid.
  • COL2ROW diode matrix.
  • Bottom-side RP2040-Zero, hot-swap sockets, matrix diodes, LED resistors, and protection circuitry.
  • Top-side mechanical switches, rotary encoders, and visible layer LEDs.
  • 2-layer FR4, 1.6 mm, JLCPCB-compatible design.
System Architecture

Diagram


"USB-C via RP2040-Zero" "RP2040-Zero" "4×4 COL2ROW key matrix" "2× EC11 encoder A/B channels" "4× layer LEDs with resistors" "BOOTSEL / RESET / SWD pads"
Hardware Subsystems
  • Controller: RP2040-Zero mounted bottom side, facing downward.
  • Matrix: 4 rows × 4 columns; 16 diode-protected switch/button inputs.
  • Switches: 14 MX-compatible footprints with Kailh MX hot-swap sockets and 5-pin MX support.
  • Encoders: 2× standard EC11 through-hole rotary encoders with integrated push buttons included in the matrix. User approved substituting a standard EC11 footprint for EC11H 7CE20P1ZY15F7.
  • Indicators: 4× 0805 LEDs with individual current-limiting resistors.
  • Protection/debug: USB ESD protection if route-accessible, reset/boot access, SWD pads, optional test pads.
  • Mechanical: 4× M3 mounting holes, switch/encoder silkscreen labels, USB direction and revision text.
Interfaces and Connections

Table


FunctionRP2040 GPIO
COL0GP0
COL1GP1
COL2GP2
COL3GP3
ROW0GP4
ROW1GP5
ROW2GP6
ROW3GP7
Encoder 1 A/BGP8 / GP9
Encoder 2 A/BGP10 / GP11
LED1 / LED2 / LED3 / LED4GP14 / GP15 / GP26 / GP27
ReservedGP12, GP13, GP28
Power and Runtime Expectations
USB-powered through RP2040-Zero. Logic and LED drive are 3.3 V. No battery or charging expected.
Manufacturing and Assembly Expectations
  • PCB fabrication target: JLCPCB, 2-layer FR4, 1.6 mm.
  • User assembles components after fabrication.
  • Top: switches, encoders, visible LEDs.
  • Bottom: RP2040-Zero, hot-swap sockets, diodes, resistors, ESD/support/test components.
Firmware-Relevant Hardware Requirements
Support QMK, VIA, Vial, and KMK. Use the specified GPIO map and matrix positions. Encoder push buttons behave as matrix keys.
Physical Design Expectations
19.05 mm switch/encoder center spacing. Four corner M3 mounting holes. USB-C connector aligned to enclosure wall. Board sized around the 4×4 grid with margin for LEDs, mounting holes, and USB access.
Important Design Decisions
  • Follow detailed matrix definition: 14 MX positions plus 2 encoder push buttons, despite overview saying 12 MX positions.
  • Diode direction: COL2ROW.
  • Bottom-side electronic assembly to keep top visually clean.
  • User approved using a standard EC11 footprint instead of the exact EC11H 7CE20P1ZY15F7 footprint because the exact part was unavailable in the Flux library.
Assumptions
  • RP2040-Zero module includes USB-C connector, onboard regulator, flash, crystal, and required module-level decoupling.
  • Standard EC11 encoder footprint compatibility must be verified against the actual encoder purchased before ordering PCBs.
Change Notes
  • Initial project specification created from user requirements.
  • Updated encoder requirement to standard EC11 footprint per user instruction.
  • Project Overview

  • Intended Use

  • What the Device Should Do

  • Main Features

  • System Architecture

  • Hardware Subsystems

  • Interfaces and Connections

  • Power and Runtime Expectations

  • Manufacturing and Assembly Expectations

  • Firmware-Relevant Hardware Requirements

  • Physical Design Expectations

  • Important Design Decisions

  • Assumptions

  • Change Notes

Assets

Assets are files uploaded to this project which can be used in various ways.

RP2040 Macropad thumbnail
Compact 4×4 ortholinear custom macropad with RP2040-Zero, 14 MX hot-swap positions, 2 EC11 encoders, 4 layer LEDs, USB protection, and JLCPCB-compatible 2-layer PCB layout for a 3D-printed enclosure.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Arrow

$0.42–$1.70

Digi-Key

$10.18–$10.84

HQonline

$4.41–$4.50

LCSC

$6.32–$8.62

Mouser

$11.51–$12.22

TME

$0.53

Verical

$7.89–$10.95

Controls