Built a little firmware automation tool to save my own sanity. What features would you want?
I got incredibly tired of manually compiling and flashing my ESP32 every single time I made a minor code change, so I spent some time building a tool called FlashBot to automate the entire loop.
Right now, the workflow is completely hands-off. Here is what it does:
Auto-detection: Uses Linux udev events to detect the board the second it's plugged in.
Smart matching: Looks up the correct sketch from a config file (or prompts me to choose if I have multiple sketches mapped to that specific board).
Compile & Flash: Pulls everything together via arduino-cli and flashes it automatically.
History: Logs every single flash into a local SQLite DB so I don't lose track of versions.
Current Status: The core detection and flashing logic are fully stable. Right now, I'm working on polishing up a serial test suite and the logging system.
What I'm planning to build next:
Serial validation: Automatically open the port, send a test command, and verify the response post-flash to make sure the firmware is actually alive.
Differential builds: Only recompile if the sketch or dependencies actually changed.
Broadening hardware support: Moving beyond standard Arduino/ESP32 to natively handle STM32.
Mass flashing: Parallel flashing for when you need to push the same firmware to a handful of boards at once.
The goal isn't to replace your IDE or build system—it’s just to completely cut out the tedious "plug, compile, click flash, open serial, check" routine.
At its core it's a hobbiest tool if used in that manner
If you do a lot of hardware prototyping, does this hit a pain point for you? What kind of features would make a tool like this actually useful in your day-to-day workflow?