Wide range of ESP32 modules
ESP32 is a small SoC (System on Chip) integrated circuit in a QFN48 enclosure. It is an example of a 21st-century product. Versatile and relatively cheap, this IoT module offers great possibilities to users. Its manufacturer is Shanghai-based Espressif Systems – a fabless company (design of microcontrollers produced in external factories) established in 2008. The module is built using a microprocessor powered by Xtensa core, originally developed by the American company Tensilica.
Engineers from Espressif Systems have already revolutionized the market with the ESP8266 chip – a low-cost solution combining a powerful microcontroller with a Wi-Fi module. The ESP32 referred to in this article is a development, complement and enrichment of the groundbreaking ESP8266. It should be noted, however, that ESP32 is not a continuation of the line based on the manufacturer’s previous microcontroller. This is a significant step forward for those who are already familiar with ESP8266, as well as for those who have not yet used these modules. The main differences from the ESP8266 are a faster, stronger microprocessor, Bluetooth support, richer Wi-Fi capabilities, doubled number of inputs/outputs and plenty more internal resources. However, ESP32 is not intended to work in a modem mode that executes AT commands.
The heart of the ESP32 is a fast and powerful 32-bit Xtensa microcontroller (80...160MHz, dual-core, up to 600 DMIPS depending on the version), with 520kB of built-in SRAM and built-in data security mechanisms. The most important features are the presence of extended 2.4GHz transmitter-receiver circuits, realizing communication both in the Wi-Fi standard (with a bandwidth up to 150Mbps), as well as in the Bluetooth (BT) standard, both in the “classic” and energy-saving BLE version, with additional options such as Piconet and Scatternet. The ESP32 has 34 Universal Digital Inputs/Outputs (GPIOs) that can also perform optional functions related to embedded hardware blocks such as: 12-bit 18-input ADC, two 8-bit DAC, 10 touch sensors. The system offers support for popular interfaces (4xSPI, 2xI2C, 2xI2S, 3xUART, IrDA), as well as more advanced ones, such as SD/SDIO, EthernetMAC, CAN2.0, motor controllers, LEDs, and a built-in temperature sensor and a Hall sensor. Different clocking modes, numerous timers and PWM modulators are available. All these built using the ultra-low-power technology that allows you to work with an astonishingly low power consumption.
The scope of application of ESP32 modules is very wide. They are particularly suitable for home automation devices, wearable electronics and the Internet of Things (IoT). A high-performance processor and numerous peripherals allow you to carry out truly complex and advanced projects. For beginners, however, this can be a problem, as the multitude of features, available options, and even the very basic documentation (ESP32 Technical Reference Manual), containing nearly 700 pages, can be overwhelming.
Fortunately, the ESP32 is surprisingly easy to use thanks to its numerous ready-to-use solutions. All the necessary software is available free of charge, and most importantly, on the Internet you can find numerous libraries and lots of ready-made, complete projects that can be an inspiration or a basis for your own work.
ESP32 modules and development boards
It is worth noting that only one version of the chip (ESP32-D2WD) contains 2MB of Flash memory, but it is not available in the form of a module. Therefore, popular modules, also known as ESP32, contain additional external Flash memory with several capacities (4MB ... 16MB).
A number of ESP32 modules (available also in our offer) are currently available on the market. Such modules, with 1.27 mm (50 mills) spaced pins, with a bit of practice can be manually soldered into the printed circuit board.
Apart from ESP32-SOLO and ESP32-PICO, they differ in the version of the used ESP32 chip and the amount of memory. They are divided into two main groups: ESP32-WROOM (18 x 25.3 x 3mm) with external Flash memory, and slightly larger SSP32-WROVER (18 x 31.4 x 3.3mm), fitted with not only external Flash memory, but also 8 megabytes of external SPI SRAM for advanced applications and calculations. Moreover, the modules differ in the type of Wi-Fi/BT antenna: those with the 32D marking have an antenna built into the module board, and those with the 32U marking have an external antenna socket. The voltage regulator is missing and the module must be supplied with 2.3V...3.6V (typically 3.3V).
For the convenience of both professional designers and hobbyists, development boards have also been developed, some of which are also called ESP32 modules. For example, WROOM 32D includes 3.3V stabilizer (AMS1117) and CP2102 chip, which is a USB-UART converter. Such boards can be equipped with goldpin plugs or sockets similar to those in Arduino sets. Some of the ESP32 development boards are available at surprisingly low prices.
Espressif Systems on its website offers a number of useful programming tools, including free module programming tools. For example, they include MSYS2 development environments with appropriate “add-ons”, Eclipse can also be used. An ESP-IDF (Espressif IoT Development Framework) kit is also available. These tools, are recommended and offered (and constantly improved) by the manufacturer, and are intended for more advanced users.
Less experienced programmers, including a huge number of hobbyists, use the widely popular Arduino IDE set to create programs. An overlay has been created for this package, thanks to which programs are created in a way typical for the Arduino environment, using a free GCC compiler. The overlay allows you to compile such a sketch, and the resulting machine code can be loaded into ESP32. Until recently, the overlay had to be downloaded and installed manually. Currently it can be installed to Arduino IDE by typing into the configuration panel a link – the address of the Espressif Systems website. This is an example of the continuous development of the ESP32 system and the exploration of previously unexploited areas.
Creating programs with Arduino IDE with the “ESP32 overlay” is surprisingly easy. Practically all the basic instructions and solutions known from classic Arduino sketches work here.
Beginners and less advanced users can analyze and modify existing open source examples, more and more of which are appearing on the Internet. For the advanced users and those who have already had contact with the ESP8266, this is a great opportunity to explore and use the details to fully exploit the enormous potential of the ESP32.