DFU Buddy v0.3.0 released
2026-05-04
DFU Buddy was intended to be an end-user friendly tool for firmware updates over USB. Especially, devices based on STM32 microcontrollers can make use of this method because most of them have an on-chip bootloader in ROM that supports the DFU protocol.
When I started, I had access to a good amount of development boards and real-world devices built around these MCUs, so testing was no a thing and I was possible to release a reasonably good working version quite fast.
But there were issues. Some older STM32 families rejected to work with it completely and it took me much too long until I realised that I didn't read the specs carefully enough. I was finally able to fix it with version v0.2.0.
But the story doesn't end here. Despite from the mentioned STM32 microcontrollers, there are other devices using the DFU protocol. That makes sense, because it's an official protocol specified by the USB Implementors Forum. Unfortunately, I had no access to any of these devices for testing. That itself would not be a problem, if communicating with the STM32 already uses a custom extended version of the original protocol. So in practice, I had already implemented the more complicated DfuSe version from ST, but not the much simpler "plain" one.
What I finally did is setting up 2 firmwares emulating a dummy DFU device on a Raspberry Pi Pico 2 board. One of them is based on TinyUSB using C, the other one on embassy-usb using Rust.
The results were quite promising: DFU Buddy was able to communicate with both implementaions correctly. There was also another user who was kind enough to test it independently.
So I decided to release it as v0.3.0. Refer to the GitHub releases page for the downloads.