This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board.
Here are the two Tap Dance keys I've set up for this board:
Legend Name | Single Tap | Double Tap | Hold
--- | --- | --- | ---
Sft//Cp | shift | caps lock | null
Q//Esc | KC_Q | escape | null
make gherkin:wanleg:avrdude
RESET
key for future flashes instead of shorting the RST pin.The built-in :avrdude
QMK target in Linux doesn't work with the default Caterina bootloader on the ProMicro, so we have to use avrdude separately. The instructions below are adapted from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
ls /dev/tty*
ls /dev/tty*
There should be one more device than was seen previously. Make a note of it. For me, it's /dev/ttyACM0
..hex
file in it. Touch the RST pin to GND TWICE in quick succession, then run the following within 7 seconds:sudo avrdude -p m32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex
sudo avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:gherkin_wanleg.hex
Control
+ C
to exit the avrdude
command, connect RST to GND twice quickly, and try the avrdude
command again.ls /dev/tty*
RESET
key on your keyboard and re-run the ls /dev/tty*
command to find your keyboard's serial port.RESET
.If you have an Arduino (or clone), you can replace the bootloader for a few extra features (e.g. no more 7 second "flash window", simplified Linux flashing, blinking LED when the ProMicro is in bootloader mode, ability to exit bootloader mode without unplugging your keyboard, among others). The instructions below have been adapted from https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/)
| Arduino | ProMicro | | --- | --- | | 10 | RST | | 11 (MOSI) | 16 | | 12 (MISO) | 14 | | 13 (SCK) | 15 | | GND | GND | | 5V | VCC |
config.h
add the following. This is already set up in qmk_firmware/layouts/community/ortho_3x10/wanleg
. You only need to do this on other keymaps.#define QMK_ESC_OUTPUT B4
#define QMK_ESC_INPUT F7
#define QMK_LED B0
The QMK_ESC_
lines define where the bootloader escape key is. Refer to the MATRIX_ROW_PINS
and MATRIX_COL_PINS
lines in your keyboard's config.h
to choose your preferred key.
You hit the bootloader escape key to exit bootloader mode after you've hit the RESET key to enter bootloader mode (e.g. if you change your mind and don't want to flash just then).
On a Gherkin, B4/F7 corresponds to the top-left corner key.
B0
is an indicator light on one of the ProMicro's onboard LEDs. With QMK DFU, it will flash to indicate the ProMicro is in bootloader mode.
You can add #define QMK_SPEAKER C6
if you have a speaker hooked up to pin C6. The Gherkin PCB already uses pin C6 in its switch layout, so you cannot use a speaker on a standard Gherkin.
4. Also, you should add BOOTLOADER = qmk-dfu
to your rules.mk
file, so it is flagged properly. Again, this is already set up in qmk_firmware/layouts/community/ortho_3x10/wanleg
.
5. Once you've made the required edits, it's time to compile the firmware. If you use the :production
target when compiling, it will produce the usual .hex
file as well as _bootloader.hex
and _production.hex
files. The _production.hex
will be what we want. This contains the bootloader and the firmware, so we only have to flash once (rather than flash the bootloader, and THEN flash the firmware).
For example
make <keyboard>:<keymap>:production
_production.hex
file, and burn it with the following commandavrdude -b 19200 -c avrisp -p m32u4 -v -e -U lock:w:0x3F:m -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lfuse:w:0x5E:m -U YOUR_production.hex -P comPORT
comPORT
to whatever port is used by the Arduino (e.g. com11
in Windows or /dev/ttyACM0
in Linux). Use Device Manager in Windows to find the port being used. Use ls /dev/tty*
in Linux. Change YOUR_production.hex
to whatever you've created in the previous step.make gherkin:<keymap>:dfu