Skip to the content
PCBKitNew board
2 layers57.3 × 84.9 mmV13macropad, the printed circuit board in 3D

A macropad for TRkey

Size
57.3 × 84.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
29
Pads
150
Tracks, vias
153, 13
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Aug 2025
Updated
4 Mar 2026

Overview

V13macropad is an open-source printed circuit board by trinibos1, from the trinibos1/Trkey_macro repository on GitHub, published under the MIT licence. It is a 2-layer board of 57.3 × 84.9 mm with 24 parts on 29 nets, routed with 153 tracks and 13 vias.

It is built around the MX1A-11NN. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

1

README

README.md

Trkey Macropad

Overview

This is a compact 3×3 macropad built with Raspberry Pi Pico / RP2040, running CircuitPython/Arduino. It connects via USB using the Adafruit HID library, allowing you to assign keyboard shortcuts, media keys, and macros. An OLED display shows layer and status information for easy feedback.

PCB Image

Update

  • UF2 file is old but code is up to date
  • wireless trkey macropad has started development

Changelog / Update Log

  • 2026-02-14
    • Added startup boot animation to main Arduino sketch (arduino/Trkey_macro.ino) with 3x3 box reveal, TRKEY splash, and version text.
    • Added dedicated WebSerial + USB connection guide (WEBSERIAL_CONNECTION.md).
    • Improved Arduino firmware compatibility and robustness:
      • HID report ID fixes for keyboard/media reports.
      • Numeric key token support ("1".."0") plus legacy aliases ("ONE".."ZERO").
      • RAM-backed layers.json handling when LittleFS is unavailable.
      • Safer JSON fallback behavior and macro ID parsing improvements.
      • USB descriptor naming updates for Trkey product/manufacturer.

Features

  • 3×3 Cherry MX Brown Hyperglide 45g tactile mechanical key matrix
  • USB HID support (no Bluetooth)
  • OLED display for layer/status feedback
  • Tap/Hold functionality for advanced key actions
  • Multiple layers for extended shortcut options
  • Fast and responsive keypresses
  • Simple wiring: switches connect directly to GND
  • All-in-one UF2: CircuitPython, libraries, and firmware code included

Hardware

ComponentDetails
MicrocontrollerRaspberry Pi Pico / RP2040
Switches9x Cherry MX Brown Hyperglide 45g tactile
DisplayOLED I2C 128x32 (link)
PCBCustom 3×3 macropad (link)
PowerUSB only

PCB PCB Image


Firmware

UF2 Firmware: UF2 Badge

  • macropad.uf2 — stable, all-in-one with CircuitPython, libraries, and code
  • dev_firmware.uf2 — development version for testing new features

Key Features: Tap/Hold, Layers, Media keys

Arduino IDE firmware (C/C++)

If you want to move from CircuitPython to Arduino IDE, use arduino/Trkey_macro.ino.

Startup animation is now included in the main sketch (arduino/Trkey_macro.ino).

For beta experiments, you can still use arduino/Trkey_macro_Beta.ino (also provided as arduino/Trkey_macro Beta.ino).

This sketch keeps the same behavior as code.py:

  • 3x3 key scanning with debounce + key repeat
  • Layer functions: MO(x), TO(x), TT(x), DF(x)
  • Media keys + keyboard combos + text macros (MACRO_n)
  • Text macro typing fallback is ASCII-only (A-Z, a-z, 0-9, space, newline)
  • OLED layer/key UI (with highlighted key and boxed grid)
  • Serial command protocol for LIST, GET, PUT, DEL, RELOAD
  • Macros can be defined on any layer; duplicate IDs use the last parsed definition

Required Arduino libraries:

  • Adafruit SSD1306
  • Adafruit GFX Library
  • TinyUSB from the RP2040 board core (Adafruit_TinyUSB_Arduino)
  • ArduinoJson
  • LittleFS (included with RP2040 core)

Recommended board core: Raspberry Pi Pico/RP2040 (Earle Philhower core).

RP2040 TinyUSB note (important):

  • Do not call tusb_init() in your sketch (the RP2040 Arduino core already initializes TinyUSB).
  • Prefer the TinyUSB bundled with the RP2040 core (Adafruit_TinyUSB_Arduino).
  • If you installed Documents/Arduino/libraries/Adafruit_TinyUSB_Library, remove it to avoid library conflicts.

Documentation:

  • WEBSERIAL_CONNECTION.md — USB CDC/WebSerial command flow, upload handshake, persistence behavior, and troubleshooting.
  • layers.json in repo root — example keymap/profile format used by firmware and mapper.

