I'm unable to communicate with my nodemcu ESP8266 module using the AT commands. The module does not return 'ready' on the serial monitor and entering AT commands has no effect at all. I am able to upload programs onto the module and even receive messages onto the serial monitor. But not for the AT commands. Please help....

  • Does your nodemcu have a mini USB port? Then you can actually program it directly through the Arduino IDE. This way you don't even need an Arduino. You'll only need the board files for your nodemcu board. – Paul Nov 16 '16 at 16:47
  • Or you can choose to use it and flash a program that interprets AT commands itself. – Paul Nov 16 '16 at 16:48
  • It does have a micro USB port and yeah, I can upload arduino programs onto the board. But again, I'll be needing the AT commands to change stuff like passwords and all which I guess cannot be done through the arduino IDE. And regarding flashing of a program, could you please elaborate how it can be done? Thank you. – Sumanth Nov 16 '16 at 17:23

AT commands require the installation of firmware that responds to AT commands.

A plain ESP module normally comes with that firmware installed. A nodemcu doesn't. A nodemcu comes with Lua installed instead.

| improve this answer | |
  • I'm using the arduino IDE. I had downloaded the ESP8266 library within the IDE from the preferences. So will I have to install the firmware separately again? – Sumanth May 20 '16 at 9:12
  • 1
    Yes. The AI Thinker AT firmware. It's a completely separate thing that is normally preinstalled. – Majenko May 20 '16 at 9:15

The bare chip knows nothing, just as an Arduino would. The AT+ command set is provided by an interpreter running on the 8266 processor. The AI Thinker modules and others, come with that interpreter already loaded. Your module does not have it installed. And any time you load a program into it, the previous one is over-written.

You can find the AT+ interpreter available for download and upload it to the module, after which it will be able to execute AT+... commands.

| improve this answer | |

Use the NodeMCU to process your logic, instead of the Arduino

When using the NodeMCU (or NodeMcLua) you (in a lot of cases) don't really need an Arduino. The ESP8266-12E based "dev boards" with mini-usb connector can be programmed just like an Arduino, using the Arduino IDE.


  • The ESP8266-12 is powerfull enough (32-bit 80mhz)
  • The ESP8266-12 has (usually) enough I/O pins (and you can use an I/O expander if needed)
  • Adding an Arduino to it is only making the system more expensive.
  • Adding an Arduino to it is only making the system more complex (and needs additional wiring).

This is especially true for the ESP8266-12 nodemcu boards with mini-USB, since they're "almost" as easy to program as the Arduino.

Configuring the board file

You'll need to be able to select the "ESP8266" as your target, the Arduino IDE has a possibility to use board files for other targets than Arduino. This is best explained on tutorials and other sources online:

  • Install Arduino 1.6.8 from the Arduino website.
  • Start Arduino and open Preferences window.
  • Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).





When using the ESP8266, you obviously can't use any of the specific hardware features that you could normally use with the Atmega based Arduino's. However, SPI, I2C, UART, analog and digital pins should be ported rather well, and can be used. You are not able to call Atmega328 registers directly (but you may, I believe, call registers of the ESP8266 directly).

Note on the boards.txt not listing your specific ESP8266

You may find that the boards.txt does not list your specific ESP8266 or that it simply doesn't upload (can cause various errors).

Note on Chinese boards with CH340G usb-serial chip

The Chinese boards often come with a CH340G chip, these usb<->uart chips are used to interface the MCU with the PC (over USB, while acting as an USB-COM device). These drivers for these CH340x chips aren't installed in Windows/Mac on default, you'll have to instal the drivers manually. It can be a little frustrating since these drivers usually aren't signed.

| improve this answer | |

Have you tried connecting the ESP8266 to 5 V?

Some Arduino Uno boards have 2 V output for 3.3 V pin and have 3.3 V output for 5 V pin. 5 V pin can provide more current than 3.3 V pin. I have tried 3.3 V pin and it doesn't work due to lack of current. When I connect it to 5 V pin, it works.

| improve this answer | |
  • It is always best to check the voltages with a multimeter first, else you could end up frying the ESP8266, if the 5 V does actually supply 5 V. – Greenonline Jun 18 '17 at 5:24

You need to try every baud rate on Serial Monitor. You also need to upload a simple program (like BareMinimum for example).

| improve this answer | |
  • Didn't get you. This question was about AT commands not working – Sumanth Nov 17 '16 at 16:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.