Skip to the content
PCBKitNew board
2 layers76 × 93 mmMacroPad, the printed circuit board in 3D

KeyShare

Size
76 × 93 mm
Copper layers
2
Thickness
1.6 mm
Parts
37
Nets
55
Pads
197
Tracks, vias
598, 48
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
2 Apr 2026
Updated
2 Apr 2026

Overview

MacroPad is an open-source printed circuit board by MainRam1, from the MainRam1/KeyShare repository on GitHub, published under the MIT licence. It is a 2-layer board of 76 × 93 mm with 37 parts on 55 nets, routed with 598 tracks and 48 vias.

It is built around the SC0914(13), W25Q16JVSSIQ and AP2112K-3.3TRG1, with the USBLC6-2SC6, RC0402FR-0710KL and CL21A106KAYNNNE among its other parts. Its parts include 13 capacitors, 11 switches, 6 resistors, 4 ICs and 1 connector. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

10

README

README.md

KeyShare

An open-source 9-key programmable macropad built from the ground up — custom PCB designed in KiCad, CircuitPython firmware running on the RP2040, and a native macOS companion app written in Swift. Assign keyboard shortcuts, launch apps, type text, switch desktops, control media, open URLs, trigger app menu actions, or chain actions into multi-step macros — all from a compact 3x3 mechanical key grid that auto-switches profiles based on your active application or website.

Features

  • 8 action types -- keyboard shortcuts, app launch, text typing, desktop switching, media control, open url, app menu actions, multi-step macros
  • Unlimited profiles -- organize keys by task or project
  • Auto-switch by app -- profiles change automatically based on the active application
  • Auto-switch by website -- profiles change based on the active tab in Safari or Chrome
  • App menu actions -- browse and trigger any menu bar item in any running app, with keyboard shortcut fallback
  • Visual key editor -- drag-and-drop 3x3 grid in the preferences window
  • OSD overlay -- on-screen display when the active profile changes
  • Menu bar utility -- lives in the menu bar with no Dock icon
  • Hot-plug support -- detects device connect/disconnect and recovers after sleep
  • Config file watching -- edits made in a text editor are picked up immediately
  • Profile import/export -- share profiles as JSON files
  • Custom PCB -- open-source KiCad design with manufacturing-ready Gerber files

How It Works

Press a Cherry MX key on the macropad → the RP2040 firmware sends a JSON message over USB serial → the macOS menu bar app receives it and executes the configured action. The app monitors your active application and browser tab, automatically switching profiles so your keys always match what you're working in. A bidirectional serial protocol handles device detection, hot-plug recovery, and sleep/wake reconnection.

Requirements

ComponentMinimum
macOS13.0 (Ventura)
MicrocontrollerRaspberry Pi Pico (RP2040)
Switches9 x Cherry MX compatible
Firmware runtimeCircuitPython 9.x

Hardware

The Hardware/ directory contains the complete KiCad project for a custom 2-layer PCB:

  • Schematic & PCB layout -- KiCad 9.0 project files
  • Gerber files -- manufacturing-ready, located in Hardware/Gerbers/
  • BOM -- Hardware/MacroPad.csv with all components listed

Key components: RP2040 microcontroller, W25Q16 16Mbit SPI flash, USB-C connector with ESD protection, AP2112K-3.3 voltage regulator, and 9 Cherry MX compatible switch footprints.

Quick Start

  1. Flash firmware -- install CircuitPython 9.x on the Pico, then copy firmware/code.py and firmware/boot.py to the CIRCUITPY drive.
  2. Download the app -- grab the latest .zip from GitHub Releases, unzip, and move KeyShare.app to /Applications.
  3. Launch -- open the app. It appears in the menu bar.
  4. Grant Accessibility permission -- the first-launch onboarding will prompt you. Go to System Settings > Privacy & Security > Accessibility and enable KeyShare.
  5. Plug in the macropad -- the app detects it automatically.

Building from Source

bash
# Install xcodegen (once)
brew install xcodegen

# Generate the Xcode project
cd MacroApp
xcodegen generate

