When it comes to IoT, the ESP32 is a chip that packs a powerful punch. The ESP32 is a follow-up to the ESP8266. This low-cost, low-power system on a chip (SoC) series was created by Espressif Systems.
Based on its value for money, small size and relatively low power consumption, it is well suited to a number of different IoT applications.
In this article, we’re going to break down the ESP32’s technical specifications and how it could be used for your IoT project.
What is ESP32?
ESP32 is the name of the chip that was developed by Espressif Systems. This provides Wi-Fi (and in some models) dual-mode Bluetooth connectivity to embedded devices. While ESP32 is technically just the chip, modules and development boards that contain this chip are often also referred to as “ESP32” by the manufacturer. The differences between these are explained further on in the article.
The ESP32 chip has a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, with a clock rate of over 240 MHz. There are now several different chip models available, including:
- ESP32-D0WDQ6 (and ESP32D0WD)
- ESP32-D2WD
- ESP32-S0WD
- And the system in package (SiP) – ESP32-PICO-D4
Models are available with combined Wi-Fi and Bluetooth connectivity, or just Wi-Fi connectivity.
The ESP32 is most commonly engineered for mobile devices, wearable tech, and IoT applications – such as Nabto. Moreover, with Mongoose OS introducing an ESP32 IoT Starter Kit, the ESP32 has gained a reputation as the ultimate chip or module for hobbyists and IoT developers.
While this reputation is not unmerited, the low-cost device can also be used in a number of different production systems, and its capabilities and resources have grown impressively over the past four years.
ESP32 Features and Specifications
Here’s a high-level summary of the features and specifications of the ESP32:
And here’s a more detailed summary:
- Processors – As previously mentioned, the ESP32 uses a Tensilica Xtensa 32-bit LX6 microprocessor. This uses 1 or 2 cores (*all chips in the series are dual-core, except the ESP32-S0WD). The clock frequency reaches up to 240MHz and it performs up to 600 DMIPS (Dhrystone Million Instructions Per Second). Moreover, its low power consumption allows for ADC conversions, computation, and level thresholds, all while in deep sleep mode.
- Wireless connectivity – The ESP32 enables connectivity to integrated Wi-Fi through the 802.11 b/g/n/e/i/. Moreover, dual-mode Bluetooth is made possible with the v4.2 BR/EDR and features Bluetooth Low Energy (BLE).
- Memory – Internal memory for the ESP32 is as follows – ROM: 448 KiB (for booting/core functions), SRAM: 520 KiB (for data/instructions), RTC fast SRAM: 8 KiB (for data storage/main CPU during boot from sleep mode), RTC slow SRAM: 8 KiB (for co-processor access during sleep mode), and eFuse: 1 KiBit (256 bits used for the system (MAC address and chip configuration) and 768 bits reserved for customer applications). Moreover, two of the ESP32 chips – ESP32-D2WD and ESP32-PICO-D4 – have internally connected flash. The others are as follows: 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, and ESP32-S0WD chips), 2 MiB (ESP32-D2WD chip), and 4 MiB (ESP32-PICO-D4 SiP module).
- External Flash and SRAM – ESP32 supports up to four 16 MiB external QSPI flashes and SRAMs with hardware encryption based on AES to protect developers’ programs and data. It accesses the external QSPI flash and SRAM through high-speed caches.
- Security – IEEE 802.11 standard security features are all supported, including WFA, WPA/WPA2 and WAPI. Moreover, ESP32 has a secure boot and flash encryption.
ESP32 Functions
ESP32 has many applications when it comes to the Internet of Things (IoT). Here are just some of the IoT functions the chip is used for:
- Networking: The module’s Wi-Fi Antenna and dual-core enables embedded devices to connect to routers and transmit data.
- Data Processing: Includes processing basic inputs from analog and digital sensors to far more complex calculations with an RTOS or Non-OS SDK.
- P2P Connectivity: Creates direct communication between different ESPs and other devices using IoT P2P connectivity.
- Web Server: Access pages written in HTML or development languages.
ESP32 Applications
The ESP32 modules are commonly found in the following IoT devices:
- Smart industrial devices, including Programmable Logic Controllers (PLCs)
- Smart medical devices, including wearable health monitors
- Smart energy devices, including HVAC and thermostats
- Smart security devices, including surveillance cameras and smart locks
Chip versus Modules versus Development Boards
The ESP32 is just the name of the chip. Device manufacturers and developers have three different choices in terms of which format they buy this in, and the decision of which one to go with will depend on their individual circumstances:
- ESP32 Chip: This is the bare-bones chip that is manufactured by Espressif. It comes unshielded and can’t be attached to a module or board without soldering. Therefore, most device manufacturers do not purchase just the chip, as this will add an additional layer of complexity to the production process.
- ESP32 Modules: These are surface mountable modules that contain the chip. The benefit of purchasing a module is that these can be easily mounted onto an MCU in the production process. The chip is also usually shielded and pre-approved by the FCC, which means device manufacturers do not need to worry about adding additional steps to the production process to achieve FCC compliance with regard to Wi-Fi shielding.
- ESP32 Development Boards: These are IoT MCU development boards that have the modules containing the ESP32 chip preinstalled. They are used by hobbyists, device manufacturers and developers to test and prototype IoT devices before entering mass production. There is a wide variety of makes and models of ESP32 development boards, produced by different manufacturers. Here are some important specs to consider when choosing a suitable IoT ESP32 development board:
- GPIO pins
- ADC pins
- WiFi antennas
- LEDs
- Shielding*
- Flash Memory
*Many international markets require shielded Wi-Fi devices, as Wi-Fi produces a lot of Radio Frequency Interference (RFI), and shielding minimizes this interference. This should, therefore, be a key consideration for all developers and embedded device manufacturers.
Manufacturers of ESP32 Modules and Boards
ESP32 Chips
Espressif Systems are the manufacturer of the ESP32 chip. It is available in both 6 mm x 6 mm and 5 mm x 5 mm QFN packages. Here are the current models available:
Model | Package size | Embedded flash memory | Processor cores |
ESP32-D0WDQ6 | 6 mm x 6 mm | 0 | 2 |
ESP32-D0WD | 5 mm x 5 mm | 0 | 2 |
ESP32-D2WD | 5 mm x 5 mm | 2 | 2 |
ESP32-U4WDH | 5 mm x 5 mm | 4 | 1 |
ESP32-S0WD | 5 mm x 5 mm | 0 | 1 |
ESP32 Modules
● Espressif
The Espressif Systems esp32 is available in the following modules:
Model | Dimensions | PINS | Antennae | Flash |
ESP-WROOM-32 | 18 x 25.5 x 2.8 | 38 | PCB trace | 4 MB |
ESP-WROOM-32D | 18 x 25.5 x 3.1 | 38 | PCB trace | 4 MB |
ESP-WROOM-32U | 18 x 19.2 x 3.2 | 38 | U.FL Socket | 4 MB |
ESP-WROVER | 18 x 31.4 x 3.3 | 38 | PCB trace | 4 MB |
ESP-WROVER-I | 18 x 31.4 x 3.3 | 38 | U.FL Socket, PCB | 4 MB |
ESP-WROVER-B | 18 x 31.4 x 3.3 | 38 | PCB trace | 4 MB |
ESP-WROVER-IB | 18 x 31.4 x 3.3 | 38 | U.FL Socket, PCB | 4 MB |
● Ai-Thinker
Current Ai-Thinker esp32 modules are the following:
Model | Dimensions | PINS | Antennae | Flash |
ESP32-S | 18 x 25.5 x 2 | 38 | PCB trace | 4 MB |
ESP32-A1S | 18 x 25.5 x 2 | 38 | U.FL Socket, PCB trace | 4 MB |
Other manufacturers of ESP32 modules include:
ESP32 Development Boards/Dev kits
● Espressif
The current Espressif ESP32 development boards include:
Model | Onboard module | Firmware | USB | Flash |
ESP32-DevKitC | ESP-WROOM-03 | Espressif Non-OS SDK, using Lua scripting language | USB to serial interface | 4 MB flash |
ESP-WROVER-KIT | ESP-WROOM-32 or ESP32-WROVER | Espressif Non-OS SDK, using Lua scripting language | USB to serial interface | 4 MB flash + 8 MB PSRAM |
ESP32-PICO-KIT | ESP32-PICO-D4 | Espressif Non-OS SDK, using Lua scripting language | USB to serial interface | 4 MB flash |
● Ai-Thinker
The AI-Thinker development boards include:
Model | Onboard module | Firmware | GPIO & ADC Pins | USB | Flash |
NodeMCU-32S | ESP-WROOM-32 | Lua, AT commands, MicroPython, Arduino | 38 | USB port for power input | 32 MB |
ESP32-CAM | ESP32-CAM | Embedded Lwip and FreeRTOS | 9 | USB port for power input | 32 MB |
● Adafruit
The Adafruit ESP32 development boards include:
Model | Onboard module | Firmware | GPIO & ADC Pins | USB | Flash |
HUZZAH32 | ESP-WROOM-32 | ESP-IDF and Arduino IDE software | 24 | USB to serial interface | 4 MB |
● Wemos
The Wemos ESP32 development boards include:
Model | Onboard module | Firmware | GPIO & ADC Pins | USB | Flash |
LOLIN D32 | ESP-WROOM-32 | Compatible with Arduino, MicroPython | 19 | USB to serial interface | 4 MB |
LOLIN D32 PRO | ESP-WROOM-32 | Compatible with Arduino, MicroPython | 19 | USB to serial interface | 16 MB/4 MB Flash 4 MB PSRAM |
● Arducam
The current Arducam ESP32 development board is:
Model | Onboard module | Firmware | GPIO & ADC Pins | USB | Flash |
ESP32 UNO | ESP-32S | Compatible with Arduino IDE | 23 | Built in micro USB | 32Mbit Flash, 8MByte PSRAM |
What SDKs are Used for ESP32s?
There is now a wide range of software development kits (SDKs) available. These allow developers to program the chip directly without the use of a separate MCU.
Espressif provides one official SDK for use with either the ESP32, ESP32-2, or the ESP8266. This is the FreeRTOS-based SDK.
Aside from the Espressif options, there are plenty of commercial and open-source SDKs on the market, including:
- ESP Arduino Core – C++ based firmware
- ESP-SDK-Tools – Open integrated SDK for ESP8266
- Espruino – Javascript SDK and firmware
- Micropython – Python for embedded devices
- Moddable SDK – Javascript SDK
- Mongoose OS – C or Javascript open-source OS
- NodeMCU – Open-source Lua based firmware, similar to Node.js
- uLisp – Lisp-based framework
- Zerynth – Python framework for IoT
Which is the best ESP32 Module or Development Board for IoT?
As the above comparisons show, there are a lot of options available with ESP32 IoT boards and modules. To help you with your decision making, we’ve summarized some of the most popular below.
Popular ESP32 Modules

