The ESP8266 has long been a popular Wi-Fi module that makers have utilized in a multitude of projects. The ESP32 from Espressif is touted as the new and improved version of the ESP8266. Should you upgrade your projects to use the new ESP32?
This article offers an overview of features for both modules. All technical information is available from the chips’ respective datasheets on the Espressif Systems website. If you want a quick and easy decision maker, check out the flow chart at the end of this article.
Espressif’s low-cost ESP8266EX, used in ESP8266 modules, is a microchip with full TCP/IP stack and microcontroller capabilities. It features a Tensilica L106 32-bit RISC processor (typically 80MHz) with a maximum clock speed of 160 MHz and iBus, dBus, and AHB interfaces.
Up to 16MB of external SPI flash storage is available for user programs. The ESP8266EX radio supports 14 channels with its 2.4GHz receiver and transmitter. As for the Wi-Fi(72.2mbps), ESP8266EX implements TCP/IP and full 802.11 b/g/n WLAN MAC protocol (2 virtual Wi-Fi interfaces).
The radio and Wi-Fi are disabled in the Modem-sleep, Light-sleep, and Deep-sleep modes, three of the four power management modes (the fourth is active mode). It has seventeen GPIO pins, four software-implemented PWM output pins, as well as SDIO, SPI, HSPI, I2C, I2S, and UART interfaces. There is also support for an infrared remote-control interface and an embedded analog-to-digital converter.
The ESP32 chips (including ESP32-D0WD, ESP32-D0WDQ6, ESP32-D2WD, ESP32-S0WD) come with integrated Wi-Fi and dual-mode Bluetooth. Depending on the model, ESP32 contains one or two low-power Xtensa® 32-bit LX6 microprocessor(s) with a maximum clock speed of 240 MHz(typically 160MHz) and Xtensa RAM/ROM, Local Memory, and JTAG interfaces.
Unlike the ESP8266EX, ESP32 features different sizes of embedded flash memory and supports multiple external QSPI flash and SRAM chips (up to 16MB). The ESP32’s radio is like the ESP8266’s but adds a balun and a transmit-receive switch.
Another improvement from the previous chip is the inclusion of an embedded RTC clock. ESP32 implements TCP/IP and full 802.11 b/g/n Wi-Fi MAC protocol (4 virtual Wi-Fi interfaces) at up to 150 Mbps of data rate. It also supports Classic Bluetooth and Bluetooth Low Energy. However, these are disabled in the five power management modes.
Most of the 34 GPIO pins can be configured with internal pull-up or pull-down resistors and can be multiplexed with SDIO, UART, etc. The ESP32 also features two 8-bit DAC channels and a 12-bit SAR ADC that supports measurements from 18 channels.
A Hall sensor, 10 capacitive-sensing GPIOs, and an Ethernet MAC interface are also available along with SDIO, SPI, HSPI, I2C, I2S, and UART interfaces.
Should You Upgrade?
Overall, the ESP32 is more powerful than the ESP8266. It consumes only 5 µA in its lowest power setting compared to the 20 µA consumed by its predecessor and has typical clock speeds two times faster.
The built-in Bluetooth modes and increased number of GPIO pins seal the deal.
The only downside to upgrading would be legacy software support and cost. The ESP32 costs about twice as much as the ESP8266, though they are both low-cost solutions.
If your project depends on software that is no longer actively maintained, it may not be supported on the ESP32. Finding a workaround or writing a port may not be worth it if your device works and you have no plans of adding features.
However, if your project would greatly benefit from ultra-low power consumption, more GPIO pins, a beefier processor, and enhanced connectivity, the ESP32 is a valuable upgrade.
Have you updated any of your projects with the ESP32? Let us know about your experiences in the comments!