# Build
xcodebuild -project KeyShare.xcodeproj -scheme KeyShare -configuration Release build

The built .app bundle is ad-hoc signed -- no Apple Developer ID required.

Firmware Setup

  1. Hold the BOOTSEL button on the Pico and plug it in via USB.
  2. Copy the CircuitPython 9.x .uf2 file to the RPI-RP2 drive.
  3. After the Pico reboots, copy the firmware files:
bash
cp firmware/code.py /Volumes/CIRCUITPY/
cp firmware/boot.py /Volumes/CIRCUITPY/

The Pico will reboot and begin communicating over USB serial.

Configuration

The app stores its config at:

text
~/Library/Application Support/KeyShare/config.json

You can edit profiles and key bindings through the preferences window or by editing the JSON file directly. Changes are picked up automatically.

License

MIT

Parts

37
QtyValueFootprintReferences
9SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
7100nFCapacitor_SMD:C_0402_1005MetricC3, C5, C7, C10, C11, C12, C13
210KResistor_SMD:R_0402_1005MetricR1, R6
210uFCapacitor_SMD:C_0805_2012MetricC4, C6
215pFCapacitor_SMD:C_0402_1005MetricC1, C2
21uFCapacitor_SMD:C_0402_1005MetricC8, C9
227RResistor_SMD:R_0402_1005MetricR4, R5
25.1kResistor_SMD:R_0402_1005MetricR2, R3
2SW_PushButton_Switch_SMD:SW_SPST_PTS810SW10, SW11
112MhzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1500mAFuse:Fuse_1206_3216MetricF1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U3
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U4
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4085J1
1W25Q16JVSSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU2

Questions

How big is the MacroPad PCB?

It measures 76 × 93 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MacroPad use?

37 parts, built around the SC0914(13), W25Q16JVSSIQ, AP2112K-3.3TRG1 and USBLC6-2SC6. 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 MacroPad KiCad files?

From the MainRam1/KeyShare repository on GitHub, at the commit this page was made from: the board is Hardware/MacroPad.kicad_pcb and its schematic Hardware/MacroPad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MacroPad 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 layers65 × 30 mmGolden rp2040 usb hid, the printed circuit board in 3D

    Golden rp2040 usb hid

    mrcha033/hw-codesign

    Agentic hardware co-design: brief to KiCad, firmware, 3D review, and explicit fabrication blockers.

    35 parts2Apache-2.0
  • 4 layers100 × 100 mmFarmMesh Node, the printed circuit board in 3D

    FarmMesh Node

    chinawrj/FarmMesh-Node

    Developing an integrated hardware and software solution for farm-wide Mesh networking: RP2350B/ESP32-C5 nodes, firmware, network protocols, and Wi-Fi/BLE sensor access.

    164 parts
  • 4 layers52 × 51 mmDARPA MCTR, the printed circuit board in 3D

    DARPA MCTR

    Alsa2/ThumbMuncher

    Darpa Lift Challenge Code Repo

    100 parts
  • 4 layers50 × 50 mm50x50 2 Layer, the printed circuit board in 3D

    50x50 2 Layer

    UC-Aerospace/Electrical-Tut-26

    2026 Avionics tutorial example boards for UC Aerospace

    86 parts
  • 4 layers70 × 109.2 mmManafish, the printed circuit board in 3D

    Manafish

    Tropaion/Manafish_Mainboard

    The Manafish Mainboard is the main electronics board of the Manafish ROV. It replaces the Raspberry Pi 3B, the USB-connected Raspberry Pi Pico and the wiring between them with one board:

    127 partsAGPL-3.0
  • 2 layers44.5 × 48.3 mmHandbell, the printed circuit board in 3D

    Handbell

    dcuccia/digital-handbell

    A software and hardware project to create a digital handbell using microcontrollers and speakers and gesture recognition

    104 partsMIT
  • 4 layers82 × 55 mmSpark, the printed circuit board in 3D

    Spark

    ratmuds/spark

    The PCB files for this project. The gerber and other PCBA files are in the production folder.

    202 parts1