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.
Text editor powered by tinymce.