QuoteI thought the arduino IDE (or is it AVRDUDE?) AVRDUDE is the culprit.Quotedid perform an explicit DTR pulse The Windows version pulses DTR and CTS for the "arduino" programmer type; the type used by Arduino 0022. I'll investigate the *nix version tonight.
I thought the arduino IDE (or is it AVRDUDE?)
did perform an explicit DTR pulse
bool CurrentDTRState = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR);
the biggest problem is backwards compatibility - the IDE still needs to be able to communicate with EVERY existing arduino board out there, containing various bootloaders, firmware, and hardware configurations.
the whole auto-reset is an admirable intention that has, over time, and with various 'tweaks' become an absolute nightmare. the problem has been compounded by attempts to stick to a single codebase across several OS platforms, each OS with it's own level of access to and support for the usb and/or serial hardware.personally, i'd do away with the auto-reset completely. instead i'd use a far more robust manual reset system:1. IDE pops up a window saying "PRESS and HOLD reset button..." with a counter going from 5 seconds down to 02. IDE then closes that window and pops up another window saying "RELEASE reset button NOW".during the above two steps the IDE would send repeatedly a query command to the bootloader, monitoring for a bootloader response. when the correct response came back the IDE would know that a communications channel with the bootloader had been established. if no response is seen within 5 seconds of the second window being popped up, a 3rd window could be popped up saying "Unable to Communicate". all very simple.if someone is bright enough to program an arduino, they should be bright enough to press and release a single button as instructed!
For a board like an official Arduino board like an UNO, if it were up to me, I'd puta set of holes for a 2 pin header that has a trace between them. That way if a personreally wants to disable auto-reset for good, they can cut the trace.If they want to use a jumper, they cut the trace and solder in a 2 pin header.
There will be a post on the blog on friday about this
i have some people who need more direct and non-technical info than this thread.
swapping the resistor with diode is a better fix anyway.
Isn't the 10k resistor part of a resistor network on Uno boards? That makes "simply replacing it with a diode" a bit problematic.I diode from reset to +5V can easily be inserted in the "power" connector; no soldering required.