The news that their *may* be a serial-only USB bootloader by Christmas is brilliant. Thank you.
May I add a further feature request, which may be useful in a release?
I've made a robot controller (L293D, LEDs, sockets with lots of zeners, etc.) for an untethered robot.
One thing which is valuable is being able to reconnect to the robot, over USB, without resetting it. I want to be able to retrieve 'telemetry data' over USB. The 'telemetry data' is put into RAM during a test by the users program.
Like many others, I've written a dumb 'oscilloscope' (in Processing) so that folks (especially the kids on my 'build a robot in a day' workshop) have a bit of help testing and debugging an untethered robot.
We have thought about adding wireless, but my initial goal is simplicity of hardware, and ingenuity of mind! So I'd like them to stash the data into a buffer (array) and extract the data when they have caught the thing, and plugged it back into the PC.
I'd like the bootloader to be able to support being reconnected to the PC host, and NOT reset the users application when USB is reconnected. Instead, it should allow the user program to continue to run.
It need not be your problem to devise a neat way to cope. I am happy to write something on the host which connects and does a handshake with the bootloader, though I think the mechanism should work the opposite way. I think, by default, connecting over USB should not do *anything* special. Reset should either be by pressing the reset button, or by out-of-band signaling (e.g. DTR) over USB serial.
I think having SerialUSB.available() return <= 0 when the USB lead is disconnected might be enough for the users program to work okay.