MECHROPAD
12/10/2025
A custom-designed macropad built around an RP2040 microcontroller, featuring a fully 3D printed enclosure and custom firmware with a layered input system.

Firmware
CircuitPython firmware for the RP2040, structured in a clean layered architecture: hardware input drivers → event processing and action dispatch → output rendering (OLED display, HID, LED).
The pad has ten buttons, a toggle, and an SSD1306 OLED display. Short presses emit HID keyboard output to the host; long presses switch modes; the toggle selects the active layer per mode. Ten modes with two layers each yields twenty configurable input layers — up to two hundred mappable inputs on a ten-button device.
Button-to-GPIO mapping is loaded at runtime from a CSV config file, making the firmware hardware-agnostic. Pin layout, labeling, and HID mapping all derive from the config with a sensible default fallback.
A deliberate security feature: the CIRCUITPY USB drive is hidden by default. It can only be exposed by holding a specific two-button chord until an OLED confirmation appears, after which the board reboots and exposes the drive for a single session. Power-cycling hides it again. The enable flag is stored in NVM.
A KiCad PCB is in progress to replace the current hand-wired internals.
Hardware Design

The enclosure was designed from scratch through multiple prototype iterations, resolving structural and tolerance issues before arriving at the current build. Key design decisions:
- Armor panel system covers internal structure and fasteners without compromising serviceability
- Removable back panel provides full internal access for repair and modification
- All structural components are 3D printed in PLA

What's Next
The next revision will address ergonomics — the current ~45° usage angle looks striking but is better suited to occasional use than extended sessions. Parametric modeling improvements and PCB integration are planned alongside the firmware rewrite.
← Portfolio