Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By esell
#60155 Hey all, ESP8266 n00b here running into some issues. I have a couple of nodemcu dev boards (v1 I believe) and am running into issues flashing the boards that I have tied the RESET and GPIO16 pins together on for deep sleep. I basically used the info from here http://blog.falafel.com/esp8266nodemcu-deep-sleep/ on a few boards as the code I'm using uses the deep sleep function. The problem is that on the boards I did that on I can no longer flash them :(. I have a few boards from the same batch that I did NOT do that on and they work totally fine. I even tried something simple like using the esptool.py app to pull back the MAC and it says it can't connect to the board.

Any ideas on what might be happening? I've searched around and didn't find anything specific to the issues I'm having so that makes me think it's something I am doing wrong.
User avatar
By esell
#60169 I was never able to figure out the _why_ on this but I did come up with a solution. For whatever reason on my boards if you have RST and GPIO16 connected at power-up flashing doesn't work but if you power the board up without the pins connected, flash it and then connect the pins everything is ok.
For now my solution is to add a jumper between RST and GPIO16 that I can take off for flashing and then put back on for day-to-day operation.
User avatar
By martinayotte
#60172 This is because you used a plain wire between RST and GPIO16.
The issue is that GPIO16 provides a strong HIGH during deepSleep and your external reset from Serial-TTL is fighting to make a reset, but loosing, the GPIO16 is the strongest.

To avoid such issue, simply replace the wire by a 470R or 1K between GPIO16 and RES, which will allow the Serial-TTL to win. (you can also use a schottky diode with the cathode on GPIO16 side)
User avatar
By esell
#60204
martinayotte wrote:This is because you used a plain wire between RST and GPIO16.
The issue is that GPIO16 provides a strong HIGH during deepSleep and your external reset from Serial-TTL is fighting to make a reset, but loosing, the GPIO16 is the strongest.

To avoid such issue, simply replace the wire by a 470R or 1K between GPIO16 and RES, which will allow the Serial-TTL to win. (you can also use a schottky diode with the cathode on GPIO16 side)



Thank you for this info!