Wake from Deep Sleep doesn't always wake up properly.
Posted: Mon May 15, 2017 11:55 pm
I'll preface this post with the fact that I have been searching for a solution to my specific problem here, and on other forums for about a week now, and I've tried and discarded all of the "solutions" that I've found... so please don't assume that I just haven't looked hard enough.
I'm doing what a lot of others seem to have tried (with limited success), which is to make a battery powered environmental sensor that posts temperature and humidity data to web. What we all seem to want to do is use the DeepSleep function to wake every several minutes to sample, post and then go back to sleep. Based on how many people seem to want to do this, I'm surprized that there isn't a simple solution out there yet.
I am prototyping with an Adafruit Hauuah board and the SHT-31 D sensor.
I am only using GPIO4 and GPIO5 for coms, and jumping GPIO16 to RST with a wire.
No other connections. So GPIO0 & 2 have pullups and GPIO15 has a pull down.
My specific problem is that every now and then, when the 8266 wakes from it's deepsleep, instead of doing a restart, it goes into a mode that resembles the bootloader state, although it's not actually running the bootloader. This may happen after 10 minutes or 10 hours. It appears random.
When the bad wake-up occurs, the RED LED is lit at half brightness (like in bootloader mode) but it won't load a program, AND pressing the reset button does NOT take it out of that state. In fact, the only way to get it out is to power it down.
This happens whether I have the terminal attached or not. If I have the terminal attached I can see the typical garbage when the wake occurs, but nothing after that. If I hit reset, I just get the same burst of garbage.
If I measure GPIO2, I see 1.8V which explains why the LED is lit I guess.
I'm using the Arduino IDE and I just downloaded the latest Arduino 1.8, and the latest ESP core (3.0 as I recall). However, this was happening even back when I had the 1.5.6 version.
I've tried different restart connections (GPIO16-res) like a resistor and a diode. I've also tried adding a cap to the reset line, but it still fails.
Has anyone got any concrete suggestions that explain what I'm seeing, or what I can do about it?
I'm doing what a lot of others seem to have tried (with limited success), which is to make a battery powered environmental sensor that posts temperature and humidity data to web. What we all seem to want to do is use the DeepSleep function to wake every several minutes to sample, post and then go back to sleep. Based on how many people seem to want to do this, I'm surprized that there isn't a simple solution out there yet.
I am prototyping with an Adafruit Hauuah board and the SHT-31 D sensor.
I am only using GPIO4 and GPIO5 for coms, and jumping GPIO16 to RST with a wire.
No other connections. So GPIO0 & 2 have pullups and GPIO15 has a pull down.
My specific problem is that every now and then, when the 8266 wakes from it's deepsleep, instead of doing a restart, it goes into a mode that resembles the bootloader state, although it's not actually running the bootloader. This may happen after 10 minutes or 10 hours. It appears random.
When the bad wake-up occurs, the RED LED is lit at half brightness (like in bootloader mode) but it won't load a program, AND pressing the reset button does NOT take it out of that state. In fact, the only way to get it out is to power it down.
This happens whether I have the terminal attached or not. If I have the terminal attached I can see the typical garbage when the wake occurs, but nothing after that. If I hit reset, I just get the same burst of garbage.
If I measure GPIO2, I see 1.8V which explains why the LED is lit I guess.
I'm using the Arduino IDE and I just downloaded the latest Arduino 1.8, and the latest ESP core (3.0 as I recall). However, this was happening even back when I had the 1.5.6 version.
I've tried different restart connections (GPIO16-res) like a resistor and a diode. I've also tried adding a cap to the reset line, but it still fails.
Has anyone got any concrete suggestions that explain what I'm seeing, or what I can do about it?