aboutsummaryrefslogtreecommitdiff
path: root/docs/flashing.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/flashing.md')
-rw-r--r--docs/flashing.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/docs/flashing.md b/docs/flashing.md
index 83c97444e..da3c64c4a 100644
--- a/docs/flashing.md
+++ b/docs/flashing.md
@@ -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#bootmagic-lite), 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.