Getting Started with ESP8266 NodeMCU Development Board

New to the ESP8266? Start here! The ESP8266 is a Wi-Fi System on a Chip (SoC) produced by Espressif Systems. It’s great for IoT and Home Automation projects. This article is a getting started guide for the ESP8266 development board.

Getting Started with ESP8266 NodeMCU Wi-Fi Transceiver

Updated 5 August 2024

New to the ESP8266? You’re in the right place. This guide contains all the information you need to get started with this amazing board. Learn what is an ESP8266, what is it used for, how to choose an ESP8266 development board, how to upload your first program, and much more.

Table of Contents

Introducing the ESP8266 NodeMCU

What is an ESP8266 NodeMCU? The ESP8266 is a low-cost Wi-Fi chip developed by Espressif Systems.

ESP8266 NodeMCU Espressif Systems

It can be used as a standalone device, or as a UART to Wi-Fi adaptor to allow other microcontrollers to connect to a Wi-Fi network. For example, you can connect an ESP8266 to an Arduino to add Wi-Fi capabilities to your Arduino board. The most practical application is using it as a standalone device.

With the ESP8266, you can control inputs and outputs as you would do with an Arduino, but with Wi-Fi capabilities. This means you can bring your projects online, which is great for home automation and internet of things applications. Why is the ESP8266 so popular? Mainly for the following reasons:

  • Low-cost: you can get ESP8266 boards starting at $3 (or less) depending on the model.
  • Low-power: the ESP8266 consumes very little power when compared with other microcontrollers and can even go into deep sleep mode to consume less power;
  • Wi-Fi: the ESP8266 can generate its own Wi-Fi network (access point) or connect to other Wi-Fi networks (station) to get access to the internet. This means the ESP8266 can access online services to make HTTP requests or save data to the cloud, for example. It can also act as a web server so that you can access it using a web browser and be able to control and monitor your boards remotely.
  • Compatible with MicroPython: you can program the ESP8266 with MicroPython firmware, which is a re-implementation of Python 3 targeted for microcontrollers and embedded systems.

What can you do with an ESP8266?

Here’s a short list of what you can do with an ESP8266:

ESP8266 Technical Data

For more details about the specs of the ESP8266, check the following list:

ESP8266-12E-Wi-Fi-chip
ESP8266-12E Wi-Fi chip
  • Processor: L106 32-bit RISC microprocessor core based on the Tensilica Diamond Standard 106Micro running at 80 or 160 MHz
  • Memory:
    • 32 KiB instruction RAM
    • 32 KiB instruction cache RAM
    • 80 KiB user-data RAM
    • 16 KiB ETS system-data RAM
  • External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typically included)
  • IEEE 802.11 b/g/n Wi-Fi
  • Integrated TR switch, balun, LNA, power amplifier, and matching network
  • WEP or WPA/WPA2 authentication, or open networks
  • 17 GPIO pins
  • Serial Peripheral Interface Bus (SPI)
  • I²C (software implementation)
  • I²S interfaces with DMA (sharing pins with GPIO)
  • UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
  • 10-bit ADC (successive approximation ADC)

Main Differences Between ESP8266 and ESP32

There is a successor of the ESP8266—the ESP32. The ESP32 combines Wi-Fi and Bluetooth and is dual-core. If you want to start with any of these boards, we recommend getting an ESP32. If you already have an ESP8266, don’t worry. It works great, it has a huge community and it does the job for most DIY IoT projects.

ESP32 vs ESP8266 Development Boards

The following table shows the main differences between the ESP8266 and the ESP32 chips:

ESP8266ESP32
MCUXtensa Single-core 32-bit L106Xtensa Dual-Core 32-bit LX6 with 600 DMIPS
802.11 b/g/n Wi-FiHT20HT40
BluetoothXBluetooth 4.2 and BLE
Typical Frequency80 MHz160 MHz
SRAMX
FlashX
GPIO1734
Hardware /Software PWMNone / 8 channelsNone / 16 channels
SPI/I2C/I2S/UART2/1/2/24/2/2/2
ADC10-bit12-bit
CANX
Ethernet MAC InterfaceX
Touch SensorX
Temperature SensorX(old versions)
Hall effect sensorX
Price$ (3$ – $6)$$ ($6 – $12)
Where to buyBest ESP8266 Wi-Fi Development BoardsESP32 Development Boards Review and Comparison

