{"id":4807,"date":"2024-08-05T01:02:00","date_gmt":"2024-08-05T01:02:00","guid":{"rendered":"http:\/\/randomnerdtutorials.com\/?p=4807"},"modified":"2024-08-05T10:42:22","modified_gmt":"2024-08-05T10:42:22","slug":"getting-started-with-esp8266-wifi-transceiver-review","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/getting-started-with-esp8266-wifi-transceiver-review\/","title":{"rendered":"Getting Started with ESP8266 NodeMCU Development Board"},"content":{"rendered":"\n<p>New to the ESP8266? Start here! The ESP8266 is a Wi-Fi System on a Chip (SoC) produced by Espressif Systems. It&#8217;s great for IoT and Home Automation projects. This article is a getting started guide for the ESP8266 development board.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Getting Started with ESP8266 NodeMCU Wi-Fi Transceiver\" class=\"wp-image-120468\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<p class=\"rntbox rntclgray\"><em>Updated 5 August 2024<\/em><\/p>\n\n\n\n<p>New to the ESP8266? You&#8217;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.<\/p>\n\n\n\n<p><strong>Table of Contents<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#esp8266-intro\">Introducing the ESP8266 NodeMCU<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"#esp8266-specs\">ESP8266 Technical Data<\/a><\/li>\n\n\n\n<li><a href=\"#esp8266-vs-esp32\">ESP8266 vs ESP32<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"#esp8266-versions\">ESP8266 Versions<\/a><\/li>\n\n\n\n<li><a href=\"#esp8266-development-boards\">ESP8266 Development Boards<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"#choose-esp8266-boards\">How to choose an ESP8266 development board?<\/a><\/li>\n\n\n\n<li><a href=\"#best-esp8266-beginners\">What is the best ESP8266 development board for beginners?<\/a><\/li>\n\n\n\n<li><a href=\"#esp8266-12-e-nodemcu-kit\">ESP8266-12E NodeMCU Kit<\/a><\/li>\n\n\n\n<li><a href=\"#other-esp8266-development-boards\">Other ESP8266 Development Boards<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"#esp8266-pinout\">ESP8266 GPIOs Pinout Guide<\/a><\/li>\n\n\n\n<li><a href=\"#esp8266-programming-environments\">How to program the ESP8266?<\/a><\/li>\n\n\n\n<li><a href=\"#esp8266-arduino-ide\">ESP8266 with Arduino IDE<\/a><\/li>\n\n\n\n<li><a href=\"#best-esp8266-resources\">Best resources to get started with the ESP8266<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-intro\">Introducing the ESP8266 NodeMCU<\/h2>\n\n\n\n<p><strong>What is an ESP8266 NodeMCU?<\/strong> The ESP8266 is a low-cost Wi-Fi chip developed by Espressif Systems.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"300\" height=\"60\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/espressif-logo.png?resize=300%2C60&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU Espressif Systems\" class=\"wp-image-120406\"\/><\/figure><\/div>\n\n\n<p>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.<\/p>\n\n\n\n<p>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:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Low-cost<\/strong>: you can get ESP8266 boards starting at $3 (or less) depending on the model.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Low-power<\/strong>: the ESP8266 consumes very little power when compared with other microcontrollers and can even go into <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-deep-sleep-with-arduino-ide\/\" target=\"_blank\" rel=\"noopener\">deep sleep <\/a>mode to consume less power;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wi-Fi<\/strong>: the ESP8266 can generate its own Wi-Fi network (<a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-access-point-ap-web-server\/\">access point<\/a>) 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.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/randomnerdtutorials.com\/installing-esp8266-nodemcu-arduino-ide-2-0\/\" title=\"\">Compatible with the Arduino \u201cprogramming language\u201d<\/a><\/strong>: those that are already familiar with programming the Arduino board, were happy to know that they can program the ESP8266 in the Arduino style.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-micropython-esp32-esp8266\/\"><strong>Compatible with MicroPython<\/strong><\/a>: you can program the ESP8266 with MicroPython firmware, which is a re-implementation of Python 3 targeted for microcontrollers and embedded systems.<\/li>\n<\/ul>\n\n\n\n<p><strong>What can you do with an ESP8266?<\/strong><\/p>\n\n\n\n<p>Here&#8217;s a short list of what you can do with an ESP8266:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-web-server\/\">Create a web server to control outputs<\/a>;<\/li>\n\n\n\n<li>Create a <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide\/\">web server to display sensor readings<\/a>;<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-http-get-post-arduino\/\">Send HTTP requests<\/a>;<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-digital-inputs-outputs-arduino\/\">Control outputs, read inputs<\/a>, and set <a href=\"https:\/\/randomnerdtutorials.com\/interrupts-timers-esp8266-arduino-ide-nodemcu\/\">interrupts<\/a>;<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/low-power-weather-station-datalogger-using-esp8266-bme280-micropython\/\">Datalogging projects<\/a>;<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-http-get-open-weather-map-thingspeak-arduino\/\">Communicate with third-party services<\/a>;<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-firebase-web-app\/\" target=\"_blank\" rel=\"noopener\">Create web applications<\/a>;<\/li>\n\n\n\n<li>Send <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-send-email-smtp-server-arduino\/\">emails<\/a>, <a href=\"https:\/\/randomnerdtutorials.com\/telegram-esp8266-nodemcu-motion-detection-arduino\/\">notifications<\/a>, post tweets, etc.<\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\">And much more<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esp8266-specs\">ESP8266 Technical Data<\/h3>\n\n\n\n<p>For more details about the specs of the ESP8266, check the following list:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"309\" height=\"238\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-WiFi-chip.png?resize=309%2C238&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266-12E-Wi-Fi-chip\" class=\"wp-image-120521\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-WiFi-chip.png?w=309&amp;quality=100&amp;strip=all&amp;ssl=1 309w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-WiFi-chip.png?resize=300%2C231&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 309px) 100vw, 309px\" \/><figcaption class=\"wp-element-caption\">ESP8266-12E Wi-Fi chip<\/figcaption><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Processor: L106 32-bit RISC microprocessor core based on the Tensilica Diamond Standard 106Micro running at 80 or 160 MHz<\/li>\n\n\n\n<li>Memory:\n<ul class=\"wp-block-list\">\n<li>32 KiB instruction RAM<\/li>\n\n\n\n<li>32 KiB instruction cache RAM<\/li>\n\n\n\n<li>80 KiB user-data RAM<\/li>\n\n\n\n<li>16 KiB ETS system-data RAM<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typically included)<\/li>\n\n\n\n<li>IEEE 802.11 b\/g\/n Wi-Fi<\/li>\n\n\n\n<li>Integrated TR switch, balun, LNA, power amplifier, and matching network<\/li>\n\n\n\n<li>WEP or WPA\/WPA2 authentication, or open networks<\/li>\n\n\n\n<li>17 GPIO pins<\/li>\n\n\n\n<li>Serial Peripheral Interface Bus (SPI)<\/li>\n\n\n\n<li>I\u00b2C (software implementation)<\/li>\n\n\n\n<li>I\u00b2S interfaces with DMA (sharing pins with GPIO)<\/li>\n\n\n\n<li>UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2<\/li>\n\n\n\n<li>10-bit ADC (successive approximation ADC)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esp8266-vs-esp32\">Main Differences Between ESP8266 and ESP32<\/h3>\n\n\n\n<p>There is a successor of the ESP8266\u2014the <a href=\"https:\/\/randomnerdtutorials.com\/getting-started-with-esp32\/\">ESP32<\/a>. 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&#8217;t worry. It works great, it has a huge community and it does the job for most DIY IoT projects.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 vs ESP8266 Development Boards\" class=\"wp-image-88121\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/esp32-vs-esp8266-devlopment-boards.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The following table shows the main differences between the ESP8266 and the ESP32 chips:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>ESP8266<\/strong><\/td><td><strong>ESP32<\/strong><\/td><\/tr><tr><td><strong>MCU<\/strong><\/td><td>Xtensa Single-core 32-bit L106<\/td><td>Xtensa Dual-Core 32-bit LX6 with 600 DMIPS<\/td><\/tr><tr><td><strong>802.11 b\/g\/n Wi-Fi<\/strong><\/td><td>HT20<\/td><td>HT40<\/td><\/tr><tr><td><strong>Bluetooth<\/strong><\/td><td><strong>X<\/strong><\/td><td>Bluetooth 4.2 and BLE<\/td><\/tr><tr><td><strong>Typical Frequency<\/strong><\/td><td>80 MHz<\/td><td>160 MHz<\/td><\/tr><tr><td><strong>SRAM<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>Flash<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>GPIO<\/strong><\/td><td>17<\/td><td>34<\/td><\/tr><tr><td><strong>Hardware \/Software PWM<\/strong><\/td><td>None \/ 8 channels<\/td><td>None \/ 16 channels<\/td><\/tr><tr><td><strong>SPI\/I2C\/I2S\/UART<\/strong><\/td><td>2\/1\/2\/2<\/td><td>4\/2\/2\/2<\/td><\/tr><tr><td><strong>ADC<\/strong><\/td><td>10-bit<\/td><td>12-bit<\/td><\/tr><tr><td><strong>CAN<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>Ethernet MAC Interface<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>Touch Sensor<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>Temperature Sensor<\/strong><\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong>(old versions)<\/td><\/tr><tr><td><strong>Hall effect senso<\/strong>r<\/td><td><strong>X<\/strong><\/td><td><strong>\u2713<\/strong><\/td><\/tr><tr><td><strong>Price<\/strong><\/td><td>$ (3$ &#8211; $6)<\/td><td>$$ ($6 &#8211; $12)<\/td><\/tr><tr><td><strong>Where to buy<\/strong><\/td><td><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\" target=\"_blank\" rel=\"noopener\">Best ESP8266 Wi-Fi Development Boards<\/a><\/td><td><a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\" target=\"_blank\" rel=\"noopener\">ESP32 Development Boards Review and Comparison<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>For a more detailed analysis of the differences between those boards, we recommend reading the following article:&nbsp;<a href=\"https:\/\/makeradvisor.com\/esp32-vs-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 vs ESP8266 \u2013 Pros and Cons<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-versions\">ESP8266 Versions<\/h2>\n\n\n\n<p>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&#8217;ll find a wide variety of development boards with ESP-12E or ESP-12F chips.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"379\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-different-modules.jpg?resize=576%2C379&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU Development Boards Versions\" class=\"wp-image-120524\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-different-modules.jpg?w=576&amp;quality=100&amp;strip=all&amp;ssl=1 576w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-different-modules.jpg?resize=300%2C197&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-development-boards\">ESP8266 NodeMCU Development Boards<\/h2>\n\n\n\n<p>Using bare chips or modules is not easy or practical. For learning, testing, and prototyping, you&#8217;ll want to use ESP8266 NodeMCU development boards.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-Pinout-GPIO-Pin-Reference-Guide.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU Development Boards\" class=\"wp-image-84977\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-Pinout-GPIO-Pin-Reference-Guide.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-Pinout-GPIO-Pin-Reference-Guide.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-Pinout-GPIO-Pin-Reference-Guide.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-Pinout-GPIO-Pin-Reference-Guide.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<p>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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"choose-esp8266-boards\">How to Choose an ESP8266 Development Board?<\/h3>\n\n\n\n<p>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:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>USB-to-UART interface and voltage regulator circuit<\/strong>. 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.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BOOT and RESET\/EN buttons<\/strong>\u00a0to put the board in flashing mode or reset (restart) the board.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pin configuration and the number of pins.<\/strong>\u00a0To 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\u2019re getting. Additionally, some boards have more accessible GPIOs than others. That&#8217;s a factor you should take into account depending on your project features.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Size<\/strong>. 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.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Antenna connector<\/strong>. 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.<\/li>\n<\/ul>\n\n\n\n<p id=\"best-esp8266-beginners\"><strong>What is the best ESP8266 development board for beginners?<\/strong><\/p>\n\n\n\n<p>The best ESP8266 development board for your project will depend on what you intend to do. If you&#8217;re just getting started with the ESP8266 board, we recommend using the<a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\" target=\"_blank\" rel=\"noreferrer noopener\"> ESP8266-12E NodeMCU Kit<\/a>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esp8266-12-e-nodemcu-kit\">ESP8266-12E NodeMCU Kit<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-NodeMCU-kit-development-board.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 12E NodeMCU Kit\" class=\"wp-image-120590\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-NodeMCU-kit-development-board.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-12E-NodeMCU-kit-development-board.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The ESP12-E NodeMCU Kit is one of the most used ESP8266 development boards. It features 4MB of flash memory,&nbsp;<a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\">access to 11 GPIO pins<\/a>, and one&nbsp;<a href=\"https:\/\/randomnerdtutorials.com\/esp8266-adc-reading-analog-values-with-nodemcu\/\" target=\"_blank\" rel=\"noreferrer noopener\">analog-to-digital converter (ADC)<\/a>&nbsp;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.<\/p>\n\n\n\n<p>Uploading code to the board is as easy as uploading code to the Arduino. There\u2019s 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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>This is the ESP8266 board model we use more often in our Wi-Fi and IoT projects. It is very versatile, and it\u2019s great for beginners. So, if this is your first time with the ESP8266, this is the module we recommend: <a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\" target=\"_blank\" rel=\"noopener\">ESP8266 12-E NodeMCU Kit<\/a>.<\/p>\n\n\n\n<p><strong>Where to Buy?<\/strong><\/p>\n\n\n\n<p>You can check the following link to find the ESP8266-12E NodeMCU Kit in different stores:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266 Wi-Fi Development Boards Comparison<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"other-esp8266-development-boards\">Other Popular ESP8266 Development Boards<\/h3>\n\n\n\n<p>Other very popular ESP8266 boards are the <a href=\"https:\/\/makeradvisor.com\/tools\/esp-01-wi-fi-board\/\" target=\"_blank\" rel=\"noopener\">ESP-01<\/a> and the <a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-wemos-d1-mini-wi-fi-board\/\" target=\"_blank\" rel=\"noopener\">ESP8266 Wemos D1 mini<\/a>.<\/p>\n\n\n\n<p>While I don&#8217;t recommend the ESP-01 for beginners, the ESP8266 Wemos D1 mini can be a good choice.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">ESP-01<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"355\" height=\"260\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01.jpg?resize=355%2C260&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP-01 ESP8266\" class=\"wp-image-120591\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01.jpg?w=355&amp;quality=100&amp;strip=all&amp;ssl=1 355w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01.jpg?resize=300%2C220&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 355px) 100vw, 355px\" \/><figcaption class=\"wp-element-caption\">ESP-01<\/figcaption><\/figure><\/div>\n\n\n<p>The ESP-01 is super small and fits in any enclosure, so it&#8217;s perfect for finished projects. However, it is very limited in the number of accessible GPIOs and doesn\u2019t 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\u2019t come with a USB-to-serial converter, which means you need an&nbsp;<a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noopener\">FTDI programmer<\/a>&nbsp;or a specific <a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-01-usb-programmer\/\" target=\"_blank\" rel=\"noopener\">programmer board<\/a> to upload code.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">WeMos D1 Mini<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"318\" height=\"318\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-wemos-d1-mini.jpg?resize=318%2C318&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 Wemos D1 mini\" class=\"wp-image-120592\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-wemos-d1-mini.jpg?w=318&amp;quality=100&amp;strip=all&amp;ssl=1 318w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-wemos-d1-mini.jpg?resize=300%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-wemos-d1-mini.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 318px) 100vw, 318px\" \/><figcaption class=\"wp-element-caption\">ESP8266 WeMos D1 Mini<\/figcaption><\/figure><\/div>\n\n\n<p>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&nbsp;<a href=\"https:\/\/makeradvisor.com\/top-10-wemos-d1-mini-board-accessories\/\" target=\"_blank\" rel=\"noopener\">shields for the D1 mini board<\/a>, 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.<\/p>\n\n\n\n<p>For a comparison between the different ESP8266 boards, you can read the following article:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\" target=\"_blank\" rel=\"noopener\">Best ESP8266 Wi-Fi Development Board Comparison<\/a><\/li>\n<\/ul>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>In the following table, you can see the main differences between the ESP-01, ESP8266-12E NodeMCU Kit, and the WeMos D1 Mini.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>ESP-01<\/strong><\/td><td><strong>ESP-12E NodeMCU<\/strong><\/td><td><strong>WeMos D1 Mini<\/strong><\/td><\/tr><tr><td><strong>GPIOS<\/strong><\/td><td>4<br>(including TX and RX)<\/td><td>11<\/td><td>11<\/td><\/tr><tr><td><strong>ADC Pins<\/strong><\/td><td>1<\/td><td>1<\/td><td>1<\/td><\/tr><tr><td><strong>Flash Memory<\/strong><\/td><td>1MB (upgraded<br>version)<\/td><td>4MB<\/td><td>4MB<\/td><\/tr><tr><td><strong>Breadboard<br>friendly<\/strong><\/td><td>x<\/td><td>\u2713<\/td><td>\u2713<\/td><\/tr><tr><td><strong>USB to Serial<br>Converter<\/strong><\/td><td>x<\/td><td>\u2713<\/td><td>\u2713<\/td><\/tr><tr><td><strong>Size<\/strong><\/td><td>24.75mm x 14.5mm<br>(0.97&#8221; x 0.57&#8221;)<\/td><td>48.55mm x 25.6mm<br>(1.91&#8221; x 1&#8221;)<\/td><td>34.2mm x 25.6mm<br>(1.35&#8221; x 1&#8221;)<\/td><\/tr><tr><td><strong>Price<\/strong><\/td><td>$<\/td><td>$$<\/td><td>$$<\/td><\/tr><tr><td><strong>Where to Buy?<\/strong><\/td><td><a href=\"https:\/\/makeradvisor.com\/tools\/esp-01-wi-fi-board\/\" target=\"_blank\" rel=\"noopener\">ESP-01<\/a><\/td><td><a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\" target=\"_blank\" rel=\"noopener\">ESP-12E NodeMCU<\/a><\/td><td><a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-wemos-d1-mini-wi-fi-board\/\" target=\"_blank\" rel=\"noopener\">WeMos D1 Mini<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-pinout\">ESP8266 NodeMCU Pinout<\/h2>\n\n\n\n<p>The most widely used ESP8266 NodeMCU development boards are the <a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266-12E NodeMCU Kit<\/a>, the <a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-wemos-d1-mini-wi-fi-board\/\" target=\"_blank\" rel=\"noreferrer noopener\">Wemos D1 Mini<\/a>, and the <a href=\"https:\/\/makeradvisor.com\/tools\/esp-01-wi-fi-board\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP-01<\/a>. We&#8217;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.<\/p>\n\n\n\n<p>If you get a different board, you should be able to find its pinout with a quick google search. Here we&#8217;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: <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\">ESP8266 Pinout Reference: Which GPIO pins should you use?<\/a><\/p>\n\n\n\n<p><strong>Power Pins<\/strong><\/p>\n\n\n\n<p>Usually, all boards come with power pins: 3V3, GND, and VIN. You can use these pins to power the board (if you\u2019re not providing power through the USB port), or to get power for other peripherals (if you\u2019re powering the board using the USB port).<\/p>\n\n\n\n<p><strong>General Purpose Input Output Pins (GPIOs)<\/strong><\/p>\n\n\n\n<p>One important thing to notice about the ESP8266 is that the GPIO number doesn\u2019t 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.<\/p>\n\n\n\n<p>The ESP8266 peripherals include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>17 GPIOs (usually not all GPIOs are accessible on the ESP8266 development boards)<\/li>\n\n\n\n<li>SPI<\/li>\n\n\n\n<li>I2C (implemented on software)<\/li>\n\n\n\n<li>I2S interfaces with DMA<\/li>\n\n\n\n<li>UART<\/li>\n\n\n\n<li>10-bit ADC<\/li>\n<\/ul>\n\n\n\n<p>Different ESP8266 GPIOs have specific features, so you must choose the pins for your projects wisely. Otherwise, you may end up getting unexpected results.<\/p>\n\n\n\n<p>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: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\">ESP8266 Pinout Reference: Which GPIO pins should you use?<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">ESP-12E NodeMCU Kit Pinout<\/h3>\n\n\n\n<p>The following picture shows an overview of the ESP-12E NodeMCU Kit pinout:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"817\" height=\"542\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png?resize=817%2C542&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP-12E NodeMCU Kit Pinout ESP8266\" class=\"wp-image-84967\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png?w=817&amp;quality=100&amp;strip=all&amp;ssl=1 817w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png?resize=300%2C199&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png?resize=768%2C509&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 817px) 100vw, 817px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">WeMos D1 Mini Pinout<\/h3>\n\n\n\n<p>Here&#8217;s the Wemos D1 Mini pinout:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"362\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-WeMos-D1-Mini-pinout-gpio-pin.png?resize=715%2C362&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"WeMos D1 Mini Pinout ESP8266\" class=\"wp-image-84968\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-WeMos-D1-Mini-pinout-gpio-pin.png?w=715&amp;quality=100&amp;strip=all&amp;ssl=1 715w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP8266-WeMos-D1-Mini-pinout-gpio-pin.png?resize=300%2C152&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">ESP8266-01 Pinout<\/h3>\n\n\n\n<p>Here&#8217;s the ESP-01 pinout.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"487\" height=\"232\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP-01-ESP8266-pinout-gpio-pin-1.png?resize=487%2C232&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266-01 Pinout ESP-01\" class=\"wp-image-85047\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP-01-ESP8266-pinout-gpio-pin-1.png?w=487&amp;quality=100&amp;strip=all&amp;ssl=1 487w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/05\/ESP-01-ESP8266-pinout-gpio-pin-1.png?resize=300%2C143&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 487px) 100vw, 487px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-programming-environments\">How to Program the ESP8266?<\/h2>\n\n\n\n<p>There are many different ways to program the ESP8266 using different programming languages: <a href=\"https:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/\">Arduino C\/C++ using the Arduino core for the ESP32<\/a>, <a href=\"https:\/\/randomnerdtutorials.com\/getting-started-micropython-esp32-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">Micropython<\/a>, LUA, and others.<\/p>\n\n\n\n<p>Our preferred method is programming the ESP8266 using the &#8220;Arduino programming language&#8221; with <a href=\"https:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/\">Arduino IDE<\/a> or <a href=\"https:\/\/randomnerdtutorials.com\/vs-code-platformio-ide-esp32-esp8266-arduino\/\">VS Code<\/a>. For beginners, we recommend getting started with Arduino IDE.<\/p>\n\n\n\n<p>We also have several tutorials showing <a href=\"https:\/\/randomnerdtutorials.com\/micropython-programming-with-esp32-and-esp8266\/\">how to program the ESP866 using MicroPython<\/a>. However, throughout this article, we&#8217;ll be focusing on Arduino IDE. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-arduino-ide\">Programming ESP8266 with Arduino IDE<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"204\" height=\"204\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/arduino-ide-2.jpg?resize=204%2C204&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Logo\" class=\"wp-image-159109\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/arduino-ide-2.jpg?w=204&amp;quality=100&amp;strip=all&amp;ssl=1 204w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/arduino-ide-2.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 204px) 100vw, 204px\" \/><\/figure><\/div>\n\n\n<p>To program your boards, you need an IDE to write your code. For beginners, we recommend using Arduino IDE. While it&#8217;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 <a href=\"https:\/\/randomnerdtutorials.com\/vs-code-platformio-ide-esp32-esp8266-arduino\/\">VS Code with the PlatformIO extension<\/a> instead.<\/p>\n\n\n\n<p>If you&#8217;re just getting started with the ESP8266, start with <a href=\"https:\/\/www.arduino.cc\/en\/software\" target=\"_blank\" rel=\"noopener\">Arduino IDE<\/a>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installing Arduino IDE<\/h3>\n\n\n\n<p>To run Arduino IDE, you need to install JAVA on your computer. If you don&#8217;t, go to the following website to download and install the latest version: <a href=\"http:\/\/java.com\/download\" target=\"_blank\" rel=\"noopener\">http:\/\/java.com\/download<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Downloading and Installing Arduino IDE<\/h4>\n\n\n\n<p>To download the Arduino IDE, visit the following URL:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.arduino.cc\/en\/Main\/Software\" target=\"_blank\" rel=\"noopener\">https:\/\/www.arduino.cc\/en\/Main\/Software<\/a><\/li>\n<\/ul>\n\n\n\n<p>Go to the <a href=\"https:\/\/www.arduino.cc\/en\/software#experimental-software\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino website and download the version<\/a> for your operating system.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"865\" height=\"440\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/download-arduino-ide-2-3-2.png?resize=865%2C440&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Download Arduino IDE 2.3.2\" class=\"wp-image-161387\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/download-arduino-ide-2-3-2.png?w=865&amp;quality=100&amp;strip=all&amp;ssl=1 865w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/download-arduino-ide-2-3-2.png?resize=300%2C153&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/download-arduino-ide-2-3-2.png?resize=768%2C391&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 865px) 100vw, 865px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows<\/strong>: run the file downloaded and follow the instructions in the installation guide.<\/li>\n\n\n\n<li><strong>Mac OS X<\/strong>: copy the downloaded file into your application folder.<\/li>\n\n\n\n<li><strong>Linux<\/strong>: extract the downloaded file, and open the <span class=\"rnthl rntliteral\">arduino-ide<\/span> file that will launch the IDE.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"388\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?resize=499%2C388&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2.0 installation successful Windows Mac OS X Linux\" class=\"wp-image-103670\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?w=499&amp;quality=100&amp;strip=all&amp;ssl=1 499w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?resize=300%2C233&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 499px) 100vw, 499px\" \/><\/figure><\/div>\n\n\n<p>If you have doubts, you can go to the <a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/getting-started-with-ide-v2\/ide-v2-downloading-and-installing\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino Installation Guide<\/a>.<\/p>\n\n\n\n<p><strong>Do you need an ESP8266 board? <\/strong><a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\" title=\"\">You can buy it here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing the ESP8266 NodeMCU in Arduino IDE<\/h2>\n\n\n\n<p>To install the ESP32 board in your Arduino IDE, follow these next instructions:<\/p>\n\n\n\n<p><strong>1. <\/strong>In your Arduino IDE 2, go to <strong>File <\/strong>&gt; <strong>Preferences<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-preferences-menu.png?resize=666%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 File, Preferences\" class=\"wp-image-148600\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-preferences-menu.png?w=666&amp;quality=100&amp;strip=all&amp;ssl=1 666w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-preferences-menu.png?resize=300%2C264&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n<p><strong>2.<\/strong> Copy and paste the following line to the <strong>Additional Boards Manager<\/strong> URLs field.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">https:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"501\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-IDE-2-preferences-additional-boards-manager.png?resize=750%2C501&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino 2 - Additional Boards URL\" class=\"wp-image-148599\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-IDE-2-preferences-additional-boards-manager.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-IDE-2-preferences-additional-boards-manager.png?resize=300%2C200&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p><strong>Note:<\/strong> if you already have the ESP32 boards URL, you can separate the URLs with a comma, as follows:<\/p>\n\n\n\n<p>http:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json, https:\/\/raw.githubusercontent.com\/espressif\/arduino-esp32\/gh-pages\/package_esp32_index.json\u00a0<\/p>\n\n\n\n<p>3. Open the Boards Manager. You can go to <strong>Tools <\/strong>&gt; <strong>Board <\/strong>&gt; <strong>Boards Manager&#8230;<\/strong> or you can simply click the <strong>Boards Manager <\/strong>icon in the left-side corner.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=799%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 - Boards Manager\" class=\"wp-image-148602\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?w=799&amp;quality=100&amp;strip=all&amp;ssl=1 799w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=300%2C220&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=768%2C563&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><\/figure><\/div>\n\n\n<p>4. Search for <strong>ESP8266 <\/strong>and press the install button for <strong>esp8266 by ESP8266 Community<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/install-esp8266-boards-arduino-ide-2.png?resize=769%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Install ESP8266 NodeMCU boards Arduino IDE 2\" class=\"wp-image-148604\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/install-esp8266-boards-arduino-ide-2.png?w=769&amp;quality=100&amp;strip=all&amp;ssl=1 769w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/install-esp8266-boards-arduino-ide-2.png?resize=300%2C229&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure><\/div>\n\n\n<p>That&#8217;s it. It should be installed after a few seconds.<\/p>\n\n\n\n<p>After this, restart your Arduino IDE.<\/p>\n\n\n\n<p>Then, go to <strong>Tools <\/strong>&gt; <strong>Board <\/strong>and check that you have ESP8266 boards available.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"841\" height=\"397\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-boards-installed-arduino-ide-2.jpg?resize=841%2C397&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 Boards Installed Arduino IDE 2\" class=\"wp-image-161407\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-boards-installed-arduino-ide-2.jpg?w=841&amp;quality=100&amp;strip=all&amp;ssl=1 841w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-boards-installed-arduino-ide-2.jpg?resize=300%2C142&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-boards-installed-arduino-ide-2.jpg?resize=768%2C363&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 841px) 100vw, 841px\" \/><\/figure><\/div>\n\n\n<p>Now, you&#8217;re ready to start programming your ESP8266 using Arduino IDE.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testing the Installation and Uploading Code to the ESP8266<\/h2>\n\n\n\n<p>To test the ESP8266 add-on installation, we&#8217;ll upload a simple code that blinks the on-board LED (GPIO 2).<\/p>\n\n\n\n<p>Copy the following code to your Arduino IDE:<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Rui Santos\n  Complete project details at https:\/\/RandomNerdTutorials.com\/vs-code-platformio-ide-esp32-esp8266-arduino\/\n*********\/\n\n#include &lt;Arduino.h&gt;\n\n#define LED 2\n\nvoid setup() {\n  \/\/ put your setup code here, to run once:\n  Serial.begin(115200);\n  pinMode(LED, OUTPUT);\n}\n\nvoid loop() {\n  \/\/ put your main code here, to run repeatedly:\n  digitalWrite(LED, HIGH);\n  Serial.println(&quot;LED is on&quot;);\n  delay(1000);\n  digitalWrite(LED, LOW);\n  Serial.println(&quot;LED is off&quot;);\n  delay(1000);\n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP\/ESP_Blink_VS_Code.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Uploading the Sketch<\/h3>\n\n\n\n<p>Connect your ESP8266 development board to your computer using a USB cable. <a href=\"#upload-code-esp8266-01\" title=\"\">If you&#8217;re using an ESP-01, check this section<\/a>.<\/p>\n\n\n\n<p class=\"rntbox rntcred\"><strong>Warning: <\/strong> you must use a USB cable with data wires. Some USB cables from chargers or power banks are power only and they don\u2019t transfer data\u2014these won\u2019t work.<\/p>\n\n\n\n<p>Select your board before uploading the code. On the top drop-down menu, click on &#8220;<strong>Select other board and port&#8230;<\/strong>&#8220;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"193\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/arduino-ide-2-select-board.png?resize=750%2C193&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 - select board\" class=\"wp-image-148606\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/arduino-ide-2-select-board.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/02\/arduino-ide-2-select-board.png?resize=300%2C77&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>A new window, as shown below, will open. Search for your ESP8266 board model<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"504\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/select-esp8266-board-arduino-ide-2.png?resize=699%2C504&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 select board model and COM port\" class=\"wp-image-148607\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/select-esp8266-board-arduino-ide-2.png?w=699&amp;quality=100&amp;strip=all&amp;ssl=1 699w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/select-esp8266-board-arduino-ide-2.png?resize=300%2C216&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/figure><\/div>\n\n\n<p>Select the ESP8266 board model you&#8217;re using, and the COM port. In our example, we&#8217;re using the NodeMCU 1.0 board. Click <strong>OK<\/strong> when you&#8217;re done.<\/p>\n\n\n\n<p class=\"rntbox rntclgray\">If you don&#8217;t see the COM port or if it&#8217;s grayed out, you probably need to install the USB-to-UART drivers on your computer. Check this section: <a href=\"#esp8266-usb-drivers\" title=\"\">Installing the ESP8266 NodeMCU USB Drivers<\/a>.<\/p>\n\n\n\n<p>Now, you just need to click on the <strong>Upload <\/strong>button.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"36\" height=\"39\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-upload-button.png?resize=36%2C39&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Upload Button\" class=\"wp-image-146269\"\/><\/figure><\/div>\n\n\n<p>After a few seconds, the upload should be complete.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"669\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-upload-code-complete.png?resize=666%2C669&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU Arduino IDE 2.0 Upload Successful Programming demonstration\" class=\"wp-image-148608\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-upload-code-complete.png?w=666&amp;quality=100&amp;strip=all&amp;ssl=1 666w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-upload-code-complete.png?resize=300%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-upload-code-complete.png?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n<p>The ESP8266 on-board LED should be blinking every second.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/ESP8266-blinking-LED.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 NodeMCU board running blink LED example code Arduino IDE 2.0\" class=\"wp-image-88063\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/ESP8266-blinking-LED.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/08\/ESP8266-blinking-LED.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Serial Monitor<\/h3>\n\n\n\n<p>You can click on the Serial Monitor icon to open the Serial Monitor tab.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"695\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-testing-serial-monitor.png?resize=666%2C695&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Open Arduino IDE Serial Monitor Arduino IDE 2.0 ESP8266 NodeMCU\" class=\"wp-image-148610\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-testing-serial-monitor.png?w=666&amp;quality=100&amp;strip=all&amp;ssl=1 666w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/esp8266-arduino-ide-2-testing-serial-monitor.png?resize=287%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 287w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n<p>That&#8217;s it! You&#8217;ve installed the ESP8266 Boards successfully in Arduino IDE 2 and now you know how to upload code to the board.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"upload-code-esp8266-01\">Uploading Code to ESP-01<\/h3>\n\n\n\n<p>If you&#8217;re using an ESP-01, read this section to learn how to upload code to the board.<\/p>\n\n\n\n<p>The ESP-01 doesn&#8217;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.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01-programmer.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP-01 ESP8266 Programmer\" class=\"wp-image-120596\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01-programmer.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP-01-programmer.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>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.<\/p>\n\n\n\n<p>Another alternative is using an <a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noopener\">FTDI programmer<\/a>. You&#8217;ll need to connect the ESP-01 to the FTDI programmer as shown below. Then, just connect the FTDI programmer to your computer.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"216\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/02\/ESP8266-Flasher-e1544623897676.png?resize=759%2C216&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP-01 FTDI programmer\" class=\"wp-image-5131\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/02\/ESP8266-Flasher-e1544623897676.png?w=759&amp;quality=100&amp;strip=all&amp;ssl=1 759w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/02\/ESP8266-Flasher-e1544623897676.png?resize=300%2C85&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 759px) 100vw, 759px\" \/><\/figure><\/div>\n\n\n<p>The following table shows the connections you need to make between the ESP8266 and the FTDI programmer.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>ESP8266<\/strong><\/td><td><strong>FTDI programmer<\/strong><\/td><\/tr><tr><td>RX<\/td><td>TX<\/td><\/tr><tr><td>TX <\/td><td>RX<\/td><\/tr><tr><td>CH_PD<\/td><td>3.3V<\/td><\/tr><tr><td>GPIO 0<\/td><td>GND<\/td><\/tr><tr><td>VCC<\/td><td>3.3V<\/td><\/tr><tr><td>GND <\/td><td>GND<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If you have a brand new FTDI Programmer, you&#8217;ll probably need to install the FTDI drivers on your Windows PC. Visit <a href=\"http:\/\/www.ftdichip.com\/Drivers\/VCP.htm\" target=\"_blank\" rel=\"noopener\">this website for the official drivers<\/a>.&nbsp;(If the COM port is grayed out in your Arduino IDE, it is probably because you don&#8217;t have the drivers installed).<\/p>\n\n\n\n<p>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.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"36\" height=\"39\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-upload-button.png?resize=36%2C39&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Upload Button\" class=\"wp-image-146269\"\/><\/figure><\/div>\n\n\n<h4 class=\"wp-block-heading\">Using the Serial Monitor with ESP-01<\/h4>\n\n\n\n<p>If you&#8217;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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ESP8266 Examples<\/h2>\n\n\n\n<p>In the Arduino IDE, you can find multiple examples for the ESP8266 board. First, make sure you have an ESP8266 board selected in&nbsp;<strong>Tools&nbsp;<\/strong>&gt;&nbsp;<strong>Board<\/strong>. Then, simply go to&nbsp;<strong>File&nbsp;<\/strong>&gt;&nbsp;<strong>Examples&nbsp;<\/strong>and check out the examples under the ESP8266 section.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"659\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-examples-arduino-ide.png?resize=697%2C659&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 Examples Arduino IDE\" class=\"wp-image-161434\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-examples-arduino-ide.png?w=697&amp;quality=100&amp;strip=all&amp;ssl=1 697w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/esp8266-examples-arduino-ide.png?resize=300%2C284&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Update the ESP8266 Core in Arduino IDE<\/h3>\n\n\n\n<p>It\u2019s a good practice to periodically ensure you have the latest version of the ESP8266 boards installed. In Arduino IDE 2, you\u2019ll receive a pop-up notification prompting you to update whenever a new version becomes available.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp8266-usb-drivers\">Installing the ESP8266 NodeMCU USB Drivers<\/h2>\n\n\n\n<p>After connecting the ESP8266 board to your computer, if the COM port in Arduino IDE is grayed out, it means you don\u2019t have the required USB drivers installed on your computer.<\/p>\n\n\n\n<p>Most ESP8266 boards either use the CP2101 or CH340 drivers. Check the USB to UART converter on your board, and install the corresponding drivers.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"469\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-CP2102-CH340-serial-converter.jpg?resize=750%2C469&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP8266 CP2101 vs CH340 Converter\" class=\"wp-image-120602\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-CP2102-CH340-serial-converter.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/11\/ESP8266-CP2102-CH340-serial-converter.jpg?resize=300%2C188&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>You\u2019ll easily find instructions with a quick Google search. For the CP2102 drivers, you can follow one of the following guides: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/install-esp32-esp8266-usb-drivers-cp210x-windows\/\">Install ESP32\/ESP8266 USB Drivers \u2013 CP210x USB to UART Bridge (Windows PC)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/install-esp32-esp8266-usb-drivers-cp210x-mac-os\/\">Install ESP32\/ESP8266 USB Drivers \u2013 CP210x USB to UART Bridge (Mac OS X)<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"best-esp8266-resources\">Best Resources to Get Started with the ESP8266<\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/home-automation-using-esp8266\/\"><strong>Home Automation with the ESP8266<\/strong><\/a>: this is our premium ESP8266 eBook. Learn how to use the ESP8266 to automate your house. Even if you are an absolute beginner, you\u2019ll be able to follow along and come up with your own IoT projects.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\"><strong>Free ESP8266 Projects and Tutorials<\/strong><\/a>: we have multiple ESP8266 tutorials and guides covering many different subjects that you <a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\">can check here<\/a>.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We have other eBooks about the ESP8266 that cover more specific subjects that you might be interested in:\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\">Build Web Servers with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/firebase-esp32-esp8266-ebook\/\">Firebase Web App with the ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/smart-home-ebook\/\">SMART HOME with Raspberry Pi, ESP32, ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-programming-with-esp32-and-esp8266\/\">MicroPython Programming with ESP32 and ESP8266 eBook<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>We hope you\u2019ve found this getting started guide useful. I think we\u2019ve 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.<\/p>\n\n\n\n<p>Want to learn more? We recommend the following tutorials to get started:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-digital-inputs-outputs-arduino\/\">ESP8266 NodeMCU Digital Inputs and Digital Outputs (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-web-server\/\">ESP8266 Web Server Tutorial<\/a><\/li>\n<\/ul>\n\n\n\n<p>Also, don\u2019t forget to take a look at the ESP8266 pinout to learn how to use its GPIOs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\">ESP8266 Pinout Reference: Which GPIO pins should you use?<\/a><\/li>\n<\/ul>\n\n\n\n<p>If you\u2019re serious about learning about the ESP8266 board, we recommend taking a look at our ESP8266-dedicated eBook:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/home-automation-using-esp8266\/\">Home Automation Using ESP8266 (4th Edition)<\/a><\/li>\n<\/ul>\n\n\n\n<p>You can also check all our free ESP8266 tutorials and guides on the following link:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\">More ESP8266 Projects<\/a><\/li>\n<\/ul>\n\n\n\n<p>If you like ESP8266 make sure you&nbsp;<a href=\"https:\/\/randomnerdtutorials.com\/download\">subscribe to our blog<\/a>, so you don\u2019t miss upcoming projects.<\/p>\n\n\n\n<p><strong>Do you have any questions?&nbsp;<\/strong><strong>Leave a comment down below!<\/strong><\/p>\n\n\n\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New to the ESP8266? Start here! The ESP8266 is a Wi-Fi System on a Chip (SoC) produced by Espressif Systems. It&#8217;s great for IoT and Home Automation projects. This article &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Getting Started with ESP8266 NodeMCU Development Board\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/getting-started-with-esp8266-wifi-transceiver-review\/#more-4807\" aria-label=\"Read more about Getting Started with ESP8266 NodeMCU Development Board\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":120468,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,214,300,269,264,6,10],"tags":[],"class_list":["post-4807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-esp8266","category-0-esp8266","category-guide-project","category-project","category-reviews","category-a-tutorials"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/10\/ESP8266-Getting.jpg?fit=1280%2C720&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/4807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=4807"}],"version-history":[{"count":5,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/4807\/revisions"}],"predecessor-version":[{"id":161437,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/4807\/revisions\/161437"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/120468"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=4807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=4807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=4807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}