ESP32-WROOM-32D
This extremely popular ESP32 module integrates with the ESP32-D0WD.
The main reason that the ESP32-WROOM-32D is such a popular module is its adaptability. It can target a variety of applications, including lower-powered sensor networks to voice encoding and music streaming.
The ESP32-WROOM-32D is often confused with the ESP32-WROOM 32U. Albeit very similar modules, ESP32-WROOM-32U is different from ESP32-WROOM-32D in that the ESP32-WROOM-32U integrates a U.FL connector.

ESP32-WROOM-32
The ESP32-WROOM-32 is the original ESP32 module brought out by Espressif.
ESP32-WROOM-32 is a powerful, generic Wi-Fi+BT+BLE MCU module. At the core of this module is the ESP32-D0WDQ6 chip. The embedded chip is designed to be scalable and adaptive.
While there’s no denying the ESP32-WROOM-32 is a great module, it is not recommended for new designs.

ESP32-WROOVER
The ESP32-WROOVER module is provided in two versions: one with a PCB antenna, the other with an IPEX antenna. You can find the ordering information for both versions here.
Like the ESPWROOM32, the chip at the core of this module in the ESP32-D0WDQ6 chip.
This ESP32 module features two CPU cores that can be individually controlled. Moreover, the CPU clock frequency is adjustable from 80 MHz to 240 MHz. The user may also power off the CPU and use the low-power co-processor to continuously monitor for changes or crossing thresholds.
Popular ESP32 Development Boards