For a more detailed analysis of the differences between those boards, we recommend reading the following article: ESP32 vs ESP8266 – Pros and Cons.

ESP8266 Versions

There are several versions of the ESP8266 modules as shown in the picture below. The ESP-01 and ESP-12E are the most popular versions. You’ll find a wide variety of development boards with ESP-12E or ESP-12F chips.

ESP8266 NodeMCU Development Boards Versions

ESP8266 NodeMCU Development Boards

Using bare chips or modules is not easy or practical. For learning, testing, and prototyping, you’ll want to use ESP8266 NodeMCU development boards.

ESP8266 NodeMCU Development Boards

These come with all the needed circuitry to apply power, upload code, easy access to the GPIOs to connect sensors and actuators, an antenna for the Wi-Fi signal, and other useful features.

How to Choose an ESP8266 Development Board?

There is a wide variety of ESP8266 boards from different vendors. While they all work in a similar way, some boards may be more suitable for some projects than others. When looking for an ESP8266 development board there are several aspects you need to take into account:

  • USB-to-UART interface and voltage regulator circuit. Most full-featured development boards have these two features. This is important to easily connect the ESP8266 to your computer to upload code and apply power.
  • BOOT and RESET/EN buttons to put the board in flashing mode or reset (restart) the board.
  • Pin configuration and the number of pins. To properly use the ESP8266 in your projects, you need to have access to the board pinout (like a map that shows which pin corresponds to which GPIO and its features). So make sure you have access to the pinout of the board you’re getting. Additionally, some boards have more accessible GPIOs than others. That’s a factor you should take into account depending on your project features.
  • Size. There is a wide variety of ESP8266 development boards with different sizes. Some boards benefit from a small form factor, which might be very practical depending on your project features. Usually, smaller boards have a small number of available GPIOs like the ESP-01.
  • Antenna connector. Most boards come with an onboard antenna for the Wi-Fi signal. Some boards come with an antenna connector to optionally connect an external antenna. Adding an external antenna increases your Wi-Fi range.

What is the best ESP8266 development board for beginners?

The best ESP8266 development board for your project will depend on what you intend to do. If you’re just getting started with the ESP8266 board, we recommend using the ESP8266-12E NodeMCU Kit.

ESP8266-12E NodeMCU Kit

ESP8266 12E NodeMCU Kit

The ESP12-E NodeMCU Kit is one of the most used ESP8266 development boards. It features 4MB of flash memory, access to 11 GPIO pins, and one analog-to-digital converter (ADC) pin with 10-bit resolution. In addition, the board has a built-in voltage regulator, and you can power up the module using the mini USB socket or the Vin pin.

Uploading code to the board is as easy as uploading code to the Arduino. There’s no need for an FTDI programmer or extra circuitry, as it has a built-in USB-to-serial converter. Most boards come with the CP2101 or CH340 chips.

It comes with an onboard antenna for Wi-Fi signal, and comes with RST and FLASH buttons to reset the board and put it into flashing mode. There is a blue LED internally connected to GPIO 2, which is very practical for debugging.

This is the ESP8266 board model we use more often in our Wi-Fi and IoT projects. It is very versatile, and it’s great for beginners. So, if this is your first time with the ESP8266, this is the module we recommend: ESP8266 12-E NodeMCU Kit.

Where to Buy?

You can check the following link to find the ESP8266-12E NodeMCU Kit in different stores:

Other Popular ESP8266 Development Boards

Other very popular ESP8266 boards are the ESP-01 and the ESP8266 Wemos D1 mini.

While I don’t recommend the ESP-01 for beginners, the ESP8266 Wemos D1 mini can be a good choice.

ESP-01

ESP-01 ESP8266
ESP-01

The ESP-01 is super small and fits in any enclosure, so it’s perfect for finished projects. However, it is very limited in the number of accessible GPIOs and doesn’t have a built-in voltage regulator, so you need to use a 3V3 power source or add a voltage regulator to drop the input voltage to 3V3. Additionally, it doesn’t come with a USB-to-serial converter, which means you need an FTDI programmer or a specific programmer board to upload code.

WeMos D1 Mini

ESP8266 Wemos D1 mini
ESP8266 WeMos D1 Mini

The WeMos D1 Mini offers 4MB flash memory, 11GPIOs, and 1 ADC pin in a minimal and small setup. The community has developed a wide variety of shields for the D1 mini board, which allows you to build small and simple setups with almost no wiring required. You just need to stack the shields to connect multiple peripherals. It comes with a built-in voltage regulator and USB-to-UART converter, which makes it easy to upload code. For these reasons, this might also be a good choice for beginners.

