ESP8266 boot mode problem?

All -

I have an ESP-12F that I am programming with an ES8266 socket programmer. On the breadboard, it works fine after flashing (flashes an LED at me).

When I take the module and solder it to my PCB, it no longer works, so I suspect I'm dealing with a problem with some pin getting pulled up or down on my PCB and causing the ESP to boot into a weird state. At the moment, I have GPIO 15 connected to a buzzer, GPIO 12 connected to an LED, GPIO 13 connected to an LED, and A0 connected to a sensor (A0 is also connected to GND via a 10k resistor).

The behavior is this: sometimes, when I plug in the power (I'm using an 18650 and going through a 3.3v regulator), the ESP doesn't react at all. Sometimes the on-board LED lights up and stays solid. If the LED does not turn on, I can ground GPIO2 (touching it with a grounded jumper) and the on-board LED comes on and stays solid. That's all the unit will do.

I've tried it twice with two different boards/ESP's/etc., same behavior each time. Does anyone know what the solid on-board LED indicates on an ESP? Or does anyone have any suggestions about what I might be doing wrong?

Thanks!
Matt

1 Like

What 3.3volt regulator.
You need a very low drop regulator to power a 3.3volt device with a 3.7volt battery.
An LM1117 would not be suitable.
Do you have enough capacitance on the VCC line.

Do you have all the required pins to ground or VCC (with resistors).
I think enable, reset, and GPIO_0 have to connect to VCC, and GPIO_5 to ground.
https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html
Leo..

I'm using a TC1262-3.3VDBTR as my voltage regulator. I've tried powering the project with a 9v and my 3.7v, no difference. I'll try out a 3 pack of AA's and report back if that makes a difference.

As for the pins, that's what I'm trying to find out. Every guide seems to have a different write-up of which pins need to be tied to what. I'll see what I can do to get the pins tied up the way the guide you sent along shows, but it's markedly different from other guides (like this one, which just claims GPIO15/low GPIO2/high for normal operation: Home · espressif/esptool Wiki · GitHub)

What's maddening is that this is my second version of this PCB, and the first version worked fine without any of this extra stuff. I just plugged in my AA pack (same voltage regulator) and it booted and worked. I didn't tie any GPIOs to high/low ahead of time and had zero resistors on the board.

Update: I tried flashing just a simple blink program to a fresh ESP-12F and powered it with a 9v battery via my voltage regulator and nothing else (not on a PCB, just on my dining room table with a couple of jumpers) and same thing. Just a dim, solid, onboard LED. WTH?

That rules out that my PCB design or sketch are the problem. I don't think its my power flow either, as I've successfully used these voltage regulators and batteries successfully in the past. Every combination of pulling GPIO2, 15, RST, etc. up and down doesn't seem to have any effect. Is there something I don't know about ESP-12F's, compared to other models?

you do not need to try any combination. make it right. espressif has a good site full of docs.

elveax:
I'm using a TC1262-3.3VDBTR as my voltage regulator. I've tried powering the project with a 9v...

Did you read the datasheet for that regulator?
Working voltage 2.7 to 6volt, and 6.5volt absolute max.
Leo..

It's not the voltage regulator - I just grabbed my 9v and used it to power on a very similar project with the same voltage regulator, no problem. The only difference I can spot between the two projects is that one uses an ESP-12S and the other uses an ESP-12F. That's very frustrating because all the documentation I can find online says that those two modules are more or less identical.

This other project doesn't have GPIO2, 0, 15, RST, or CH_PD pulled in any particular direction...it uses the TC1262 voltage regular and powers with a 9v. Boots fine and flashes. Then I have this new project - same setup, won't boot no matter what I do.

elveax:
It's not the voltage regulator - I just grabbed my 9v and used it to power on a very similar project with the same voltage regulator, no problem.

If you're 50% over the rated voltage, you can't expect it to work reliably. Period.
Power supplies can be tricky. If the ripple is too high, for example, if it strarts oscillating, or if it can't cope with large surges in current draw, digital circuitry will misbehave, even though your multimeter might tell you that the voltage is 3.3V.

elveax:
all the documentation I can find online says that those two modules are more or less identical.

That's because they are.
There are some tolerances, and two of "the same" chips might behave completely differently under certain conditions that are outside of spec.

Fix your power supply problem first, then pull the boot pins to the right level, as shown in the link posted by Wawa. Measure the levels of these pins while holding the reset button to make sure that they are indeed correct.

If it's still not fixed, post a complete schematic of your PCB.

Pieter

I've tried powering the project with a 3.7v 18650, a 3x AA battery pack, and a 9v - no go. I really think the power angle is the wrong one.

I have 3 different types of ESP8266 - I have two ESP-12s's, ten ESP-12f's, and one generic ESP8266 by AI Thinker that doesn't have a model number on it (well, it says ESP8266MOD as the model). Here's the thing: both ESP-12s's boot with no issue. All of these are in the exact same layout - same voltage regulators, same power supplies, etc. All of the others fail to boot with the same dim, solid blue LED.

I've just ordered some more 12S's - if the new ones I get in boot, then that solidifies the fact that there is something different about the 12S and the other models that is causing my issue. Other than that, I'm can't think of much else to test.

A dim GPIO2 LED could indicate a boot loop. GPIO2 is TX1, and it sends out Serial information on boot.
Did you measure the levels already?

The TC1262 is rated to 6.0V input voltage. Using a 9V battery is a Pretty Bad Idea. It seems you're really lucky that your regulator is still working.

Drop-out voltage is indeed very low, making it suitable for use with a 3.7V LiPo battery (actual output would be 3.3-4.2V depending on the charge level).

To boot: CH_PD, RESET, GPIO2, GPIO0 high, GPIO15 low.

GPIO2 will be pulled high through the internal pull-up, probably GPIO0 as well, I'm not sure if you have to actively connect those two pins to the desired levels. Adding a pull-up resistor won't hurt anyway.

To get the chip into program mode: boot with GPIO0 pulled low, the rest unchanged.

elveax:
Does anyone know what the solid on-board LED indicates on an ESP?

some discussion on ESP-12E onboard LED - Everything ESP8266

.

Update for everyone:

I got it working by just pulling CH_PD high and GPIO15 low. Like I said, it's frustrating, because there are 100 articles out there and they all claim different pin combinations will cause it to 'boot normally'.

I originally hooked it up the way the guide (posted above) said, which was CH_PD high, RST high, and GPIO15 low, and that did cause it to successfully boot. But, further testing revealed that leaving RST disconnected still resulted in a good boot (RST pulled low did not work).

This test was with an ESP-12F - tomorrow I get a new set of ESP-12S's in and I'm going to test those to see if they boot different (I think they do, because my previous PCB projected booted fine with 12S's without touching 15 or CH_PD).

Thanks again!

elveax:
But, further testing revealed that leaving RST disconnected still resulted in a good boot (RST pulled low did not work).

Indeed I have heard this before: RST can be left floating (it has internal pull-up maybe?), but you have the risk of spontaneous resets. Pulling RST low resets the device, so if you do that of course it won't boot.

This test was with an ESP-12F - tomorrow I get a new set of ESP-12S's in and I'm going to test those to see if they boot different (I think they do, because my previous PCB projected booted fine with 12S's without touching 15 or CH_PD).

That must have been mostly luck. Those two really have to be connected for proper boot.

1 Like

I think luck must have been a factor with my first PCB. I got in my ESP12-S's and they behaved the same way, so I'm going to just re-design my new PCB with 15->Low and EN->High. Thanks everyone!