Zero-wire serial auto-reset for Arduino

Various versions of the Arduino will reset the board by toggling the serial DTR line, a feature called auto-reset.  Since it relies on the DTR line, it won’t work with TTL serial adapters that don’t break out the DTR line.  After writing my half-duplex serial UART, I thought of using the TTL serial break signal which holds the line at 0V for several ms.  Normal serial communications would also send 0V, but at 57.6kbps, it would never last more than 160us before returning to the idle high voltage state.  So what I needed was a circuit would not reset when the line is low for 160us, but would reset when the line is low for 100ms or more.

Zero-wire serial auto-reset for Arduino

This can be done with a simple Resistor-Capacitor or RC circuit.  The time for a capacitor to discharge by 63% is equal to the resistance in ohms times the capacitance in farads.  Picking a common 0.1uF capacitor and a 10kOhm resistor gives an RC time constant of 1ms, high enough above the 160us time to provide a good safety margin.  Another reason for picking those values is that most pro mini boards, including the Baite Pro mini I recently purchased, use those values for the DTR auto-reset feature.  My plan was to make use of the existing components for my auto-reset circuit.  I also needed a way to quickly charge the capacitor, since the idle time between bytes won’t be long enough to fully charge the capacitor through the resistor.  A diode serves that purpose, so the whole circuit takes just 3 parts.

READ  mbugs – rapid-prototyping electronics for hobbyists and pros

The pro mini already has a 0.1uF capacitor in series between the DTR and RST line, so I shorted DTR to GND to make the connection between the capacitor and ground.  I used tweezers to move the tiny chip resistor (actually 11kOhm on the Baite board) from near the button to the space between the RXD and RST pins:

To finish off the circuit, I trimmed the leads on a diode and soldered it between the RXD and RST pins.  I chose to solder it to the reset on the left side of the board to avoid messing up the chip resistor I soldered on the right side.

Leave a Comment

= 5 + 9

(Spamcheck Enabled)

Read previous post:
Integrated MCUs Enable Cost-Effective Microinverters for Solar Energy Designs
Integrated MCUs Enable Cost-Effective Microinverters for Solar Energy Designs

Microinverters provide an effective solution to solar-energy harvesting by providing power conversion at the individual panel level. The emergence of...

Scroll to top