Post topics, source code that relate to the Arduino Platform

User avatar
By s100
#94520 I have a ESP01 single piece programmer that plugs directly into a USB port. I don't think it has a specific name so I am going to describe it, sorry for the verbosity:
- It's not the one with the 1000uF capacitor
- It's not the one with the slide switch.
- It has a push button for the reset and a 4x2 row of pins next to the socket.

When I plug a standard ESP01/ESP01S into it, the Arduino GUI can download with no problem, no jumpers, and no switches. It just works. Both types of ESP work fine.

But.... When I add a wake up wire to the ESP01/ESP01S so I can use deep sleep, the download fails because the GUI can't communicate with the ESP. Sometimes, maybe 1 time in 5 it connects, but after several cycles of the dots (.....) and the dashes (------). If I time pushing the reset button just right, the GUI communicates and downloads OK. Both types of ESP work the same.

Obviously this has something to do with connecting the RST line to the wakeup pin XPD_DCDC. Probably some kind of signal timing issue. I also figure that some extra capacitors or resistors might help. But I am unclear on what would work.

I really like this programmer and while annoying, this is not a show stopper. I am more interested in understanding better how this works, and if this annoyance can be removed, that is a bonus. Thanks for reading.
User avatar
By Inq720
#94576 I believe I use the same programmers for my ESP-01S's. I haven't played around with deep sleep, so I don't experience the problem you mention. I'm not a hardware guy, but I'll take a WAG. I recall that when not in the programmer, you have to connect a couple of pins. The programmer is making all those connections based on when you download, then un-connects them so the ESP-01 can run. I'm betting you're sleep wiring is interfering with the programmers attempts at controlling the same pins.

I'd try checking some of the many Internet tutorials on ESP-01. Look for ones that use the old fashion way that explain how you have to manually set things up to program AND then how they change when running it. I imagine you'll find the understanding there.