From 292a87ad0442293aadfe6910c9e5f19a53e54a81 Mon Sep 17 00:00:00 2001 From: Michael Pio Date: Sun, 4 Nov 2018 01:08:05 +0800 Subject: [PATCH] Instructions on how to flash via STM32 bootloader (#4316) * Add instructions on flashing ARM keyboards with default STM32 bootloader * fixed typo; added note suggestion to step 4 --- docs/flashing.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/docs/flashing.md b/docs/flashing.md index 1edbe2225..bc418c415 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -71,8 +71,8 @@ Flashing sequence: 1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) 2. Wait for the OS to detect the device -4. Flash a .hex file -5. Wait for the device to reset automatically +3. Flash a .hex file +4. Wait for the device to reset automatically or @@ -106,5 +106,28 @@ Flashing sequence: 1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) 2. Wait for the OS to detect the device -4. Flash a .hex file -5. Reset the device into application mode (may be done automatically) +3. Flash a .hex file +4. Reset the device into application mode (may be done automatically) + +## STM32 + +All STM32 chips come preloaded with a factory bootloader that cannot be modified nor deleted. Some STM32 chips have bootloaders that do not come with USB programming (e.g. STM32F103) but the process is still the same. + +At the moment, no `BOOTLOADER` variable is needed on `rules.mk` for STM32. + +Compatible flashers: + +* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (recommended command line) + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `RESET` keycode (may not work on STM32F042 devices) + * If a reset circuit is present, tap the RESET button + * Otherwise, you need to bridge BOOT0 to VCC (via BOOT0 button or bridge), short RESET to GND (via RESET button or bridge), and then let go of the BOOT0 bridge +2. Wait for the OS to detect the device +3. Flash a .bin file + * You will receive a warning about the DFU signature; Just ignore it +4. Reset the device into application mode (may be done automatically) + * If you are building from command line (e.g. `make planck/rev6:default:dfu-util`), make sure that `:leave` is passed to the `DFU_ARGS` variable inside your `rules.mk` (e.g. `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) so that your device resets after flashing