A Go command line tool that pushes a firmware build to an ESP32 over Bluetooth Low Energy.
The point of it was not the transfer. It was written to drop into PlatformIO’s build and upload pipeline, so that flashing a board became a step in the build rather than a thing you stop and go do. Change the code, hit upload, the firmware goes over the air to the board on the bench. I never leave CLion.
What it replaces is worse than it sounds. A module under development has its USB port somewhere inconvenient by definition, because the panel is laid out for the front and the microcontroller is not. Then there is the power. The rack is already feeding the module, so plugging in USB means having the rack supply and USB 5V both in play at once, which is a thing you have to stop and think about every single time.
None of that is difficult. That is precisely the problem. Every step is small enough to put up with, and frequent enough that putting up with it is the expensive choice.
The device side is gb88’s BLEOTA, an Arduino library that handles over-the-air updates on the ESP32 itself. I did not write that; I have a fork of it, and this is the other end of the conversation.