VIDEO: Resolving Issues Arising from Launching ESP8266 into AT Mode Using Arduino’s 3.3V [VIDEO]
They say a picture is worth a thousand words and I think a motion picture is worth two thousand. Watching a video demo clears the confusion that may result from learning by reading. I happen to be one of those guys who prefer learning by watching especially after studying the theories around something. After writing the article: How to Launch Your ESP8266 WiFi Module into AT-MODE Using Arduino Uno, I found it fit to follow it up with a video demo. The demo specifically demonstrates:
- How to connect the ESP8266 WiFi Module directly to the Arduino’s 3.3V pin
- How to launch the ESP8266 WiFi Module into AT mode using the Arduino Uno Board
Why the ESP8266 WiFi Module
It has been several months now since the birth of the ESP8266 WiFi Module to the tech world. The ESP8266 module is a System on Chip (SoC) that not only packs the TCP/IP protocol stack but also has the capabilities of a typical microcontroller. It has as input/output pins, which you to interface it with input and output devices. For example, you can connect the output of a typical temperature sensor to one of the GPIO input pins. The ESP8266 module has ADC that converts the analog input from the sensor to digital format. The inbuilt TCP/IP protocol stack, on the other hand, transmits the digital temperature data to a database on the internet through available WiFi connectivity.
Challenges Launching the ESP8266 WiFi Module into AT Mode
Although the video is presumably straightforward, we cannot ignore the fact that it is difficult to explain the nuts and bolts in 2 minutes. The following issues not addressed in the video could hinder you from successfully launching your ESP8266 WiFi module into AT mode off of the Arduino’s 3.3V pin. They include:
- Synchronization error
- AT mode ERROR acknowledgment
- Gibberish response
- AT command not showing on the serial Monitor
Resolving the ESP8266 AT Mode Issues
Hardware issues
? ESP8266 not in Sync
A number of issues are likely to cause this issue. One of them is not connecting the CH_PD and the RESET pin to the correct voltage levels. Attempting to upload code into the Arduino while the ESP8266 is still connected to the hardware RX and TX might throw synchronization error: avrdude: stk500_getsync()
✅Solution
Ensure the RESET pin and the CH_PD pins of the ESP8266 are pulled to VCC (3.3V).
Disconnect the ESP8266 from the Arduino’s hardwired RX and TX pins when attempting to upload code. Otherwise, you might consider using the softwareSerial.h
library to create RX and TX pins.
? AT command response not showing on the serial monitor
When the ESP8266 RX and TX pins are wrongly connected to the Arduino, you will not get any response.
✅Solution
Ensure the TX of the ESP8266 connects to the TX of the Arduino and the RX to the RX.
It should, however, be noted that this configuration only works for this particular setup. It works by extending the Arduino’s TX and RX to the ESP8266’s TX and RX.
Software issues
? AT mode ERROR acknowledgment
Once you have all the connections right and you have the serial monitor open, you may get ERROR response upon typing an AT command on the serial monitor. The issue is usually caused by typing incorrectly an AT command. One of the most common causes is including a space in the command.
✅Solution
An AT command is acknowledged with OK or ERROR. Unlike most programming languages where a space character is ignored, a space in AT command is treated as a character and affects the command. Therefore, inserting a space before, after or in between an AT command unnecessarily results in ERROR
. To get the OK
acknowledgment ensure there is no space character in the AT command.
? Gibberish response
The ESP8266 module will return a gibberish response to an AT command if the wrong Baud rate is set.
✅Solution
The default Baud rate for the older version firmware is usually 115200. However, newer versions ship with a baud rate of 9600. Therefore ensure the correct baud is set. If unsure about the correct baud between the two, you can start with the former. If it doesn’t give sensible responses, try the latter.
I hope you successfully launch your module into AT mode but in case you encounter new issues, don’t hesitate to mention in the comment section.