ESP32 vs ESP8266: What is the difference between the two IoT chipsets? Which one should you use? In this article we’re going to answer these questions by comparing ESP32 to ESP8266 and cover the pros and cons of each board.
In August 2014, Espressif Systems released ESP8266. It was meant to be used as a Wi-Fi bridge for microcontrollers but had a lot of security risks. ESP8266 did not provide any means to secure the data it stored. Anyone could read sensitive data like credentials, etc. In 2016, Espressif released ESP32, which addressed all the issues present in ESP8266.
Let’s explore in more detail:
ESP32 and ESP8266 are inexpensive microcontrollers with integrated Wi-Fi modules. They are widely used in small DIY projects in the Internet of Things (IoT).
Both chips have a 32-bit processor and come with GPIOs (General purpose input/output) that support a wide variety of protocols like Serial Peripheral Interface (SPI), I2C, Universal Asynchronous Receiver/Transmitter (UART), and many more.
The difference between these and other microcontrollers like the Arduino is that they come with wireless networking included. This helps to easily control and monitor devices remotely via Wi-Fi or Bluetooth (in case of ESP32) for a very low price.
Specifications: ESP32 vs ESP8266
CPU core
The ESP32 is the successor to ESP8266 and adds an extra CPU core. The ESP32 is dual core, upto 160 MHz to 240 MHz CPU (depending upon the variant), whereas the ESP8266 is a single core processor that runs at 80 MHz.
Bluetooth
One of the biggest differences of ESP8266 with ESP32 is Bluetooth capability; ESP32 supports classic Bluetooth and Bluetooth Low Energy (BLE). This enables ESP32 to have other connectivity options than Wi-Fi and allows it to be integrated into a wide range of projects like beacons and wearables.
Processing
The ESP8266 has a built-in processor but updating the Wi-Fi stack involves multitasking. This leads to most applications using a separate micro-controller for digital I/O, sensor interfacing and data processing.
ESP32 involves dual 32-bit microprocessors and will run from 160 Mhz up to 240 MHz on breakout boards and modules. This enables enough speed for any application that requires a microcontroller with connectivity. With ESP32, you mostly will not need to use a separate micro-controller.
Peripherals
The most important difference between ESP32 and ESP8266 is the limited number of peripherals present in ESP8266. ESP32 has a rich peripheral interface with Direct Memory Access (DMA) that includes 10x capacitive touch inputs with 2×8-Bit digital to analog converters (DACs), 18 x 12-Bit analog to digital converters (ADCs), 2 x I2C (Inter-Integrated Circuit), 4x SPI (Serial Peripheral Interface), 3 x UART (Universal Asynchronous Receiver/Transmitter) interfaces, CAN 2.0 (Controller Area Network), 2 x I²S (Integrated Inter-IC Sound), 4 x SPI (Serial Peripheral Interface), PWM (pulse width modulation), and RMII (Reduced Media-Independent Interface). These wide range of peripherals make it a lot easier to interface with sensors.
Integrated sensors in ESP32
- Hall Sensor: ESP32 integrates a hall sensor which is based on an N-carrier resistor. The hall sensor develops a small voltage when the chip is in the magnetic field, which can be directly measured by the Analog to Digital Convertor (ADC).
- LED Pulse Width Modulation (PWM): 16 independent channels of digital waveforms with configurable periods and duties are generated using the LED PWM controller in ESP-32. The 16 channels of digital waveforms operate at 80 MHz APB. One of them have the option to use the 8 MHz oscillator clock.
- Touch Sensor: ESP32 has 10 capacitive-sensing GPIOs. These GPIOs can sense variations induced by touching the GPIOs with a finger or other objects. These pins can be easily integrated with capacitive pads and replace buttons. The high sensitivity of the circuit allows relatively small pads to be used. These pins can be used as a wake-up source when ESP32 is in deep sleep. A large number of pads can be used to detect a larger area.
- Infrared Remote Controller: The infrared remote controller supports 8 channels of infrared remote transmission, receiving and sharing 512 x 32-bit block of memory to store the transmitting or receiving waveform.
- Pulse counter: There are 7 modes through which the pulse counter captures pulse and counts pulse edges. This pulse counter has eight channels, and each one captures 4 signals simultaneously. The four input signals include two pulse signals and two control signals.
Let’s take a look at all the details of ESP32 vs ESP8266 in the table below:
Type | ESP8266 | ESP32 |
MCU | Xtensa Single-Core 32-bit L106 | Xtensa Dual-Core 32-bit LX6 with 600 DMIPS |
ADC | 10-bit | 12-bit |
Software PWM | 8 channels | 16 channels |
Typical Frequency | 80 MHz | 160 MHz |
802.11 b/g/n Wi-Fi | HT20 | HT40 |
Flash | No | Yes |
GPIO | 17 | 36 |
Bluetooth | No | Bluetooth 4.2 and BLE |
SRAM | No | Yes |
CAN | No | Yes |
Ethernet MAC Interface | No | Yes |
Temperature Sensor | No | No |
Touch Sensor | No | Yes |
SPI/I2C/I2S/UART | 2/1/2/2 | 4/2/2/2 |
So, Which Module is Most Suitable for Your Project?
ESP8266 will work great for most basic small-scale IoT applications, but if you need more Bluetooth capability or security, you should go with ESP32. If the features available in ESP8266 are enough for your project, then choose it as it much cheaper than ESP32 and will also have more online support as it is older and more widespread.
What’s Next in IoT Chipsets?
Recently, Espressif released ESP32-S2 to fill the gap between ESP-8266 and ESP-32, both in terms of price and features. According to Espressif: “With state-of-the-art power management and RF performance, IO capabilities and security features, ESP32-S2 is an ideal choice for various IoT or connectivity-based applications, including smart home and wearables.”
Power-packed with unique features like USB-OTG, camera and LCD support, ESP32-S2 is creating quite a storm in the IoT industry, and could be a viable option for many future-facing IoT applications.
What your take on the whole ESP32 vs ESP8266 debate? Let us know in the comments.