Skip to content
MCU Atlas

Macropad Hotkeys II: CircuitPython macros for Adafruit MacroPad

An extensible hotkey firmware for the Adafruit MacroPad RP2040 with Blender, MIDI, DaVinci and more profiles.

Difficulty:BeginnerCost:Source available

Photos

Macropad Hotkeys II: CircuitPython macros for Adafruit MacroPad photo 1

Photos: hackaday.io

Key Facts

  • Board: Adafruit MacroPad RP2040
  • Language: CircuitPython
  • Features: HID, mouse, MIDI, sleep
  • Profiles: Blender, DaVinci, drums and more

About This Project

This rebuild of Adafruit's MacroPad Hotkeys example adds sleep to avoid burn-in, HID consumer controls, mouse and MIDI support, and several ready-made macro packs (Blender, DaVinci Resolve, a MIDI drum kit). The Adafruit MacroPad combines an RP2040, a rotary encoder, a small OLED and 12 RGB-backlit keys in one kit. A friendly intro to CircuitPython HID.

Source & Attribution

Source: GitHub
License: MIT
Last verified: 10/16/2026
Macropad Hotkeys II: CircuitPython macros for Adafruit MacroPad
How to Build It
Macropad Hotkeys II is an expanded rewrite of Adafruit's hotkeys code for the MacroPad RP2040. Turn and press the rotary encoder to switch between pages of key macros for apps like Blender or DaVinci Resolve. Macros can type text, press key combos, send media or mouse commands, or output MIDI.

Parts Needed

  • Adafruit MacroPad RP2040 (with keyswitches and keycaps)
  • USB data cable

Steps

  1. 1

    Install CircuitPython

    Download the CircuitPython 10.x UF2 for the MacroPad from circuitpython.org. Hold the encoder button while plugging in to open the bootloader drive, then copy the UF2 onto it.

  2. 2

    Copy the project

    From the repo's latest release, extract the code and the bundled precompiled Adafruit libraries onto the CIRCUITPY drive.

  3. 3

    Add some macros

    Copy one or more example files from macros/examples into the macros folder, or paste one from the project wiki.

  4. 4

    Write your own pages

    Each macro file sets a name, its position in the page order, the key labels and LED colours, the key sequences, and optional encoder actions. The example.py file shows every option.

  5. 5

    Edit later

    CIRCUITPY must be mounted read/write to change files. Follow the README's update steps to reboot into that mode, edit, then reboot again.

  6. 6

    Use it

    Press and turn the encoder to pick a page. If the pad only has power and no USB HID connection, the LEDs stay off and a message appears on screen.

Parts List (BOM)
Complete parts list from the creator
complete
PartQtyRoleEst. PriceBuy
1kit$45–$55View
Estimated Total$45–$55 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

OpenMower: RTK GPS smart upgrade for cheap robot lawn mowers
Illustration
RASPBERRY PIPI-4Draft
Open-source upgrade that turns off-the-shelf robotic mowers into RTK GPS-accurate, map-based lawn robots.
Expert·$250+·Code
4 parts listed
PicoDVI: bit-banged DVI/HDMI video from a Raspberry Pi Pico
Illustration
RASPBERRY PI PICORP2040Draft
Generates DVI (HDMI) video signals from a bare RP2040 Pico using the PIO state machines – no video chip needed.
Advanced·Cost varies·Code
2 parts listed
Raspberry Pi Debug Probe: CMSIS-DAP for Pico and ARM
Illustration
RASPBERRY PI PICORP2040Draft
Official RP2040 firmware that turns a Pico (or the Debug Probe product) into a CMSIS-DAP SWD debugger.
Beginner·Under $15·Code
2 parts listed