aboutsummaryrefslogtreecommitdiff
path: root/docs/flashing.md
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2021-08-29 08:20:25 +1000
committerNick Brassel <nick@tzarc.org>2021-08-29 08:20:25 +1000
commitf061ca497464fe85284906fb163a33eaee7a91ef (patch)
tree33ef1bfb529aed382e8526c607c4e18717f92571 /docs/flashing.md
parentff65185dec6f97be1eb49f17cea526a0d0bbf3d6 (diff)
parent4bad375d7c09d949a9dcdd4feba147c9c7a67ec6 (diff)
downloadqmk_firmware-f061ca497464fe85284906fb163a33eaee7a91ef.tar.gz
qmk_firmware-f061ca497464fe85284906fb163a33eaee7a91ef.zip
Breaking changes develop merge to master, 2021Q3 edition. (#14196)
Diffstat (limited to 'docs/flashing.md')
-rw-r--r--docs/flashing.md50
1 files changed, 48 insertions, 2 deletions
diff --git a/docs/flashing.md b/docs/flashing.md
index 83c97444e..7b7fe956f 100644
--- a/docs/flashing.md
+++ b/docs/flashing.md
@@ -48,7 +48,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr
48//#define QMK_LED E6 48//#define QMK_LED E6
49//#define QMK_SPEAKER C6 49//#define QMK_SPEAKER C6
50``` 50```
51Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. 51Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
52 52
53The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. 53The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
54 54
@@ -171,6 +171,52 @@ Flashing sequence:
1713. Flash a .hex file 1713. Flash a .hex file
1724. Reset the device into application mode (may be done automatically) 1724. Reset the device into application mode (may be done automatically)
173 173
174### QMK HID
175
176QMK maintains [a fork of the LUFA HID bootloader](https://github.com/qmk/lufa/tree/master/Bootloaders/HID), which uses a USB HID Endpoint for flashing in the way that the PJRC's Teensy Loader flasher and HalfKay bootloader work. Additionally, it performs a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening.
177
178To ensure compatibility with the QMK HID bootloader, make sure this block is present in your `rules.mk`:
179
180```make
181# Bootloader selection
182BOOTLOADER = qmk-hid
183```
184
185To enable the additional features, add the following defines to your `config.h`:
186
187```c
188#define QMK_ESC_OUTPUT F1 // COL pin if COL2ROW
189#define QMK_ESC_INPUT D5 // ROW pin if COL2ROW
190// Optional:
191//#define QMK_LED E6
192//#define QMK_SPEAKER C6
193```
194
195Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
196
197The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
198
199To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4:default:bootloader`. To generate a production-ready .hex file (combining QMK and the bootloader), use the `production` target, eg. `make planck/rev4:default:production`.
200
201Compatible flashers:
202
203* TBD
204 * Currently, you need to either use the [Python script](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp_python), or compile [`hid_bootloader_cli`](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp), from the LUFA repo. Homebrew may (will) have support for this directly (via `brew install qmk/qmk/hid_bootloader_cli`).
205
206Flashing sequence:
207
2081. Enter the bootloader using any of the following methods:
209 * Press the `RESET` keycode
210 * Press the `RESET` button on the PCB if available
211 * short RST to GND quickly
2122. Wait for the OS to detect the device
2133. Flash a .hex file
2144. Reset the device into application mode (may be done automatically)
215
216### `make` Targets
217
218* `:qmk-hid`: Checks every 5 seconds until a DFU device is available, and then flashes the firmware.
219
174## STM32/APM32 DFU 220## STM32/APM32 DFU
175 221
176All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted. 222All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted.
@@ -252,7 +298,7 @@ Flashing sequence:
252 298
253## tinyuf2 299## tinyuf2
254 300
255Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on the F411 blackpill. 301Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on the F401/F411 blackpill.
256 302
257The `rules.mk` setting for this bootloader is `tinyuf2`, and can be specified at the keymap or user level. 303The `rules.mk` setting for this bootloader is `tinyuf2`, and can be specified at the keymap or user level.
258 304