diff --git a/docs/flashing.md b/docs/flashing.md index 443fa3123e1..05ffae1517f 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -442,3 +442,44 @@ CLI Flashing sequence: 4. Wait for the keyboard to become available 1: This works only if QMK was compiled with `RP2040_BOOTLOADER_DOUBLE_TAP_RESET` defined. + +## SN32 DFU + +All SN32 MCUs, except for 2601 come preloaded with a factory bootloader that cannot be modified nor deleted. + +To ensure compatibility with the SN32-DFU bootloader, make sure this block is present in your `rules.mk` : + +```make +# Bootloader selection +BOOTLOADER = sn32-dfu +``` + +Compatible flashers: + +* [SonixFlasher](https://github.com/SonixQMK/sonix-flasher/releases) (recommended GUI) +* [SonixFlasherC](https://github.com/SonixQMK/SonixFlasherC/releases) (recommended command line) + ``` + sonixflasher --vidpid 0c45:7040 -f + ``` +1: 260 series of chips have part of the SN32-DFU bootloader in userspace and therefore must be guarded to avoid bricking. Install the [sonix-bootloader](https://github.com/SonixQMK/sonix-keyboard-bootloader) before flashing the firmware +``` +sonixflasher --vidpid 0c45:7010 -f + +``` +as a one-shot operation, then flash the firmware with an offset `0x200` +``` +sonixflasher --vidpid 0c45:7010 -o 0x200 -f + +``` + +If using `$ qmk flash` to flash a firmware, the offset is automatically applied if needed. + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `QK_BOOT` keycode + * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped + * Otherwise, you need to bridge `BOOT` to GND (via `BOOT` button or jumper), short `RESET` to GND (via `RESET` button, jumper or by unplugging and replugging USB), and then let go of the `BOOT` bridge +2. Wait for the OS to detect the device +3. Flash a .bin file +4. Reset the device into application mode (may be done automatically)