In the previous post of this new section on ESP8266 and ESP32, we saw the ESP8266 SoC. In this post, we are going to take a look at its big brother, the ESP32, within this tandem of processors designed for IoT.
In the next posts, we will see development boards based on these SoCs and how to program them with different firmware and programming languages.
But for now, we need to 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 System on Chip (SoC) designed by the Chinese company Espressif and manufactured by TSMC. It integrates a Tensilica Xtensa 32-bit dual-core processor at 160Mhz (with the possibility of up to 240Mhz), WiFi, and Bluetooth connectivity into a single chip.
The ESP32 adds many functions and improvements compared to the ESP8266, such as more power, Bluetooth 4.0, hardware encryption, temperature sensor, hall sensor, touch sensor, real-time clock (RTC), more ports, more buses… more of everything!
We will compare both models in more detail in the next post, but we can already see that it is far superior to the ESP8266. In return, logically, the price is slightly higher. But, even so, it is spectacular in terms of features/price.
As it couldn’t be otherwise, the Maker community welcomed the new ESP32 with open arms. Firmware, documentation, 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 constantly being published.
Of course, manufacturers are paying attention and have developed numerous development boards that integrate the ESP32. Some have 16050 LiPo batteries, others have TFT, others have OLED displays, Lora communication… And new options are constantly emerging, some really interesting.
We also begin to see articles and commercial products that use the ESP32 as the core. However, at the moment, we find more articles using the ESP8266, probably because of its low price or because it has been on the market for longer. However, this trend may be reversed, and we may see a greater number of commercial products based on the ESP32, given its greater power and inclusion of Bluetooth BLE.
As for programming languages, we have several options, basically similar to those we saw in ESP8266. It is possible to use the Arduino IDE, install MicroPython, RTOS, Mongoose OS, Espruino.
In short, a very interesting machine that will give us a lot of room to play. It has enormous potential to develop all kinds of projects, especially due to its communication capabilities, taking a prominent place in IoT applications. So, you won’t get bored with projects, that’s for sure.
We will delve deeper into the ESP32 in future tutorials in the section dedicated to ESP8266 and ESP32. For now, here are the technical specifications of this awesome little machine.
- 32-bit dual-core Xtensa LX6 processor
- Speed of 160Mhz (up to 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, 18-channel analog-to-digital converter (ADC)
- 2 8-bit digital-to-analog converters (DAC)
- 16 PWM outputs (LED PWM)
- 1 PWM output for motors
- 10-channel 10-bit analog-to-digital converter
- 10x capacitive sensors (on GPIO)
- 3x UART, 4x SPI, 2x I2S, 2x I2C, CAN bus 2.0
- SD/SDIO/CE-ATA/MMC/eMMC host controller
- SDIO/SPI slave controller
- Temperature sensor
- Hall effect sensor
- Random number generator
- Real-time clock (RTC)
- Infrared remote controller (8 channels)