Hard resetting via RTS pin : Fixed & Explained

(Last Updated On: December 11, 2019)

Hard resetting via RTS pin: I know you are struggling with this error/ issue so far, and it is killing your patience. So let me explain the Issue. You will how silly it is.

First of all, I wanted to let you know that this “Hard resetting via RTS pin” is not an Error. Yes, You have read the correct one its not an error. It’s just whatever tool (Arduino IDE) you’re using telling you it’s going to reset the Module after the Code Successful uploading. It indicates that the system is rebooting the board to run your application.

Explanation: Hard resetting via RTS pin

If you want to know in-depth about this issue first you should know about UART. Why because we will communicate with Device either NodeMCU-ESP8266 or ESP32 via UART protocol.

UART Means – Universal Asynchronous Receiver-Transmitter (UART).  In this Protocol, There is a  is a method called UART Flow Control to decrease the risk of losing data when slow and fast devices to communicate with each other over UART.

There are two types in this Flow Control.

  1. Hardware Flow Control
  2. Software Flow Control

Hardware Flow Control is also called RTS/CTS Flow Control. In this Hardware Flow control, RTS and CTS will come into the picture.


RTS means “ready to sendCTS  Means “clear to send

The RTS signal is an output of the UART informing the other UART on the bus that it is ready to receive data. This RTS signal changes when data is sent and changes back afterward. This signal is used to perform a hardware reset when the transmission of the Program from laptop to Device(ESP32/ESP8266) is completed. This action will restart the program that is within memory.

Why This Hard resetting via RTS pin is required ???

In the previous versions of the ArduinoIDE, this feature is not enabled. Sometimes the people are experiencing that the uploaded program is not executing properly. At that time we should restart the device by pressing the Reset hardware button. To minimize this bug In the later versions(1.8.0) of ArduinoIDE this feature is developed.

Why everybody is considering it as an Error ???

Up to me Its just a human perception, Basically all the logs in the Arduino IDE are shown in the red-colored text. Most probably the All the errors we see in the red text color. Whenever the log shows “Hard resetting via RTS pin…” we basically treat it like an error. This is the problem with text color and our perception.

My suggestion to Adruino Team is to change this text clour to white or Green so that people will stop treating this log as an Error.




6 thoughts on “Hard resetting via RTS pin : Fixed & Explained

    1. Since it’s not an error there is no need of specific fix… Getting knew about the reason behind the issue is the fix what I feel. That’s why I advertise likely that.

  1. I believe people want to know what to do after seeing the “Hard resetting via RTS pin…” message. Once the Arduino IDE presents this message then reset the esp32 or esp8266. Sometimes the various development boards have a “RST” button or a “Reset” button. These buttons/switches connect the “EN” pin of the esp32/esp8266 to ground. Once the connection to ground is removed by releasing the button the esp32/esp8266 will boot up (with the new code). Or an even simpler method would be to power the esp32/esp8266 off and on again. 😉

  2. If you want the Arduino IDE to automatically reset the esp32/esp8266 then connect the DTR or RTS pin of the FTDI or UART to the “EN” pin of the esp32/esp8266. The FTDI/UART should momentarily pull the EN pin to ground via its DTR or RTS pin which will reset the esp32/esp8266.

  3. As soon my code on ESP32 is uploaded i get Hard resetting vis RTS pin and i cannot see any output. What can be the solution

Leave a Reply