I'm not sure how far I'm going to take this thing. It's already functional enough for my purposes. And I'm in the middle of squeezing the fujinet-chat code down, so this is currently low priority. It really only exists so I can easily test fujinet-chat against different FujiNet firmware versions. However, it could be made more useful, when/if I find the time and motivation to extend it. Stuff to do before a 1.0 release: --------------------------------- - Test with newer esptool versions. - Test with older platformio versions. - Find out if it works on MacOS as-is (if not, make it work). I think the device nodes aren't /dev/ttyUSB* there... though the -p option should work, for users who know what they're doing. - Config file in ~/.fujinet-updater.conf, to set at least the default -t option. Don't actually put this in ~/.fujinet-updater/, since the user might want to rm -rf that to clean out old firmwares. - See if we can autodetect which /dev/ttyUSB* is the FujiNet. Maybe "esptool.py chip_id" or such. If we detect multiple FujiNets (or at least multiple ESP32 devices), show a list & let the user choose (unless -f). It looks like we can actually read 256 bytes or so of the FujiNet's flash (at offset 0x10000) and check for the string FujiNet. We can even check the bytes we read against what we're about to flash, and tell the user the operation is unnecessary! - -c option to force the use of curl instead of wget, if both are installed. - -d option to delete the ~/.fujinet-updater/ dir afterwards? or maybe make this the default, and use -k to keep it? Or maybe only delete the downloaded/extracted files, because... - ...we might log stdout/stderr to ~/.fujinet-updater/log.txt or simiar. - The github releases json file has sha hashes, it would be nice to check those after downloading a file... or *not* downloading the file if we find an existing copy. - -v option for verify? easy to implement (esptool.py has an option for it already). Stuff to do after a 1.0 release: -------------------------------- GUI frontend. It can be barebones, but it at least should match the functionality of the official one. Write in C, use GTK (2? 3?). Alternately, a curses UI. Doubt I'll do both.