Adafruit's MacroPad sports an RP2040 microcontroller, and a community member contributed support for it to QMK! This makes it easy to compile and install a QMK firmware on your MacroPad. If you just want to try out QMK without compiling anything, take a short-cut and use this pre-compiled uf2 file:

Plug in your MacroPad while pressing down on the encoder knob, so that it enters boot mode and your computer recognizes the RPI-RP2 boot drive.

Open up the terminal/command window, and change to the qmk_firmware directory.

In this case the keyboard is adafruit/macropad and the keymap is default. Knowing this, you can issue the command to build and flash the firmware:

cd ~/qmk_firmware
qmk flash -kb adafruit/macropad -km default

This will produce a lot of output, similar to the following:

~/qmk_firmware$ qmk flash -kb adafruit/macropad -km default -c
QMK Firmware 0.17.5
Making adafruit/macropad with keymap default and target clean

Ψ Compiling keymap with gmake --jobs=1 adafruit/macropad:default:flash


QMK Firmware 0.17.5
Making adafruit/macropad with keymap default and target flash

arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Generating: .build/obj_adafruit_macropad/src/info_config.h                                          [OK]
…[Lots of lines omitted]
Copying adafruit_macropad_default.uf2 to qmk_firmware folder                                        [OK]

Size after:
   text	   data	    bss	    dec	    hex	filename
      0	  47664	      0	  47664	   ba30	adafruit_macropad_default.uf2

Flashing /media/jepler/RPI-RP2 (RPI-RP2)
Wrote 95744 bytes to /media/jepler/RPI-RP2/NEW.UF2

Your MacroPad will automatically restart with the QMK firmware. Simply press the keys on the MacroPad to type the digits 0-9, enter, and backspace. Rotate the encoder knob to increase/decrease system volume, and click the encoder knob in to mute/unmute.

To customize the layout, you can edit the file adafruit/macropad/keymaps/default/keymap.c. Look for this part of the file:

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT(
                    KC_MUTE,
      KC_ENT, KC_0, KC_BSPC,
      KC_7,   KC_8, KC_9,
      KC_4,   KC_5, KC_6,
      KC_1,   KC_2, KC_3
  )
};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
  [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
};
#endif

For instance, to change the layout to be more like a telephone dial pad than a computer numeric keypad, just re-arrange the rows of the keymap like so:

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT(
                    KC_MUTE,
      KC_1,   KC_2, KC_3
      KC_4,   KC_5, KC_6,
      KC_7,   KC_8, KC_9,
      KC_ENT, KC_0, KC_BSPC,
  )
};

There's a lot more to know about QMK keycodes, so start with with their Keymap FAQ. You can go really deep here—for instance, layers are a powerful way to use the same physical key to perform different functions depending on the currently selected layer.

This guide was first published on Jul 26, 2022. It was last updated on Jul 26, 2022.

This page (Adafruit MacroPad with QMK) was last updated on Jul 18, 2022.

Text editor powered by tinymce.