{"id":1668,"date":"2022-11-09T20:53:38","date_gmt":"2022-11-09T12:53:38","guid":{"rendered":"https:\/\/www.strongd.net\/?p=1668"},"modified":"2022-11-09T20:53:38","modified_gmt":"2022-11-09T12:53:38","slug":"esp32-vs-esp8266-pros-and-cons","status":"publish","type":"post","link":"https:\/\/www.strongd.net\/?p=1668","title":{"rendered":"ESP32 vs ESP8266 \u2013 Pros and Cons"},"content":{"rendered":"<div class=\"featured-image-class\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP32-vs-ESP8266-Pros-Cons-1024x576.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP32-vs-ESP8266-Pros-Cons-1024x576.jpg 1024w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP32-vs-ESP8266-Pros-Cons-300x169.jpg 300w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP32-vs-ESP8266-Pros-Cons-768x432.jpg 768w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP32-vs-ESP8266-Pros-Cons.jpg 1280w\" alt=\"ESP32-vs-ESP8266\" width=\"1024\" height=\"576\" \/><\/div>\n<p>What\u2019s the difference between ESP32 and ESP8266? Should you use the ESP32 or the ESP8266 in your projects? In this article, we\u2019ll compare the ESP32 with the ESP8266 and cover the pros and cons of each board.<\/p>\n<p>The ESP32 and ESP8266 are cheap Wi-Fi modules perfectly suited for DIY projects in the Internet of Things (IoT) and Home Automation fields.<\/p>\n<p>Both chips have a 32-bit processor. The\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-dual-core-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 is a dual-core<\/a>\u00a0160MHz to 240MHz CPU, whereas the ESP8266 is a single-core processor that runs at 80MHz.<\/p>\n<p>These modules come with GPIOs that support various protocols like SPI, I2C, UART, ADC, DAC, and PWM. The best part is that these boards come with wireless networking included, which makes them apart from other microcontrollers like the\u00a0<a href=\"https:\/\/makeradvisor.com\/best-arduino-starter-kits\/\">Arduino<\/a>. This means that you can easily control and monitor devices remotely via Wi-Fi or Bluetooth (in the case of ESP32) for a very low price.<\/p>\n<p>Alternatively, if you don\u2019t need to use its wireless capabilities, you can use the ESP32\/ESP8266 to control inputs and outputs as you would do with an Arduino. However, you should take into account that whereas the Arduino works with 5V logic, the ESP32 and ESP8266 work at 3.3V.<\/p>\n<h2>Specifications: ESP32 vs ESP8266<\/h2>\n<p>The\u00a0<a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\">ESP32<\/a>\u00a0is the\u00a0<a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\">ESP8266<\/a>\u00a0successor. It adds an\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-dual-core-arduino-ide\/\">extra CPU core<\/a>, faster\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-useful-wi-fi-functions-arduino\/\" target=\"_blank\" rel=\"noreferrer noopener\">Wi-Fi<\/a>, more GPIOs, and supports Bluetooth 4.2 and Bluetooth low energy. Additionally, the ESP32 comes with\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-touch-pins-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">touch-sensitive pins<\/a>\u00a0that can be used to\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-touch-wake-up-deep-sleep\/\" target=\"_blank\" rel=\"noreferrer noopener\">wake up the ESP32 from deep sleep<\/a>, a\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-hall-effect-sensor\/\" target=\"_blank\" rel=\"noreferrer noopener\">built-in hall effect sensor<\/a>, and a built-in temperature sensor (recent versions of the ESP32 don\u2019t come with a built-in temperature sensor anymore).<\/p>\n<p>Both boards are cheap, but the ESP32 costs slightly more. While the ESP32 can cost around $6 to $12, the ESP8266 can cost $4 to $6 (but it really depends on where you get them and what model you\u2019re buying).<\/p>\n<p>The following table shows the main differences between the ESP8266 and the ESP32 chips (table adapted from\u00a0<a href=\"https:\/\/twitter.com\/Amica_IO\/status\/713271719230709761\/photo\/1\" target=\"_blank\" rel=\"noreferrer noopener\">AMICA_IO<\/a>).<\/p>\n<table id=\"tablepress-23\" class=\"tablepress tablepress-id-23 tablepress-responsive\">\n<thead>\n<tr class=\"row-1 odd\">\n<th class=\"column-1\"><\/th>\n<th class=\"column-2\">\n<div><strong>ESP8266<\/strong><\/div>\n<\/th>\n<th class=\"column-3\">\n<div><strong>ESP32<\/strong><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n<td class=\"column-1\"><\/td>\n<td class=\"column-2\"><center><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/esp8266-chip.png\" width=\"120\" height=\"118\" \/><\/a><\/center><\/td>\n<td class=\"column-3\"><center><a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\"><img decoding=\"async\" class=\"aligncenter size-full\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/esp32-chip.png%20\" width=\"120\" \/><\/a><\/center><\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n<td class=\"column-1\">\n<div><strong>MCU<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>Xtensa Single-core 32-bit L106<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>Xtensa Dual-Core 32-bit LX6 with 600 DMIPS<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n<td class=\"column-1\">\n<div><strong>802.11 b\/g\/n Wi-Fi<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>HT20<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>HT40<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n<td class=\"column-1\">\n<div><strong>Bluetooth<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div>Bluetooth 4.2 and BLE<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-6 even\">\n<td class=\"column-1\">\n<div><strong>Typical Frequency<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>80 MHz<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>160 MHz<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-7 odd\">\n<td class=\"column-1\">\n<div><strong>SRAM<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-8 even\">\n<td class=\"column-1\">\n<div><strong>Flash<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-9 odd\">\n<td class=\"column-1\">\n<div><strong>GPIO<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>17<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>34<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-10 even\">\n<td class=\"column-1\">\n<div><strong>Hardware \/Software PWM<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>None \/ 8 channels<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>None \/ 16 channels<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-11 odd\">\n<td class=\"column-1\">\n<div><strong>SPI\/I2C\/I2S\/UART<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>2\/1\/2\/2<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>4\/2\/2\/2<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-12 even\">\n<td class=\"column-1\">\n<div><strong>ADC<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>10-bit<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>12-bit<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-13 odd\">\n<td class=\"column-1\">\n<div><strong>CAN<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-14 even\">\n<td class=\"column-1\">\n<div><strong>Ethernet MAC Interface<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-15 odd\">\n<td class=\"column-1\">\n<div><strong>Touch Sensor<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-16 even\">\n<td class=\"column-1\">\n<div><strong>Temperature Sensor<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong>(old versions)<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-17 odd\">\n<td class=\"column-1\">\n<div><strong>Hall effect sensor<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><strong>X<\/strong><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><strong>\u2713<\/strong><\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-18 even\">\n<td class=\"column-1\">\n<div><strong>Working Temperature<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>-40\u00baC to 125\u00baC<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>-40\u00baC to 125\u00baC<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-19 odd\">\n<td class=\"column-1\">\n<div><strong>Price<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div>$ (3$ &#8211; $6)<\/div>\n<\/td>\n<td class=\"column-3\">\n<div>$$ ($6 &#8211; $12)<\/div>\n<\/td>\n<\/tr>\n<tr class=\"row-20 even\">\n<td class=\"column-1\">\n<div><strong>Where to buy<\/strong><\/div>\n<\/td>\n<td class=\"column-2\">\n<div><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\">Best ESP8266 Wi-Fi Development Boards<\/a><\/div>\n<\/td>\n<td class=\"column-3\">\n<div><a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\">ESP32 Development Boards Review and Comparison<\/a><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Using ESP32 or ESP8266 bare chips is not easy or practical, especially when testing and prototyping. Most of the time, you\u2019ll want to use ESP32 and ESP8266 development boards. These boards come with all the needed circuitry to power the chip, connect it to your computer, a circuit to upload code easily, pins to connect peripherals, built-in power and control LEDs, and other useful features.<\/p>\n<p>The ESP32 and ESP8266 development boards we use more often are the\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/esp32-dev-board-wi-fi-bluetooth\/\">ESP32 DEVKIT DOIT Development board\u00a0<\/a>and the\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\">ESP8266 ESP-12E NodeMCU Kit<\/a>\u00a0and these are the ones we recommend for beginners. However, there are many other models of development boards that you can choose from. We recommend that you read the following guides:<\/p>\n<ul>\n<li><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\">Best ESP8266 Development Boards<\/a><\/li>\n<li><a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\">Best ESP32 Development Boards<\/a><\/li>\n<\/ul>\n<h2>More GPIOs on the ESP32<\/h2>\n<p>The\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 has more GPIOs<\/a>\u00a0than the\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"ESP8266 (opens in a new tab)\">ESP8266<\/a>, and you can decide which pins are UART,\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-i2c-communication-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">I2C<\/a>,\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-spi-communication-arduino\/\" target=\"_blank\" rel=\"noreferrer noopener\">SPI<\/a>\u2014you need to set that on the code. This is possible due to the ESP32 chip\u2019s multiplexing feature that allows you to assign multiple functions to the same pin.<\/p>\n<p>If you don\u2019t set them on the code, they will be on the pins defined by default, as shown in the following figure (this is an example for the\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/esp32-dev-board-wi-fi-bluetooth\/\">ESP32 DEVKIT V1 DOIT board<\/a>\u00a0(version with 36 GPIOS)\u2014the pin location can change depending on the manufacturer).<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/randomnerdtutorials.com\/esp32-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4199\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-Copy.jpg\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" srcset=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-Copy.jpg 964w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-Copy-300x217.jpg 300w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-Copy-768x554.jpg 768w\" alt=\"\" width=\"964\" height=\"696\" \/><\/a><\/figure>\n<\/div>\n<p>To learn more about the ESP32 GPIOs and how to use them, read:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">ESP32 Pinout Reference: Which GPIO pins should you use?<\/a><\/li>\n<\/ul>\n<p>For means of comparison, here\u2019s the pinout diagram for the\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/esp8266-esp-12e-nodemcu-wi-fi-development-board\/\">ESP8266 ESP-12E NodeMCU Kit<\/a>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10393\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png\" sizes=\"auto, (max-width: 817px) 100vw, 817px\" srcset=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png 817w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin-300x199.png 300w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2020\/05\/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin-768x509.png 768w\" alt=\"\" width=\"817\" height=\"542\" \/><\/figure>\n<\/div>\n<p>To learn more about the ESP8266 GPIOs and how to use them, read:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-pinout-reference-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266 Pinout Reference: Which GPIO pins should you use?<\/a><\/li>\n<\/ul>\n<h3>PWM, ADC, and More<\/h3>\n<p>You can set\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-pwm-arduino-ide\/\">PWM signals in any GPIO<\/a>\u00a0with configurable frequencies and duty cycle set on the code.<\/p>\n<p>When it comes to the\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-adc-analog-read-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">analog pins<\/a>, these are static, but the ESP32 supports measurements on 18 channels (analog-enabled pins) versus just\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp8266-adc-reading-analog-values-with-nodemcu\/\" target=\"_blank\" rel=\"noreferrer noopener\">one 10-bit ADC pin on the ESP8266<\/a>. The ESP32 also supports two 8-bit DAC channels.<\/p>\n<p>Moreover, the ESP32 contains 10 capacitive sensing GPIOs, that detect touch and can be used to trigger events, or\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-deep-sleep-arduino-ide-wake-up-sources\/\">wake-up the ESP32 from deep sleep<\/a>, for example.<\/p>\n<p>The\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-bluetooth-classic-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 supports Bluetooth communication protocol<\/a>\u00a0by default, while the ESP8266 doesn\u2019t.<\/p>\n<hr \/>\n<h2>Arduino IDE \u2013 ESP32 vs ESP8266<\/h2>\n<p>There are many ways to program the ESP32 and ESP8266 boards. Both boards can be programmed with the Arduino core using the Arduino IDE or other IDEs (like\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/vs-code-platformio-ide-esp32-esp8266-arduino\/\" target=\"_blank\" rel=\"noreferrer noopener\">VS Code with the PlatformIO extension<\/a>).<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4285\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/arduino.png\" alt=\"\" width=\"230\" height=\"219\" \/><\/figure>\n<\/div>\n<p>These are good news, especially for those used to program the Arduino board and are familiar with the Arduino \u201cprogramming language\u201d.<\/p>\n<p>Getting started with the ESP32 or ESP8266 using Arduino IDE and have your first project running is very simple. You can follow these guides:<\/p>\n<ul>\n<li><a href=\"http:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/\" target=\"_blank\" rel=\"noreferrer noopener\">Installing the ESP32 Board in Arduino IDE<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/how-to-install-esp8266-board-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Installing ESP8266 Board in Arduino IDE<\/a><\/li>\n<\/ul>\n<p>Although you can program both boards using Arduino IDE, they might not be compatible with the same libraries and functions. Some libraries are just compatible with one of the boards. This means that most of the time, your ESP8266 code will not be compatible with the ESP32. However, usually, you need to make a few modifications.<\/p>\n<p>We have a dedicated list of free tutorials and projects for the ESP32 and ESP8266 boards using the Arduino IDE that you might found useful:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 Projects and Tutorials<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266 Projects and Tutorials<\/a><\/li>\n<\/ul>\n<h2>MicroPython Firwmare \u2013 ESP32 vs ESP8266<\/h2>\n<p>Another popular way of programming the ESP32 and ESP8266 boards is using MicroPython firmware.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7354\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2019\/05\/Micropython-logo.svg-Copy-1.png\" alt=\"\" width=\"250\" height=\"254\" \/><\/figure>\n<\/div>\n<p><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32-esp8266-micropython\/\" target=\"_blank\" rel=\"noreferrer noopener\">MicroPython\u00a0<\/a>is a re-implementation of Python 3 targeted for microcontrollers and embedded systems. MicroPython is very similar with regular Python. So, if you already know how to program in Python, you also know how to program in MicroPython.<\/p>\n<p>In MicroPython, most Python scripts are compatible with both boards (unlike when using Arduino IDE). This means that most of the time, you can use the same script for ESP32 and ESP8266.<\/p>\n<p>You can get started with MicroPython firmware on the ESP32 and ESP8266 very quickly by following our free guides:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-micropython-esp32-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with MicroPython on ESP32 and ESP8266<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-thonny-micropython-python-ide-esp32-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Thonny MicroPython (Python) IDE for ESP32 and ESP8266<\/a><\/li>\n<\/ul>\n<p>We also have a list of free projects using MicroPython with the ESP32 and ESP8266 boards:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32-esp8266-micropython\/\" target=\"_blank\" rel=\"noreferrer noopener\">MicroPython Projects\/Tutorials with ESP32\/ESP8266<\/a><\/li>\n<\/ul>\n<h2>Need Resources to Get Started?<\/h2>\n<p>If you want to get started with the ESP32 or ESP8266, you can take a look at our courses and projects:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Learn ESP32 with Arduino IDE<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/home-automation-using-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">Home Automation Using ESP8266<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-programming-with-esp32-and-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">MicroPython Programming with ESP32 and ESP8266<\/a><\/li>\n<li><strong>Free projects for:<\/strong>\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32<\/a>\u00a0or\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266<\/a>\u00a0or\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32-esp8266-micropython\/\" target=\"_blank\" rel=\"noreferrer noopener\">MicropPython<\/a><\/li>\n<\/ul>\n<h2>ESP32 or ESP8266?<\/h2>\n<p>So, at this point you may be wondering:\u00a0<strong>Should I get an ESP8266 or an ESP32?<\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4288\" src=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/esp32-vs-esp8266.png\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" srcset=\"https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/esp32-vs-esp8266.png 750w, https:\/\/makeradvisor.com\/wp-content\/uploads\/2018\/04\/esp32-vs-esp8266-300x121.png 300w\" alt=\"\" width=\"750\" height=\"302\" \/><\/figure>\n<\/div>\n<p>It really depends on what you want to do. There is space for both boards, and both have pros and cons.<\/p>\n<p>The ESP8266 is cheaper than the ESP32. Although it doesn\u2019t have as many functionalities, it works just fine for most simple DIY IoT projects. However, it has some limitations in the GPIO mapping, and it might not have enough pins for what you intend to do. If that\u2019s the case, you should get an ESP32.<\/p>\n<p><strong>The ESP32 is much more powerful<\/strong>\u00a0than the ESP8266, comes with more GPIOs with multiple functions, faster Wi-Fi, and supports Bluetooth. However, many people think that the ESP32 is more difficult to deal with than the ESP8266 because it is more complex. On the contrary, in our opinion, it is as easy to program the ESP32 as the ESP8266, especially if you intend to program it using the \u201cArduino language\u201d or MicroPython.<\/p>\n<p>The ESP32 has some cons too. The ESP32 is more expensive than the ESP8266. So, if you\u2019re building a simple IoT project, the ESP8266 might do the trick for a lower price. Additionally, because the ESP8266 is \u201colder\u201d than the ESP32, some libraries and features are better developed for the ESP8266, and you\u2019ll find more resources (forums, people with the same issues, and how to solve them, etc.). However, as time goes by, the ESP32 is being widely adopted, and these differences in terms of development and libraries won\u2019t be noticeable.<\/p>\n<p><strong>My personal experience:\u00a0<\/strong>in 2021, I use almost exclusively the ESP32 for IoT projects. It is more versatile, and it comes with much more functionalities like Bluetooth,\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/esp32-deep-sleep-arduino-ide-wake-up-sources\/\" target=\"_blank\" rel=\"noreferrer noopener\">different wake-up sources<\/a>, many peripherals, and much more. Additionally, the price difference is not a big deal, in my opinion. Once you move to the ESP32, you won\u2019t want to go back to the ESP8266.<\/p>\n<h2>Wrapping Up<\/h2>\n<p>We hope you\u2019ve found our analysis ESP32 vs ESP8266 useful.<\/p>\n<p>Just to wrap up the main differences between the ESP32 and ESP8266:<\/p>\n<ul>\n<li>The ESP32 is faster than the ESP8266;<\/li>\n<li>The ESP32 comes with more GPIOs with multiple functions;<\/li>\n<li>The ESP32 supports analog measurements on 18 channels (analog-enabled pins) versus just one 10-bit ADC pin on the ESP8266;<\/li>\n<li>The ESP32 supports Bluetooth while the ESP8266 doesn\u2019t;<\/li>\n<li>The ESP32 is dual-core, and the ESP8266 is single core;<\/li>\n<li>The ESP8266 is cheaper than the ESP32;<\/li>\n<li>The ESP8266 has a wider community (although we don\u2019t think that at this point, the difference is that relevant);<\/li>\n<li>For many IoT and Wi-Fi projects, the ESP8266 can do the job for a lower price;<\/li>\n<li>Both boards can be programmed with the Arduino core using Arduino IDE or other supported IDEs.<\/li>\n<li>Both boards support MicroPython firmware.<\/li>\n<\/ul>\n<p>You might like reading the following ESP8266 and ESP32 related articles to have an idea of the selection of the most popular ESP32 and ESP8266 development boards:<\/p>\n<ul>\n<li><a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\">ESP32 Development Boards Review and Comparison<\/a><\/li>\n<li><a href=\"https:\/\/makeradvisor.com\/best-esp8266-wi-fi-development-board\/\">Best ESP8266 Wi-Fi Development Board<\/a><\/li>\n<\/ul>\n<p><strong>So, if you\u2019re a beginner, should you get started with the ESP32 or the ESP8266?<\/strong>\u00a0At this point, we definitely recommend getting started with the ESP32 instead of the ESP8266. However, if you already have an ESP8266 board, you can get started with that board and then make the shift to the ESP32.<\/p>\n<p>We have a vast selection of\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/projects\/\" target=\"_blank\" rel=\"noreferrer noopener\">projects<\/a>\u00a0with these boards in the Random Nerd Tutorials blog to help you get started:<\/p>\n<ul>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 Projects<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp8266\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP8266 Projects<\/a><\/li>\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32-esp8266-micropython\/\" target=\"_blank\" rel=\"noreferrer noopener\">MicroPython with ESP32\/ESP8266 Projects<\/a><\/li>\n<\/ul>\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What\u2019s the difference between ESP32 and ESP8266? Should you use the ESP32 or the ESP8266 in your projects? In this article, we\u2019ll compare the ESP32 with the ESP8266 and cover the pros and cons of each board. The ESP32 and ESP8266 are cheap Wi-Fi modules perfectly suited for DIY projects in the Internet of Things &hellip; <a href=\"https:\/\/www.strongd.net\/?p=1668\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">ESP32 vs ESP8266 \u2013 Pros and Cons<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[236],"tags":[],"class_list":["post-1668","post","type-post","status-publish","format-standard","hentry","category-iot"],"_links":{"self":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1668"}],"version-history":[{"count":1,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1668\/revisions"}],"predecessor-version":[{"id":1669,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/1668\/revisions\/1669"}],"wp:attachment":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}