So I finally got around to using my two ESP8266 modules. This is just some notes that I’ve collected whilst working on them.
If you’re interested in the boot data, it uses a different baud rate from the main interface. It might be briefly caught if the right baud rate is chosen, ie http://vogelchr.blogspot.co.uk/2014/12/esp8266-firmware-upgrade-odd-baudrate.html
The esp-open-sdk from https://github.com/pfalcon/esp-open-sdk is perfectly functional, and all it takes is a ‘make STANDALONE=y’
Once compiled, ensure that esp-open-sdk/bin is in your $PATH, ie /home/bagpuss/src/esp-open-sdk/xtensa-lx106-elf/bin
To flash the ESP8266 from Linux, esptool.py from https://github.com/themadinventor/esptool works great. Just ensure you have sufficient privileges to write to the serial port.
Whilst nodemcu-firmware could be pulled from https://github.com/nodemcu/nodemcu-firmware it’s just easier to grab the precompiled firmware from https://github.com/nodemcu/nodemcu-firmware/raw/master/pre_build/latest/nodemcu_latest.bin
Good pinout diagram here http://www.electrodragon.com/w/File:ESP8266_V091.png
Keep CH_PD pulled high all the time.
Pull GPIO0 to GND in order to enter flashing mode.
Power it up
./esptool.py –port /dev/ttyUSB0 write_flash 0x00000 ../nodemcu_latest.bin
Reboot it when done
When talking to it, at least with the original firmware, you need a serial terminal that does newlines and carriage returns. The Arduino serial monitor works well for this. With nodemcu installed, /usr/bin/screen works just fine.
After a flash of nodemcu, do a file.format() to clear the flash
Use luatool from https://github.com/4refr0nt/luatool to upload lua scripts to the device.
If the device isn’t responding, wipe and start again… this set of commands have repeatedly gotten out of a ‘bricked’ device state.
./esptool.py –port /dev/ttyUSB0 write_flash 0x00000 ../esp-open-sdk/esp_iot_sdk_v1.0.1/bin/boot_v1.2.bin
./esptool.py –port /dev/ttyUSB0 write_flash 0x00000 ../esp-open-sdk/esp_iot_sdk_v1.0.1/bin/at/user1.1024.new.bin
./esptool.py –port /dev/ttyUSB0 write_flash 0x01000 ../esp-open-sdk/esp_iot_sdk_v1.0.1/bin/at/user1.1024.new.bin
./esptool.py –port /dev/ttyUSB0 write_flash 0x7e000 ../esp-open-sdk/esp_iot_sdk_v1.0.1/bin/blank.bin
./esptool.py –port /dev/ttyUSB0 write_flash 0xfe000 ../esp-open-sdk/esp_iot_sdk_v1.0.1/bin/blank.bin
./esptool.py –port /dev/ttyUSB0 write_flash 0x00000 ../nodemcu_latest.bin
Recent Comments