ESP32 CAM
The ESP32 CAM is a little different from the other development boards on this list. This fully-developed microcontroller also has an integrated camera and micro SD card socket.
The ESP32-CAM is based upon the ESP32-S module, so it shares the same specifications. This includes UART, SPI, I2C and PWM interfaces, Wi-Fi image upload, clock speeds of up to 160 MHz, and 9 GPIO ports.
It includes an OV2640 module – which has a 2 Megapixel sensor – and also supports OV7670 cameras, too.
As there are many components on the bottom, it may be easier to avoid a solderless breadboard when experimenting with the ESP32-CAM. Furthermore, the use of jumpers with female Dupont connectors is recommended.

ESP32-DevKitC
The ESP-DevKitC is a relatively small development board from Espressif. The I/O pins are broken out to the pin headers on both sides for easy interfacing.
Developers can connect peripherals with jumper wires or mount the ESP32-DevKitC V4 on a breadboard.
A key advantage of this development board is not just its small size, but also its low power usage.

HUZZAH32
The HUZZAH32 is sometimes referred to by Adafruit as the ‘feather board.’
This development board is favored by beginners in IoT. It integrates the ESP32 with additional hardware, which makes it easier to program and use in projects.

Node-MCU-32S
TheNodeMCU development board features Wi-Fi+Bluetooth connectivity, onboard CP2102 and keys.
A key feature of this AI Thinker development board is that the I/O pins of the ESP-WROOM-32 module are accessible via the extension headers. Moreover, it is open-source and supports several different source codes.
Read Our Other Resources
We’ve published a range of other IoT resources for our community, including:
- A remote control end-to-end example on ESP32: The Nabto ESP32 Virtual Thermostat Guide
- A complete guide to Microcontrollers for IoT to help you choose the right MCU for your IoT project.
- How to choose the best RTOS for IoT devices, which explains what you need to consider when making your choice.