For a comparison between the different ESP8266 boards, you can read the following article:

There are many other versions of different ESP8266 boards. Most boards work in a similar way. Just make sure they are suitable for your project requirements.

In the following table, you can see the main differences between the ESP-01, ESP8266-12E NodeMCU Kit, and the WeMos D1 Mini.

ESP-01ESP-12E NodeMCUWeMos D1 Mini
GPIOS4
(including TX and RX)
1111
ADC Pins111
Flash Memory1MB (upgraded
version)
4MB4MB
Breadboard
friendly
x
USB to Serial
Converter
x
Size24.75mm x 14.5mm
(0.97” x 0.57”)
48.55mm x 25.6mm
(1.91” x 1”)
34.2mm x 25.6mm
(1.35” x 1”)
Price$$$$$
Where to Buy?ESP-01ESP-12E NodeMCUWeMos D1 Mini

ESP8266 NodeMCU Pinout

The most widely used ESP8266 NodeMCU development boards are the ESP8266-12E NodeMCU Kit, the Wemos D1 Mini, and the ESP-01. We’ll show you the pinout for those boards. A pinout is like a map that shows which pin corresponds to which GPIO and its features. This way, you should know which GPIOs to use if you need to use SPI, I2C, ADC, or others.

If you get a different board, you should be able to find its pinout with a quick google search. Here we’ll just take a quick look at the pinout. We recommend reading the following article that shows a detailed explanation of the ESP8266 pinout and how to use its GPIOs: ESP8266 Pinout Reference: Which GPIO pins should you use?

Power Pins

Usually, all boards come with power pins: 3V3, GND, and VIN. You can use these pins to power the board (if you’re not providing power through the USB port), or to get power for other peripherals (if you’re powering the board using the USB port).

General Purpose Input Output Pins (GPIOs)

One important thing to notice about the ESP8266 is that the GPIO number doesn’t match the label on the board silkscreen. For example, D0 corresponds to GPIO16 and D1 corresponds to GPIO5. When programming your boards using Arduino IDE, you must use the GPIO number and not the number on the silkscreen. This applies to most ESP8266 boards.

The ESP8266 peripherals include:

  • 17 GPIOs (usually not all GPIOs are accessible on the ESP8266 development boards)
  • SPI
  • I2C (implemented on software)
  • I2S interfaces with DMA
  • UART
  • 10-bit ADC

Different ESP8266 GPIOs have specific features, so you must choose the pins for your projects wisely. Otherwise, you may end up getting unexpected results.

We recommend taking a look at our ESP8266 GPIO guide which shows in great detail the function of each GPIO and how to pick the best GPIOs for your project:

ESP-12E NodeMCU Kit Pinout

The following picture shows an overview of the ESP-12E NodeMCU Kit pinout:

ESP-12E NodeMCU Kit Pinout ESP8266

WeMos D1 Mini Pinout

Here’s the Wemos D1 Mini pinout:

WeMos D1 Mini Pinout ESP8266

ESP8266-01 Pinout

Here’s the ESP-01 pinout.

ESP8266-01 Pinout ESP-01

How to Program the ESP8266?

There are many different ways to program the ESP8266 using different programming languages: Arduino C/C++ using the Arduino core for the ESP32, Micropython, LUA, and others.

Our preferred method is programming the ESP8266 using the “Arduino programming language” with Arduino IDE or VS Code. For beginners, we recommend getting started with Arduino IDE.

We also have several tutorials showing how to program the ESP866 using MicroPython. However, throughout this article, we’ll be focusing on Arduino IDE.

Programming ESP8266 with Arduino IDE

Arduino IDE 2 Logo

To program your boards, you need an IDE to write your code. For beginners, we recommend using Arduino IDE. While it’s not the best IDE, it works well and is simple and intuitive to use for beginners. After getting familiar with Arduino IDE and you start creating more complex projects, you may find it useful to use VS Code with the PlatformIO extension instead.

If you’re just getting started with the ESP8266, start with Arduino IDE.

Installing Arduino IDE

To run Arduino IDE, you need to install JAVA on your computer. If you don’t, go to the following website to download and install the latest version: http://java.com/download.

Downloading and Installing Arduino IDE

To download the Arduino IDE, visit the following URL:

Go to the Arduino website and download the version for your operating system.

