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

Documents

    Project Specification — RP2040 Macropad

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