In the previous entry of this new section about the ESP8266 and ESP32, we saw the ESP8266 SoC. In this entry, we will look at its older brother the ESP32, within this tandem of processors designed for IoT.
In the upcoming entries, we will explore development boards based on these SoCs and how to program them with different firmwares and programming languages.
But for now, let’s introduce the ESP32, a powerful machine that stands out for its WiFi and Bluetooth BLE communication capabilities.
What is the ESP32?
The ESP32 is a SoC (System on Chip) designed by the Chinese company Espressif and manufactured by TSMC. It integrates a dual-core 32-bit Tensilica Xtensa processor running at 160MHz (with the possibility of up to 240MHz), WiFi, and Bluetooth connectivity.
We will compare both models in more detail in the next entry, but we already see that it is far superior to the ESP8266. In exchange, logically, the price is slightly higher. However, it is still spectacular in terms of features/price.
As could be expected, the Maker community welcomed the new ESP32 with open arms. Firmwares, documentation, and tools have been developed, and although its support is still lower than that of the ESP8266, it is currently easy to find tutorials on it, and new articles are continuously being published.
Of course, manufacturers are paying attention and have developed numerous development boards that integrate the ESP32. Some have 16050 type LiPo batteries, others have TFT displays, others have OLED screens, Lora communication… And new options are constantly appearing, some of which are really interesting.
We are also starting to see articles and commercial products that use the ESP32 as a core. However, for now, we find more articles that feature the ESP8266, likely due to its low price or having been on the market longer. Nevertheless, this trend may reverse, and we could see a greater number of commercial products based on the ESP32, given its higher power and inclusion of Bluetooth BLE.
As for programming languages, we have several options, basically similar to those we saw with the ESP8266. It is possible to use the Arduino IDE, install MicroPython, RTOS, Mongoose OS, and Espruino.
In short, a very interesting machine that is going to give us a lot of play. It has enormous potential for developing all kinds of projects, especially due to its communication capabilities, occupying a prominent place in IoT applications. So, you won’t get bored with projects, not at all.
We will delve deeper into the ESP32 in future tutorials of the section dedicated to the ESP8266 and ESP32.
For now, here are the technical specifications of this brutal little machine.
ESP32 Specifications
- Xtensa LX6 dual-core 32-bit processor
- Speed of 160MHz (maximum 240 MHz)
- Ultra-low power co-processor
- 520 KiB SRAM memory
- External flash memory up to 16MiB
- Flash encryption
- Secure boot
- Integrated TCP/IP stack
- Wifi 802.11 b/g/n 2.4GHz (supports WFA/WPA/WPA2/WAPI)
- Bluetooth v4.2 BR/EDR and BLE
- Hardware-accelerated cryptography
- 32 GPIO pins
- 12-bit ADC with 18 channels
- 2 8-bit DACs
- 16 PWM outputs (LED PWM)
- 1 PWM output for motors
- 11 10-pin analog to digital converters
- 10 capacitive sensors (on GPIO)
- 3x UART, 4x SPI, 2x I2S, 2x I2C, CAN bus 2.0
- Host controller SD/SDIO/CE-ATA/MMC/eMMC
- Slave controller SDIO/SPI
- Temperature sensor
- Hall effect sensor
- Random number generator
- Real-time clock (RTC)
- Infrared remote control driver (8 channels)