1) Auto-reset on terminal open:
One thought for reset control is to directly use DTR/RTS to control the reset, so that opening a terminal program will engage the autoreset. I think this is clearly the wrong thing.
I agree with you for general terminal program.
The issue was/is when reoppening the IDE's serial monitor on the Arduino, it auto-resets.
That is a very nice behaviour for new users, who can try their programs out very easily without losing any of their print output.
If that is implemented, I would like it to be an option that I can switch off.
Surely you want to decouple opening a terminal window from program flow unless you program this in explicitly (via getDTR(), getRTS()).
A completly agree. That's what I want, and I think is the most general purpose. One can press the rest button if one needs a Reset. I don't want opening a connection to the Maple to reset it. We had a horrible job to defeat that on older Arduino's when my chum Mark wrote a ICSP using the Arduino.
So, currently, the auto-reset works via pulling down DTR and then sending along some magic numbers (0x1EAF).
That sounds okay. I think I could (at a push) defeat that on a Mac, if I really needed to (using DTrace). BUt I assume it's an option with some of the terminal emulators.
Does puling down DTR stop the user program, or is it still running?
Is the reset only done when the magic number comes along too?
If the user program is a different kind of USB device, I assume none of this happens?
2) SerialUSB voodoo:
Ugh, such voodoo. I dont want to get anyones hopes of of full fixes in 0.0.7, its a very hard problem (but have cleaned up a lot of related bugs in 0.0.7). However, we had the pleasure of talking it over a lot recently - and with a lot of users and developers of other products at maker faire - and have finally settled on a long term fix. Its a hardware fix, and a feature add, and were psyched.
Is it more than using DTR for out-of-band signaling? What other issues am I missing?
So will this be practical for us to implement on existing boards?
When will the change get rolled into Maple boards?