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

User avatar
By rwkiii
#42705 I have several variants of the ESP8266 including several NodeMCU v1.0 Dev Boards that have a 12E. I'm confused about the flashing process and I'm sure that I keep doing something wrong.

Briefly, here is my goal. I intend on setting up a couple of these NodeMCU breakout boards to communicate MQTT via WiFi to a local MQTT broker setup on a RaspBerry Pi 2 (already setup).

Back to the NodeMCU v1.0 Dev Board - There are so many ESP8266 libraries. Many of which haven't been updated and/or are incorrectly documented, but I have had some success with the PubSubClient.h library on GitHub. This library uses ESP8266.h and relies on Expressif's AT firmware v2.0 - https://github.com/espressif/ESP8266_AT/tree/master/bin.

I have the NodeMCU dev board hooked powered by an Arduino Mega 5v power source stepped down to 3.3v with an LD33CV (LM1117). This is for powering only and is temporary. I have a SparkFun FTDI 3.3v adapter hooked up to TX/RX:

Code: Select allNodeMCU RX -> FTDI TX
NodeMCU TX -> FTDI RX


I am using ESP FLASH DOWNLOAD TOOL V2.3. Giving those instructions the benefit of the doubt I followed the instructions above:

Code: Select all0x00000  ESP8266_AT-master\bin\boot_v1.1.bin
0x01000  ESP8266_AT-master\bin\v0.20\user1.bin
0x7C000  ESP8266_AT-master\bin\esp_init_data_default.bin
0x7E000  ESP8266_AT-master\bin\blank.bin


Here I have to guess at some settings, but some of this I know:

Code: Select allCrystalFreq:  26M
SPI SPEED:  80Mhz
SPI MODE:  QIO (tried DIO also)
FLASH SIZE:  32Mbit (tried 8Mbit and 32Mbit-C1)


I then upload the firmware and it finishes successfully. I repower the NodeMCU Dev Board and open a serial console. First, the only baud rate that shows anything legible in the console is 74880 bps. In the console I see a bunch of these (rapidly scolling over and over):

Code: Select allFatal exception (0):
epc1=0x40100000, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000


I don't know how to read that line, but I suspect it is due to the memory layout I specified when I uploaded the firmware. So I changed user1.bin to load at 0x40000 instead of 0x1000, then performed the upload again. I get the same Fatal exception (0) above, but if I press the Reset button a few times I can sometimes see this in the console:

Code: Select all ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 612, room 16
tail 4
chksum 0x12
load 0x3ffe8000, len 788, room 4
tail 0
chksum 0x50
load 0x3ffe8314, len 264, room 8
tail 0
chksum 0x4a
csum 0x4a

2nd boot version : 1.1
  SPI Speed      : 80MHz
  SPI Mode       : QIO
  SPI Flash Size : 4Mbit
jump to run user1

user code done


My hunch is that the Expressif instructions are for an ESP8266-01.

Can anyone tell me where I'm going wrong? I just want to get the Expressif AT v.20 command firmware installed on this NodeMCU v1.0 Dev Board.

Thank you!
User avatar
By leenowell
#42735 I had similar issues but I was using the 12f on its own rather than the board you mention. Turned out to be a power supply issue. The chips are pretty hungry so I would check what current the mega can provide and ensure it is clean (ie not fluctuating voltage).

I ended up buying one if those bread board power supplies and now it works a treat.