Skip to content

Releases: Arksine/STM32_HID_Bootloader

Updated SKR Pro Build

03 Jun 09:46
Choose a tag to compare
Updated SKR Pro Build Pre-release

This build contains no code changes, however the binary is built using the gcc 6.3.1 toolchain. This seems to resolve issues some have with the bootloader not enumerating USB.

Please keep in mind that after programming the bootloader you need to manually enter the it by setting the BOOT1 pin high with a jumper. After the application has flashed remove power, remove then jumper, then power on the device. The application will then load.

Beta Release

12 May 19:15
Choose a tag to compare
Beta Release Pre-release

New: Added binaries for SKR Mini E3 v2.0

This is a beta release of the updated bootloader for stm32 devices. Below is an overview of the differences between this release and the primary bootloader from Serasidis:


  • Add support for the SKR Mini E3
  • Fix issue where "high density" devices may not write the last page
  • Fix issue for maple mini clones where led and boot pins are not correctly initialized
  • Fix issue where USB is not reset when the bootloader is entered via boot1


  • Add support for SKR Pro 1.1
  • Add support for "Extruder Board" by @zbrozek


  • make specifying the serial port optional
  • update to work correctly with high density STM32F1 devices (in conjunction with bootloader update)
  • update the Makefile to alert the user that libusb-1.0 is a required dependency without generating an error

Additional Notes:

  • This release enables the status LED on the BTT SKR Mini E3.
  • The hid_btt_skr_mini_e3.bin binary enables a pull-up on pin PA2 that can be used to manually enter the bootloader by pulling it to ground. This pin is labeled TX0 on TFT header in the SKR Mini E3's "PIN" document (see the image below).
  • The hid_btt_skr_mini_e3_no_btn.bin removes the above functionality. It is not capable of manually entering the bootloader, however with this bootloader it is safe to connect PA2 to a peripheral that pulls it to ground.
  • Since the SKR Mini E3 is not capable of entering the built in UART programmer install_bootloader.cfg has been provided to flash the bootloader using a Raspberry Pi and OpenOCD. See here and here for good resources on installing OpenOCD and wiring the Pi to the board. When that is complete, put the bootloader binary and config file in your ~/openocd directory and navigate to it (cd ~/openocd). You can flash by holding the Mini E3's reset button and entering the following command:
    sudo ~/openocd/install/bin/openocd -f ~/openocd/install_bootloader.cfg
    Its possible to use this configuration with any of the STM32F1 binaries below, you simply need to change the
    name of the binary in the .cfg file (program my_binary.bin verify 0x08000000).
  • The binaries were built using the gcc-arm-none-eabi-8-2019-q3-update toolchain.

DISCLAIMER: As always, flash/use the provided binaries at your own risk, I am not responsible/liable for your usage of them, no warranties/guarantees, etc.


Update for SKR Mini E3, Add SKR Pro Bootloader

04 May 02:24
Choose a tag to compare

This release updates the bootloader and hid-flash tool so that it can properly deal with the 2K flash pages on the STM32F1 variant the SKR Mini E3 uses. See the previous release for details between the button and no button versions. NOTE: If you flashed the previous release, please make sure you navigate to ~/klipper/lib/hidflash and issue a make clean command. If you do not then the flash may fail.

Also added is a bootloader for the BTT SKR Pro.

As with before, these bootloaders must be flashed using a programmer. With the SKR Pro it is possible to flash via UART using the system bootloader.

The usual disclaimers apply to these binaries, use at your own risk and I am in no way responsible for bricked devices, magic smoke, fires, explosions, etc.

Alpha release of HID Bootloader with SKR Mini E3 Support

25 Apr 02:04
Choose a tag to compare

This is an initial release supporting the BigTreeTech SKR Mini E3, intended for use with Klipper. The binary below must be flashed with a programmer. An ST-LINK v2 using the STM32CubeProgrammer software is recommended.

The "btn_PA2" version allows a user to manually enter the bootloader by Pulling pin PA2 to ground. See the image below for an illustration showing which pins to short with a jumper, PA2 is (incorrectly) referred to as TX0. If you wish to connect a peripheral to the TFT header make sure that your peripheral does not pull PA2 (the middle pin) to Ground. Otherwise Klipper will never launch.


The "no_btn" version disables the button above. The downside is that there is no manual way to enter the bootloader to recover a botched flash. The only way to recover with this version is to use a programmer.