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.
Page last edited March 08, 2024
Text editor powered by tinymce.