Usage

  1. Flash the UF2 (macropad.uf2 or dev_firmware.uf2) onto your Pico — everything is included, no additional setup needed.

  2. Plug in the macropad — ready to use.

  3. Use your macropad:

    • Tap switches for primary actions
    • Hold switches for secondary actions or layer switching
    • OLED displays the current layer and status

Companion App (Beta)

This beta feature is implemented in Arduino firmware (arduino/Trkey_macro.ino) and an optional PC CLI app (pc_companion/trkey_music_companion.py).

  • The macropad still works fully without the companion app.
  • Companion mode adds now-playing OLED metadata and app events.
  • You can switch to music layer by name with: MODE music.

Quick start:

  1. Flash Arduino beta firmware (arduino/Trkey_macro_Beta.ino).
  2. Flash Arduino firmware (arduino/Trkey_macro.ino).
  3. Run companion app: python pc_companion/trkey_music_companion.py --port <PORT>.
  4. In app CLI, type:
    • music to load the music layer by name.
    • np Song|Artist|45|180|Spotify to update metadata.

Supported companion key tokens (in layers.json):

  • APP_PLAY_PAUSE
  • APP_NEXT
  • APP_PREV
  • APP_MUTE
  • APP_VOL_UP
  • APP_VOL_DOWN
  • APP_SEEK_FWD_10
  • APP_SEEK_BACK_10

APP_* keys emit APP_EVENT <token> on serial and media actions also fallback to HID media controls.

Web-Based Key Mapper

Customize your macropad's key bindings using the web-based key mapper:

  • Full key remapping: Assign single keys or complex shortcuts to any of the 9 keys
  • Multi-layer support: Configure multiple layers for extended functionality
  • Macro support: Create macros for complex sequences
  • Web Serial API: Communicate directly with your macropad via the browser

Access the key mapper here: trinibos1/micropad_web


Contributions

Contributions are welcome to improve the key library, including:

  • Adding new key mappings or shortcuts
  • Optimizing tap/hold behavior
  • Enhancing multi-layer support
  • Improving key response and stability

Submit issues or pull requests to collaborate.

🙌 Thanks

Huge thanks to Adafruit for their amazing hardware and the CircuitPython + library ecosystem.
Without their work, projects like this macropad wouldn’t be possible. 💜

License

MIT License – see LICENSE for details.

contact

Email: Trinibos1@proton.me

Parts

24
QtyValueFootprintReferences
10, , , , , , , , ,
10MX1A-11NNPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uU1, U2, U3, U4, U5, U6, U7, U8, U9, U10
1DM-OLED096-636DM-OLED096-636:MODULE_DM-OLED096-636U11
1RaspberryPi_PicoModule_RaspberryPi_Pico:RaspberryPi_Pico_CommonA1

The 22 most common of 24 parts.

Questions

How big is the V13macropad PCB?

It measures 57.3 × 84.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the V13macropad use?

24 parts, built around the MX1A-11NN. 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 V13macropad KiCad files?

From the trinibos1/Trkey_macro repository on GitHub, at the commit this page was made from: the board is PCB/v13macropad.kicad_pcb and its schematic PCB/v13macropad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the V13macropad 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 layers158.8 × 120.6 mmMini keyboard, the printed circuit board in 3D

    Mini keyboard

    hdlguy/kicad

    Miscellaneous KiCad work

    87 parts3MIT
  • 2 layers79.4 × 66.1 mmMacropad, the printed circuit board in 3D

    Macropad

    axooexe/Macropad-s-PCB

    This repository contains the schematics and PCB layout files for a custom 8switches and an encoder macropad.

    19 parts1
  • 2 layers60 × 116 mmGetou, the printed circuit board in 3D

    Getou

    gnahiak2/getou_

    ( This needs manual review cuz fallout project )

    25 parts1MIT
  • 2 layers176 × 125.5 mmMini Keyboard, the printed circuit board in 3D

    Mini Keyboard

    NnamOnye/Keypad-Design

    33 parts1
  • 2 layers84.5 × 90 mmBLE MacroPad, the printed circuit board in 3D

    BLE MacroPad

    YasinC4342/BLE-MacroPad

    General purpose bluetooth macro keypad

    56 parts1MIT
  • 4 layers98.4 × 41.3 mmPCB Related, the printed circuit board in 3D

    PCB Related

    Antoinbrn/TazPad

    hack pad that will help you save time coding

    16 parts
  • 2 layers100 × 134.5 mmBig Keys Keyboard, the printed circuit board in 3D

    Big Keys Keyboard

    brandonHaipas/Big_Keys_Keyboard

    A new version of the Big Keys PCB

    9 partsMIT