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

User avatar
By DrMag
#43800 Hi all! I'm starting to learn the ESP8266, and I'm already running into trouble. I picked up a few of the ESP-12F modules on aliexpress, and I don't understand the behavior I'm getting from them.

I designed a breakout board to which I soldered the first of my set, and used a logic analyzer to examine the initial serial data out. I found it was operating at 74880 baud (roughly), and a serial terminal would display the following output:
Code: Select all <CR><LF>
 ets Jan 8 2013,rst cause:2, bootmode:(3,0)<CR><LF><CR><LF>


I have been unsuccessful at finding what this bootmode means, as everything that has come up on Google has a different second number. I have figured out that the 3 indicates the voltage on the GPIO pins related to programming.

I also measured voltages at the pins, and RST, EN, and IO2 were all at 3.3V, but IO0 is only at 1.8V. This is the case with or without an external pull-up resistor, and I wonder if this is the cause.

If I try to use ESP Flash Tool, I'm able to put it in flash mode (quick check on serial stream shows the boot mode switch to (1,0) confirms that), and Flash Tool is able to talk to it, but only at 460800 baud. It comes up with MAC addresses, tests UART, then hangs for a while, finishing with this message:
Code: Select allcrc_efuse_4bit: 0
crc_calc_4bit: 8
48bit mac
MAC AP : <mac address here>
MAC STA: <similar mac address here>
get mac res:  True
('tttest uuuuuuuuuuart : uart reg: ', 115)
(' baudrate: ', 460800)
get crystal: 26496000
head: 0 ; total: 0
erase size: 0
get flash id error
com closed


Especially with the weird voltage on IO0, I wonder if I have a faulty unit, so I tried another--this time just soldering wires directly to the ESP and plugging it into a breadboard. Without an external pull-up, IO0 is at 3.3V. It again operated at 74880 baud, but this time came up with boot mode (3,7) and gave a little extra information, though some of it appeared garbled. I believe it switched baud rates. I was able to get NodeMCU flasher to write NodeMCU to it, and now on boot this one does bring up a Lua prompt. ESP Flash Tool still only picks up at 460800 baud, and I also noticed that the MAC addresses are identical between the two.

So, after all that, my questions are these: what exactly is happening here?

Am I right in my assessment that my first module is faulty?

Is it possible I damaged the module when soldering to my breakout board, either with heat or static?

Is the ESP Flash Tool baud rate expected?

Do I need an external pull-up on IO0, or does it have an internal pull-up as it appears from my tests? (It also seems there are internal resistors pulling IO2 up and IO15 down already.)

Thanks for your help!