I picked up some esp8266-01 modules and I have successfully created a flasher on a breadboard and I've even uploaded some sketches to one of them and successfully got UDP communication working between it and java app I wrote on my laptop...
But here's where my confusion begins ...
After uploading sketches through the Arduino IDE, I am no longer able to access the devices AT commands so I figured maybe I needed to re-flash some default firmware and this is where my nightmare begins...
There are bajillion different ways to go about flashing firmware into this thing so I decided to go to the source and get their latest build ... yet even that is very confusing.
For example, in the readme.md file from ESP8266_AT_Bin_V1.7.zip:
# BOOT MODE ## download ### Flash size 16Mbit-C1: 1024KB+1024KB boot_v1.2+.bin 0x00000 user1.2048.new.5.bin 0x01000 esp_init_data_default.bin 0x1fc000 blank.bin 0xfe000 & 0x1fe000 ### Flash size 32Mbit-C1: 1024KB+1024KB boot_v1.2+.bin 0x00000 user1.2048.new.5.bin 0x01000 esp_init_data_default.bin 0x3fc000 blank.bin 0xfe000 & 0x3fe000 # NON-BOOT MODE ## download eagle.flash.bin 0x00000 eagle.irom0text.bin 0x10000 blank.bin Flash size 8Mbit: 0x7e000 & 0xfe000 Flash size 16Mbit: 0x7e000 & 0x1fe000 Flash size 16Mbit-C1: 0xfe000 & 0x1fe000 Flash size 32Mbit: 0x7e000 & 0x3fe000 Flash size 32Mbit-C1: 0xfe000 & 0x3fe000 esp_init_data_default.bin Flash size 8Mbit: 0xfc000 Flash size 16Mbit: 0x1fc000 Flash size 16Mbit-C1: 0x1fc000 Flash size 32Mbit: 0x3fc000 Flash size 32Mbit-C1: 0x3fc000 ## compile modify eagle.app.v6.ld, as irom0_0_seg : org = 0x40210000, len = 0x6C000 > NOTICE: UPDATE is not supported in non-boot mode; 4Mbit Flash is not supported in non-boot mode; # Update steps 1.Make sure TE(terminal equipment) is in sta or sta+ap mode AT+CWMODE=3 OK 2.Make sure TE got ip address AT+CWJAP="ssid","12345678" OK AT+CIFSR 192.168.1.134 3.Let's update AT+CIUPDATE +CIPUPDATE:1 found server +CIPUPDATE:2 connect server +CIPUPDATE:3 got edition +CIPUPDATE:4 start start OK
Whats the deal with the different upload addresses? And Boot mode??? NON-Boot Mode???? This makes no sense to me at all.
Is there some kind of documentation somewhere that explains to someone new to these devices, the general philosophy of how this thing works ... what the different address ranges are all about and how to know what your uploading where and which file is the right file etc. etc.
Cause that readme assumes that the reader has some deep knowledge of the device already and I cant find a general overview of this device anywhere ... everything out there seems to assume that you have the basic knowledge of the device already.