OpenHC32Boot is a bootloader for the HC32F460 series of microcontrollers, allowing firmware to be updated with ease.
OpenHC32Boot improves on the features found in common stock bootloaders. Features include:
Firmware updates are now possible by simply placing a firmware binary on a SD card. Thus, firmware updates are fairly effortless.
OpenHC32Boot has support for progress output on common 3D-Printer screens, giving you real-time feedback on the boot and update progress.
Currently supporting these screens:
- DWIN screens (as used by Voxelab Aquila X2).
By verfifying the firmware integrity and hash before starting the update, you will never accidentially re-flash the same firmware binary. This prevents unnecessary flash cycles.
OpenHC32Boot prevents overwriting itself during updates and safeguards critical flash areas, ensuring your device will not be bricked even with a failed update.
User applications are verified to have reasonable stack, reset and interrupt vectors, ensuring incompatible or broken applications are not booted.
OpenHC32Boot was developed from the ground up for minimal flash usage, leaving more space for the user application. In practice, OpenHC32Boot consistently uses less flash than common stock bootloaders shipped with most HC32 3D-Printers, even with all features enabled.
To install OpenHC32Boot, you'll need:
- HC32F460-based 3D printer or development board
- VSCode with PlatformIO installed
- CMSIS-DAP compatible SWD debug probe (e.g., Raspberry Pi Debug Probe)
Note
other debug probes may work as long as they are supported by pyOCD
- Backup your current bootloader so you can revert if needed.
- Clone or download the OpenHC32Boot repository.
- Open it in VSCode, ensure PlatformIO is installed and active.
- Configure the bootloader by editing
config.handconfig_adv.h. - Select the appropriate build environment in PlatformIO.
- Upload the bootloader using PlatformIO and your debug probe.
- Reboot your device into the new bootloader, ready for firmware updates!
Tip
If your board is not supported, you may need to add a new board configuration. Use existing configurations as a reference, while referring to Marlins board definition file for your board (if it happens to be a 3D-printer).
Caution
Always backup your current bootloader so you can revert if needed!
Any contributions to OpenHC32Boot are welcome! Whether you've found a bug, have an improvement idea, or want to add new features, feel free to open an issue or submit a pull request.
OpenHC32Boot comes with no guarantees of stability or suitability for specific purposes. Use it at your own risk, and evaluate its performance in your particular use case. Support is provided on a best-effort basis, and developers may not be able to address all issues.
OpenHC32Boot is licensed under GPL-3.0.