Home > News & Updates > Electronics News Updates > Zero-wire serial auto-reset for Arduino

Zero-wire serial auto-reset for Arduino

Summary of Zero-wire serial auto-reset for Arduino


### Article Summary This article details a DIY method to enable auto-reset functionality on Arduino Pro Mini boards when using TTL serial adapters that lack a DTR line. The solution utilizes the existing 0.1uF capacitor and modifies the circuit by relocating a chip resistor and adding a diode between the RXD and RST pins. This RC configuration ensures the board resets only when the serial line stays low for over 100ms, distinguishing it from normal short data bursts, effectively replicating the standard auto-reset feature without extra hardware complexity.

Parts used in the Zero-wire serial auto-reset project:

  • Arduino Pro Mini board
  • Existing 0.1uF capacitor
  • Chip resistor (10kOhm or 11kOhm)
  • Diode

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.

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.

Quick Solutions to Questions related to Zero-wire serial auto-reset:

  • Why does the standard auto-reset fail with some serial adapters?
    It fails because those adapters do not break out the DTR line required to toggle the reset.
  • How long must the serial line stay low to trigger a reset in this circuit?
    The line must remain low for 100ms or more to trigger a reset.
  • What is the maximum duration of a normal 57.6kbps data burst before returning to idle?
    A normal burst lasts no more than 160us before returning to the idle high voltage state.
  • What components are needed to build this specific auto-reset circuit?
    The circuit requires just three parts: an existing capacitor, a relocated resistor, and a diode.
  • How is the capacitor charged quickly enough for rapid communication?
    A diode is used to allow the capacitor to charge quickly since idle time between bytes is too short for charging through the resistor alone.
  • Where was the chip resistor moved on the Baite Pro Mini board?
    The chip resistor was moved from near the button to the space between the RXD and RST pins.
  • Why were 0.1uF capacitors and 10kOhm resistors chosen for the values?
    These values create a 1ms time constant, providing a safety margin above the 160us threshold and matching common Pro Mini designs.
  • How was the connection to ground established for the capacitor?
    The user shorted the DTR pin to GND to connect the capacitor to ground.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top