To use the ESP8266 chip as a modem (Figure 1) we must first load the appropriate AT-command firmware.
If necessary, to restore the original firmware:
# BOOT MODE ## download ### Flash size 8Mbit: 512KB+512KB boot_v1.2+.bin 0x00000 user1.1024.new.2.bin 0x01000 esp_init_data_default.bin 0xfc000 (optional) blank.bin 0x7e000 & 0xfe000 ### Flash size 16Mbit: 512KB+512KB boot_v1.5.bin 0x00000 user1.1024.new.2.bin 0x01000 esp_init_data_default.bin 0x1fc000 (optional) blank.bin 0x7e000 & 0x1fe000 ### Flash size 16Mbit-C1: 1024KB+1024KB boot_v1.2+.bin 0x00000 user1.2048.new.5.bin 0x01000 esp_init_data_default.bin 0x1fc000 (optional) blank.bin 0xfe000 & 0x1fe000 ### Flash size 32Mbit: 512KB+512KB boot_v1.2+.bin 0x00000 user1.1024.new.2.bin 0x01000 esp_init_data_default.bin 0x3fc000 (optional) blank.bin 0x7e000 & 0x3fe000 ### Flash size 32Mbit-C1: 1024KB+1024KB boot_v1.2+.bin 0x00000 user1.2048.new.5.bin 0x01000 esp_init_data_default.bin 0x3fc000 (optional) blank.bin 0xfe000 & 0x3fe000
After uploading AT firmware and connecting module to PC, we can use ESP8266 as a modem with simple AT commands.
We can connect ESP8266 to PC with TTL-Serial-to-USB adapter, or we can use any microcontroller with a serial interface. The default baud rate settings are 115200,N,8,1. Next from any terminal type command:
AT
and press enter. If you get OK, the ESP8266 module is ready to use. Let’s try out some other commands. For example, let’s figure out exactly what firmware version we’re dealing with. To do that, we’ll use the following command:
AT+GMR
As a Wifi device ESP8266 can connect to the network in such modes:
By default, the ESP8266’s stock firmware is set to AP mode. If you’d like to confirm that, send the following command:
AT+CWMODE?
You should get this response: +CWMODE:2, where 2 corresponds to AP mode. To switch ESP8266 to client device mode, we use the following command:
AT+CWMODE=1
Now we can scan the airwaves for all WiFi access points in range. To do that, we send:
AT+CWLAP
Then the ESP8266 will return a list of all the access points in range. In with each line will be item consisting of the security level of the access point, the network name, the signal strength, MAC address, and wireless channel used. Possible security levels of the access point <0–4> mean:
Now we can connect to the available access point using proper “ssid_name” and “correct_password” with the command:
AT+CWJAP="ssid_name","corect_password"
If everything is OK, the ESP8266 will answer:
WIFI CONNECTED WIFI GOT IP OK
It means that ESP8266 is connected to the chosen AP and got a proper IP address. To check what the assigned address is we send the command:
AT+CIFSR
To set up ESp8266 to behave both as a WiFi client as well as a WiFi Access point.
AT+CWMODE=3