Download Arduino IDE 2.3.2
  • Windows: run the file downloaded and follow the instructions in the installation guide.
  • Mac OS X: copy the downloaded file into your application folder.
  • Linux: extract the downloaded file, and open the arduino-ide file that will launch the IDE.
Arduino IDE 2.0 installation successful Windows Mac OS X Linux

If you have doubts, you can go to the Arduino Installation Guide.

Do you need an ESP8266 board? You can buy it here.

Installing the ESP8266 NodeMCU in Arduino IDE

To install the ESP32 board in your Arduino IDE, follow these next instructions:

1. In your Arduino IDE 2, go to File > Preferences.

Arduino IDE 2 File, Preferences

2. Copy and paste the following line to the Additional Boards Manager URLs field.

https://arduino.esp8266.com/stable/package_esp8266com_index.json
Arduino 2 - Additional Boards URL

Note: if you already have the ESP32 boards URL, you can separate the URLs with a comma, as follows:

http://arduino.esp8266.com/stable/package_esp8266com_index.json, https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 

3. Open the Boards Manager. You can go to Tools > Board > Boards Manager… or you can simply click the Boards Manager icon in the left-side corner.

Arduino IDE 2 - Boards Manager

4. Search for ESP8266 and press the install button for esp8266 by ESP8266 Community.

Install ESP8266 NodeMCU boards Arduino IDE 2

That’s it. It should be installed after a few seconds.

After this, restart your Arduino IDE.

Then, go to Tools > Board and check that you have ESP8266 boards available.

ESP8266 Boards Installed Arduino IDE 2

Now, you’re ready to start programming your ESP8266 using Arduino IDE.

Testing the Installation and Uploading Code to the ESP8266

To test the ESP8266 add-on installation, we’ll upload a simple code that blinks the on-board LED (GPIO 2).

Copy the following code to your Arduino IDE:

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/vs-code-platformio-ide-esp32-esp8266-arduino/
*********/

#include <Arduino.h>

#define LED 2

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED, HIGH);
  Serial.println("LED is on");
  delay(1000);
  digitalWrite(LED, LOW);
  Serial.println("LED is off");
  delay(1000);
}

View raw code

Uploading the Sketch

Connect your ESP8266 development board to your computer using a USB cable. If you’re using an ESP-01, check this section.

Warning: you must use a USB cable with data wires. Some USB cables from chargers or power banks are power only and they don’t transfer data—these won’t work.

Select your board before uploading the code. On the top drop-down menu, click on “Select other board and port…

Arduino IDE 2 - select board

A new window, as shown below, will open. Search for your ESP8266 board model

Arduino IDE 2 select board model and COM port

Select the ESP8266 board model you’re using, and the COM port. In our example, we’re using the NodeMCU 1.0 board. Click OK when you’re done.

If you don’t see the COM port or if it’s grayed out, you probably need to install the USB-to-UART drivers on your computer. Check this section: Installing the ESP8266 NodeMCU USB Drivers.

Now, you just need to click on the Upload button.

Arduino IDE 2 Upload Button

After a few seconds, the upload should be complete.

ESP8266 NodeMCU Arduino IDE 2.0 Upload Successful Programming demonstration

The ESP8266 on-board LED should be blinking every second.

ESP8266 NodeMCU board running blink LED example code Arduino IDE 2.0

Serial Monitor

You can click on the Serial Monitor icon to open the Serial Monitor tab.

Open Arduino IDE Serial Monitor Arduino IDE 2.0 ESP8266 NodeMCU

That’s it! You’ve installed the ESP8266 Boards successfully in Arduino IDE 2 and now you know how to upload code to the board.

Uploading Code to ESP-01

If you’re using an ESP-01, read this section to learn how to upload code to the board.

The ESP-01 doesn’t have a built-in programmer, so uploading code is not as straightforward. The easiest way to upload code to the ESP-01 is to get an ESP-01 programmer. There are several available online, the picture below shows an example of an ESP-01 programmer.

ESP-01 ESP8266 Programmer

This is very practical because you just need to connect the ESP-01 to the module and the module to your computer to program the ESP8266.

Another alternative is using an FTDI programmer. You’ll need to connect the ESP-01 to the FTDI programmer as shown below. Then, just connect the FTDI programmer to your computer.

ESP-01 FTDI programmer

The following table shows the connections you need to make between the ESP8266 and the FTDI programmer.

