Dirtiest fix ever, but is it posible to reboot everything with short circuit?

Hi,

I found an old arduino uno board with an ESP8266 ESP-01 soldiered onto it. What the project does is, it gets the temperature and sends it to a server. Nothing special.

I want it to use in a project for a remote wildcam. The wildcam uses a mobile wifi device that enables wifi through 4G. It is run on batteries. The batteries are on their turn managed by a 'charge controller' that charges the batteries with a solar panel.

When there isn't enough power, the 'charge controller' will switch off the load to save the batteries from draining. When there is enough sun and the batteries are full again, it will automatically switch on the load.

Now the problem: When the charge controller enables the load, the arduino with its esp8266 are quicker in booting then the Mifi device. So The arduino will not find the wifi and fails to connect.

I cannot update the firmware on the esp8266 as it is lost and soldiered onto the arduino. I can however programm and update the arduino. And using the arduino I need to reset the ESP after a minute.

I cannot find a way to do it until I accidentally short circuited the ESP using the 5V from the arduino to the GND of the ESP. Everything (arduino and ESP) reboot. And on reboot, the wifi was found and everything works.

Now this sounds as the most idiotic and dirtiest fix ever. But is it possible to have a wire go from a digital pin from the Arduino Uno to the GND of the ESP. And after a minute of delay set the pin output to 'HIGH' creating a short circuit and rebooting everything?

No. The pin cannot do this. But ESP has a reset pin. Find it and use it.

Do you have any information on howto use that rst pin? I cannot find much.

Another quick-and-dirty would be to have the Arduino delay() for one minute as the first thing in setup().

That doesn't work as the ESP is a microcontroller on its own. It boots when it gets powered. The arduino communicates with the ESP using a serial connection so using a delay will not prevent the ESP from booting.

Anyone else searching in the future and finding this topic.

Check this schema: Reset ESP-01 from an Arduino - #7 by easyanton

Then on setup set:

pinMode(ESPRST, OUTPUT);
digitalWrite(ESPRST, HIGH);

And when you want to reset the ESP somewhere in your loop do:

digitalWrite(ESPRST, LOW);
delay(500);
digitalWrite(ESPRST, HIGH);

Oh, I misunderstood - I'm sorry. I see you've sorted it now anyway.

Is there not a way to send a command from Uno to the ESP8266 to disconnect/reconnect to the wifi?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.