ESP8266FTDI programmer
RXTX
TX RX
CH_PD3.3V
GPIO 0GND
VCC3.3V
GND GND

If you have a brand new FTDI Programmer, you’ll probably need to install the FTDI drivers on your Windows PC. Visit this website for the official drivers. (If the COM port is grayed out in your Arduino IDE, it is probably because you don’t have the drivers installed).

Then, you just need to connect the FTDI programmer to your computer, and upload the code to the ESP8266 by clicking on the upload button.

Arduino IDE 2 Upload Button

Using the Serial Monitor with ESP-01

If you’re using an ESP-01, after uploading the code, disconnect GPIO 0 from GND to disable the programming mode. Then, connect the RST pin to GND for approximately one second and then disconnect to reset the board.

ESP8266 Examples

In the Arduino IDE, you can find multiple examples for the ESP8266 board. First, make sure you have an ESP8266 board selected in Tools Board. Then, simply go to File Examples and check out the examples under the ESP8266 section.

ESP8266 Examples Arduino IDE

Update the ESP8266 Core in Arduino IDE

It’s a good practice to periodically ensure you have the latest version of the ESP8266 boards installed. In Arduino IDE 2, you’ll receive a pop-up notification prompting you to update whenever a new version becomes available.

Installing the ESP8266 NodeMCU USB Drivers

After connecting the ESP8266 board to your computer, if the COM port in Arduino IDE is grayed out, it means you don’t have the required USB drivers installed on your computer.

Most ESP8266 boards either use the CP2101 or CH340 drivers. Check the USB to UART converter on your board, and install the corresponding drivers.

ESP8266 CP2101 vs CH340 Converter

You’ll easily find instructions with a quick Google search. For the CP2102 drivers, you can follow one of the following guides:

Best Resources to Get Started with the ESP8266

If you want to build your own IoT and Home Automation projects with the ESP8266 boards and need some help getting started, we have the best resources for you.

  • Home Automation with the ESP8266: this is our premium ESP8266 eBook. Learn how to use the ESP8266 to automate your house. Even if you are an absolute beginner, you’ll be able to follow along and come up with your own IoT projects.

Wrapping Up

We hope you’ve found this getting started guide useful. I think we’ve included all the required information for you to get started. You learned what is an ESP8266, how to choose an ESP8266 development board, and how to upload new code to the ESP8266 using Arduino IDE.

Want to learn more? We recommend the following tutorials to get started:

Also, don’t forget to take a look at the ESP8266 pinout to learn how to use its GPIOs:

If you’re serious about learning about the ESP8266 board, we recommend taking a look at our ESP8266-dedicated eBook:

You can also check all our free ESP8266 tutorials and guides on the following link:

If you like ESP8266 make sure you subscribe to our blog, so you don’t miss upcoming projects.

Do you have any questions? Leave a comment down below!

Thanks for reading.



Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »
Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »

Recommended Resources

Build a Home Automation System from Scratch » With Raspberry Pi, ESP8266, Arduino, and Node-RED.

Home Automation using ESP8266 eBook and video course » Build IoT and home automation projects.

Arduino Step-by-Step Projects » Build 25 Arduino projects with our course, even with no prior experience!

What to Read Next…


Enjoyed this project? Stay updated by subscribing our newsletter!

94 thoughts on “Getting Started with ESP8266 NodeMCU Development Board”

  1. I just ordered some of the units and I am looking forward to your next video on the subject, they look very interesting thanks. Cheers, TerrenceJ.

    Reply
    • Yup they are very interesting! I’ll be working on a new project in a few days.
      Check out this video in the meanwhile to see how you can request data from the web: youtube.com/watch?v=qU76yWHeQuw

      Reply
  2. Hi Rui, do you remember me?
    I have a trouble with arduino.
    What kind of bluetooth module acceptable for Arduino leonardo? I wanna connect my leonardo with my Laptop by bluetooth.
    Do you have any solution for this problem?

    Reply
  3. Hi, i’ve heard this module draws way too much power for the Arduino to handle, and that it is recommended to use and external source.
    Did you notice any issues by using the 3.3v arduino output?
    Thanks.

    Reply
    • Hi Zam,
      That’s a good question, people say that the USB port can’t supply enough current.
      And that’s correct according to the ESP8266 module datasheet.
      But in practice I’ve never had any problems. And I’ve been playing with my module for hours.
      It always worked for me like this….

      Reply
  4. I miss some sample code demonstrating the transceiver’s use. Sure, it’s connected to the serial comm pins and therefore it would be driven by sending AT commands and reading back responses through Serial functions, but it would be nice to have a concrete example showing how to setup / close a connection, send / receive data, etc.

    Reply
  5. Hi Rui, nice tutorial!
    So the RX and TX pins will not have problem when connected to RX and TX pins of Arduino UNO whose high value is +5V? Don’t we need to put a voltage divider or level converter in between?

    Reply
  6. Hi, I hooked this up as described and I am getting [Vendor:www.ai-thinker.com Version:0.9.2.4]

    ready

    But any AT commands only return garbage. Any ideas why?

    Reply
  7. Nice tutorial. But i got stuck! I’m using Arduino Due. When I am giving commands on Serial monitor, I’m getting junk values, though I tried every possible baud rates. I also set it for NL CR mode but nothing happens. Please solve it.
    Thanks

    Reply
          • Ciao a tutti,

            I’m trying to upload a firmware in a ESP-01.

            when i try to connect my ESP to FTDI with GPIO0 free i get

            dl.dropboxusercontent.com/u/17441460/Esp8266_gpio0Libero.png

            but when i put GPIO0 to GND my ESP 01 start to send me junk
            dl.dropboxusercontent.com/u/17441460/Esp8266_gpio0GND.png

            that is the circuit
            dl.dropboxusercontent.com/u/17441460/circuito.jpg

            where i’m wrong?

            thanks a lot,

            Vince

  8. Dear Author,

    For the latest firmware please find it at drive.google.com/open?id=0B3dUKfqzZnlwRjFaNTUzZFptbzg&authuser=2

    or wiki page: electrodragon.com/w/ESP8266

    The old link had been changed, sorry for it, and thank you!

    Reply
  9. i tried to connect the esp8266 to the arduino for home automation system.
    but the firmware flasher shows error “Failed to connect”.
    please reply!

    Reply
      • I am trying to connect the esp 8266 to the arduino and trying to control a bulb using it. But there is a problem flashing the firmware.
        I made the connections according to the following link:
        iot-playground.com/2-uncategorised/17-esp8266-wifi-module-and-5v-arduino-connection
        I also connected the GPIO0 to gnd and rst,chpd,GPIO2 to 3.3v
        But there is an error in flashing the firmware . “failed to connect”.
        And also flashed blank code to the arduino before trying to update the firmware as instructed by some links.

        Please help!!

        Reply
          • We tried all possible combinations but to no success…
            We also tried conncting a capacitor between vcc and ground and a pull up resistor between vcc and ch_pd .
            But the module does nt reply to the AT commands
            Can u give us a link for the correct connections??
            That would be a great help…
            Thanks

  10. i tried to connect the esp8266 to the arduino for home automation system.
    but the firmware flasher shows error “Failed to connect”.
    please reply!

    Reply
  11. It is not clear how to use the folders & files that I see when I go to the link you provided to “Download the latest version of firmware available”. How do I use these files with the firmware flasher?

    Reply
  12. hi Rui,

    thanks for the tutorials. I have download the firmware flasher and followed the steps as shown. However after setting my COM port and click start, there was no green check icon appeared. How do I solve this?

    Cheers!

    Reply
  13. I have 2 ESP8266-01 modules. I have made a breakout board with all precautions.
    – used LM1117 – 3.3V regulator. An ATX power supply gives 5VDC to get 3.3 VDC at ESP Vcc
    – Grounds are connected.
    – CH_PD & RESET pulled up to Vcc by 10K.
    – GPIO0 & GPIO2 pulled up with 6k8.
    – I use a PC with COM1 serial port connected to a RS232 (MAX232) to TTL converter and TeraTerm.
    – Connected ESP Rx through R/2R (R=4k7) level shifter to TTL Rx and ESP Tx to TTL Tx.
    When I power up the ESP sends out the message on TeraTerm showing version 9.2.4 with READY. The blue LED flashes with transmit. This means connections are fine.
    But the ESP does not respond to any AT commands. The blue LED does not flash when I send any AT command. I tried many baudrates with CR/LF combinations. I pressed ENTER and then Cntrl j. No response. This is same for both my ESP modules.
    Can someone please help resolve this very basic issue? What is the configuration for version 9.2.4?

    Reply
  14. Hi Rui,

    Is it mandatory we need to update the Formware ?

    If we directly run the Arduino code by connecting esp8266 will it not work ?

    Please respond. We have ordered the necessary hardware.

    Thx

    Reply
  15. Hola, he intentado programar el modulo como pone en la guía pero en el programa no aparece el icono de correcto, ha estado durante 5 minutos y nada cambia, el led rx del arduino está parpadeando continuamente.

    Reply
  16. Hi Rui! I have the Arduino connected to the wifi ESP8266 module and when I run an empty code in the arduino it let me execute the AT commands in the serial monitor. Doing this all the AT commands are working (the module connects with the wifi modem). However, when I submit any Arduino code (other peoples code) that uses the ESP8266 to connect to the wifi modem (and thus the internet), it doesn’t work. I mean, the AT commands that the code sent are not doing anything, they are not even written in the serial monitor, neither the answers that should be received after executing them.

    Do you have any clue on what can be happening?

    Thank you!

    Reply
  17. Hello Rui,
    Great series and really helpful for starting the experiments on ESP8266.

    I am working on making camera module with OV7670 and arduino along with SD card.

    Wanted to check if we can use these wifi modules for transferring the pictures taken via arduino , OV7670 to my server. Or using the eye-fi card is the only option.

    Thanks in advance.
    Rahul

    Reply
  18. Hi Rui,
    I wanted to ask if you can do a tutorial that talks about an application that controls the brightness of a lamp using esp 8266 module and the Arduino Mega 2560 ca for me would be a great help and thank you in advance

    Reply
  19. Hi
    Did everything like you said (was confused about the weird drawing with a ftdi) but solved that in the line that GPIO 0 must be connected to GND pin.
    Flashed it, get the green check icon but …

    Cant’t do nothing with it.
    Not responce from arduino serial monitor whatever command I send.
    Just blank.
    Did it go wrong or what?

    Ray.

    Reply
  20. Hi Everyone

    If this module is able to work independently, without the use of aurdino board ? If yes then how ?

    Thanks in advance.

    Reply
  21. When I run AT+GMR, it returns the following output:

    “AT+GMR
    AT version:0.21.0.0
    SDK version:0.9.5

    OK”

    Does anyone know what’s going on here? All the firmware updates I’m seeing are to AT version 0.9.5.0, but mine says it’s 0.21.0.0? The SDK seems to be up to date, at least…

    Reply
  22. Hi Rue & others,
    I came across an interesting problem that I have had for about two days & have lost about 10 hours or so.
    Microsoft have just done a update where they push out a new FTDI driver, which cripples the FTDI. What makes it confusing is that both RX & TX LEDS flash OK, but the driver sends only 0’s back to the PC.
    I hear that some FTDI’s are bricked, but in my case all I needed to do was to roll back the driver to a 2011 driver.

    Bearing in mind that the FTDI is probably the most popular chip to use, this might cause a few headaches.

    Rue, you might like to pass this it on via your various information dissemination methods and perhaps put it in your most excellent
    Home Automation book.

    Lee

    PS. Will you be doing an update on Home Automation in the future? Are you looking for feedback?

    Reply
    • Hi Lee,
      Thank you for your comment. You are right FTDI bricked counterfeit chips with the new updated. Luckily there’s a way to fix that! It’s explained already in the Home Automation Using ESP8266 eBook. It’s on Unit 2 in the heading “Extra Tips for Windows Users”. I hope this helps!
      thanks again,
      -Rui

      Reply
  23. Hi rui i have your post about esp8266, but i m having a problem i m using it with arduino uno . When i snd AT+RST i gives invalid instesd of ready. I m hoping that you could help me with it.

    Reply
  24. Hi, All
    I am trying to interface ESP8266 with LPC2148,
    I have done hardware setup as:
    VCC———–3V3(LPC2148)
    GND———-GND(LPC2148)
    RST———–GND(LPC2148)
    CH_PD——-3V3(LPC2148)
    RX————TX
    TX————RX
    RED LED is ON, but BLUE LED is not blinking?
    What would be the problem.
    Thank you all.

    Reply
  25. I also encourage you to add a 3.3v level shifter or a voltage divider to your ESP8266 RX pin.

    Level shift != voltage divider ?

    I am beginner. Help me with this issue please.

    Reply
    • Hi Alexandre,
      Yes, they are different, but they kinda do the same thing.
      A voltage divider simply divides the voltage in half and it can lower the quality of a signal. If you’re using a voltage divider at a higher baud rate your data might get corrupted.
      A logic shifter allows you to lower the voltage without lowering its quality.

      Reply
  26. hello Rui,
    is there any special firmware for special project?
    if yes, which is the exact firmware for a web server?
    can u share the link of this firmware?

    Reply
  27. Helllo Rui,

    I am new to electronic,

    I want to control my Lights and Fan using this setup, So i bought following
    5 ESP 8266 – 01
    2 5V 4 channel relay
    10 AMS1117 3.3v
    5v Power Supply (I am using mobile charger)
    10 1K resistor
    10 2N2222 transistors

    I am able to upload the program to arduino PRO MINI (5v) module. but not able to hookup my ESP8266 – 01 and arduino PRO MINI (5v) and get it work. I tried connecting ESP8266 -01 to PC using USB to Serial module and my ESP8266 -01 response fast and easy. How I can hookup my ESP8266 to my 5v arduino PRO MINI?
    I have tried this link
    iot-playground.com/2-uncategorised/17-esp8266-wifi-module-and-5v-arduino-connection

    but as i mention I am new to electronic I am not able to understand the diagrams shown there.

    Please help I am stuck since last three weeks.

    Thanks in Advance

    Reply
  28. hey, I have tried esp8266 development board, cause it doesn’t work. I have used your web server tutorial, but it doesn’t showip adresas and when I reupload the sketch, it says: “only one tcp server allowed”

    Reply
  29. Hi
    I have found that whenever the esp8266 quits an access point (after using AT+CWQAP),and power is switched off.After the power has been switched on again I found that it connects to the network I had quit .Is this expected?

    Reply
  30. Hi Rui,

    I have had lots of trouble with the FTDI programmer and its power supply. Only after the connection of an external power supply everything worked fine. It seems, that the FTDI programmer does not deliver enough current with its 3,3 V power supply.

    Regards, Michael

    Reply
  31. kindly please try to help me ..
    i want to send and receive from android to arduino .. that means when i press a button on my android application to turn a LED on / off while the arduino is connected to a tft touch screen that is connected to the master arduino in my home which displays the current state for each zone in my home and control them .. i think that i need a cloud server (web server,hhtp server .. )
    i have these components :
    arduino uno / esp8266-01 / breadboard / wifi shield cc3000 /ethernet shield ..
    waiting your reply

    Reply
  32. Thanks a ton for this tutorial buddy!!! I was breaking my head over this for days!!! at last figured it out using your tutorial…Thanks a ton buddy

    Reply
  33. Hi Rui!
    I just wanted to start by saying thank so much for doing this tutorial. I just started doing IOT development and was wondering if you can do one on how to implement websockets into the esp8266 and how that connects to a raspberry PI? Not much info on the web about his stuff, but your tutorials have been great… Appreciate your knowledge sharing…

    Reply
  34. how to add code in ardunio software. plz help me this error coming when i am uploading code
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    Reply
  35. Excellent web info Rui !,

    Hello , I’m new in IoT , just starting , and I’m trying to choose the right board , I can see for ESP8266 CH340G NodeMcu V3 Lua ESP-12E Micro USB ESP8266 CP2102 in alliexpress , but the CH340 and the CP2102 are two USB chip option , what is better , why ?,

    And the Second doubt , If the ESP module has the NodeMcu Lua flashed inside , Can I use it with Arduino IDE ? , or must be reflashed ,

    Thanks For the advice ,

    Reply
  36. ESP-01 is really very hard to get working. I tried for 2 weeks and their were no standard articles to get it working with arduino. Can you please share one and only specific article that can help me get working arduino with ESP-01 esp8266 chip?

    Reply
  37. I want to read status of my battery bank remotely.How should I interface Arduino Uno R3,this ESP-01 ESP8266 Serial WIFI Wireless Transceiver Module,and my battery bank with Android mobile.

    Reply
  38. I installed windows 11 not long ago and now i’m having issues with my esp 8266 01 modules. I can upload code and run it but it will only sporadically connect to my home wifi. Some sketches will not work period. I upload the code but the sketch does not run eg your sketch to get MAC address of the 8266. I’m getting very frustrated and need some help. Has anyone else experienced these issues?

    Reply
  39. In testing see that when the ESP8266 connects to my hotspot, it reports a “Device Name”. For example, at the moment mine says “ESP-141DF4”. I can’t find any information on how or where this device name comes from. I have to assume it is burned into the chip just like a mac address is. I can’t find how to get that device name from within my sketch.

    Anyone have an idea?

    Reply

Leave a Comment

Download Our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.