ESP32 modules and development boards were specially designed for IoT applications and wearable technology. Also, ESP32 has become so popular in the IoT industry. It is the ideal module or chip for IoT developers and hobbyists. This low-cost device is ideal for use in a wide range of production systems. Our main focus in this article is the Espressif System ESP32 and all it has got to offer.
What is ESP32?
The ESP32 is a microcontroller with integrated dual-mode Bluetooth and WiFi connectivity for various applications. Also, the ESP32 is a low-cost and low-system which is capable of functioning in industrial environment. The ESP32 was specially engineered for IoT, wearable devices, and mobile devices. This board features very low power consumption. This low power system on a Chip (SoC) series is suitable for several IoT applications.
The Espressif Systems developed the ESP32. Also, the ESP32 comprises dual-mode Bluetooth and WiFi connectivity. The ESP32 is technically a chip. However, the development boards and modules in this chip are what we refer to as ESP32. Furthermore, the ESP32 is highly ranked as the best chip or module for IoT developers and hobbyists.
Furthermore, ESP32 comprises various types of proprietary software. This board comprises sophisticated features like different power modes, dynamic power scaling, and fine-grained clock gating. Also, the ESP32 is a chip that offers a lot of powerful features. When it comes to IoT, this chip offers a lot of benefits.
While the reputation of this chip is merited in IoT applications, this low-cost device is also ideal for use in various production systems. Furthermore, its resources and capabilities have grown over the years. The ESp32 is a bare chip. However, it could also refer to ESP32 development boards. Some ESP32 boards feature Gerber and BOM files. These Gerber and BOM files help in designing reference circuit.
Features of ESP32
ESP32 developed by Espressif systems has gradually gained popularity across several industries due to the features they offer.
ESP32 is an ultra-low power consumption chip compared to other microcontrollers. Also, this chip offers support to low-power mode states such as deep sleep.
ESP32 offers support to both Bluetooth Low Energy (BLE) and Bluetooth classic which is very ideal for various IoT applications.
The majority of ESP32 is dual core. It usually features 2 Xtensa 32-bit LX6 microprocessors.
Arduino programming language compatibility
If you already know how to program the Arduino board, then the ESP32 is an easy task to handle. This is because the ESP32 can be easily programmed in the Arduino style.
You can easily connect ESP32 to a Wi-Fi to simply connect to the station mode. Alternatively, you can create a Wi-Fi wireless network for other devices to connect. This is very crucial for Home Automation projects and IoT. Furthermore, you can have several devices connecting with each other.
ESP32 is compatible with MicroPython. It allows you to program it with the MicroPython firmware. This firmware is targeted for embedded systems and microcontrollers.
ESP32 comprises RF balun, in-built antenna switches, power management modules, and low-noise receive amplifier. Also, EP32 offers unmatched functionality and versatility.
Great peripheral I/O interface
ESP32 offers support to various input and output peripherals like PWM, capacitive touch, and UART among others.
ESP32 has some technical specifications. It is crucial to know these specifications.
External Flash Memory and SRAM
ESP32 offers support to about four 16 MiB external QSPI flashes. Also, it supports SRAMs having AES based encryption to offer protection to the data and programs of developers. ESP32 can also access SRAM and external QSPI flash memory via high-speed caches.
ESP32 integrates a Tensilica Xtensa 32-bit LX6 microprocessor. Also, the clock frequency gets to about 240 MHz. The clock frequency functions up to 600 Dhrystone Million Instructions Per Second (DMIS).
ESP32 allows connectivity to WiFi via the 802.11 b/g/n/e/i/.
ESP32 supports IEEE 802.11 standard security features. Also, it supports WAPI, WPA/WPA2, and WFA. Also, ESP32 features a flash encryption and a secure boot.
Difference Between Chip, Modules, and Development Boards
As it was earlier said, the ESP32 is simply the name of the chip. There are three different options as regards the format device manufacturers can buy this chip in.
This is the chip manufactured by Espressif. Also, the ESP32 chip isn’t protected and you can’t attach a board or module to this chip without soldering. As a result, the majority of device manufacturers don’t buy the chip only. Doing this may add more complexity to the manufacturing process.
ESP32 development board
The ESP32 development board is IoT MCU board that features modules that comprise the ESP32 preinstalled chip. Also, this board is widely used by device manufacturers, hobbyist, and developers to prototype IoT devices before commencing with mass production. ESP32 development boards are available in different models and makes.
The ESP32 module is a surface mount module that comprises the chip. One of the benefits of opting for a module is that you can easily mount them on an MCU during production. Also, the chip is usually protected. Device manufacturers don’t need to worry about including extra steps to the manufacturing process to achieve FCC compliance. This is because the FCC has already approved the chip.
What is ESP32 WROOM?
The ESP32 WROOM is a generic WiFi + Bluetooth and Bluetooth LE MCU module for various applications like MP3 decoding, voice encoding, and music streaming. Also, ESP32 WROOM is ideal for applications that range from low-power sensor networks to high-power tasks. It is an SMD module that can be integrated in your own PCB layout and design. The ESP32 WROOM module is a family that comprises other modules.
ESP32 WROOM 32
ESP32 WROOM 32 comprises Xtensa 32-bit LX6 microprocessors. The use of Wi-Fi, Bluetooth LE, and Bluetooth in ESP32 WROOM helps to ensure various applications is easily targeted. Integrating Wi-Fi enables a direct connection to the internet via a Wi-Fi router. The Bluetooth enables users to broadcast low energy beacons.
ESP32 WROOM 32 comprises 38 pins. Furthermore, ESP32 WROOM modules are suitable for WiFi and Bluetooth applications. This ESP32 offers a solid dual-core performance. Also, the sleep current for this chip is below 5 µA which makes it ideal for wearable electronics applications.
ESP32 WROOM 32 module offers support to a data rate of about 150 Mbps. Therefore, this module provides the best specifications and industry-leading performance for power consumption and electronic integration. ESP32 WROOM is ideal for custom PCB layout.
Also, the ESP32 WROOM 32 is a commonly used ESP32 module. It was officially the first module of WROOM family released. The ESP32 WROOM is a module that comprises gerber and BOM files, OrCAD schematic, and PCB layout.
ESP32 WROOM 32U/ ESP32 WROOM 32D
These two modules comprise the ESP32-DOWD chip. This chip’s foot print is smaller that of ESPD0WDQ6 in ESP32 WROOM 32. Furthermore, ESP32 WROOM is simply the smallest module of the WROOM/WROOVER family.
Other ESP32 Modules
ESP32 SOLO 1
The ESP32 SOLO 1 is a version of the ESP32 WROOM 32D. It comprises a single-core chip that offers support to about 160 MHz clock frequency. The ESP32-S0WD chip is at the core of this module. Also, the ESP32 –S0WD is one of ESP32 chips which has a single core and comprises all peripherals of its dual-core.
ESP32 PICO D4
This is a system-in-package (SiP) module that seamlessly integrates all peripheral components. These components include crystal oscillator, RF matching circuit, 4MB flash memory. A few other components include capacitive touch sensors, filter capacitors, and crystal oscillator. Also, ESP32 PICO D4 offers complete Bluetooth and WiFi functionalities. Furthermore, this module requires minimal PCB area because of its small size.
The ESP32 PICO D4 module features a 4 MB SPI flash. A 2.4 GHz Bluetooth and WiFi combination chip is the core of this module. The combo chip is specially designed with 40 mm ultra-low power technology. Due to the low-power consumption and robust performance of ESP32 PICO D4, it is ideal for any battery-operated applications like sensors, wearables, and IoT devices. Furthermore, ESP32 PICO D4 enhances control efficiency.
ESP32 WROVER is a series that comprises some modifications of ESP32 WROOM 32x modules. Some of the modules in this series include ESP32 WROVER (IPEX) and ESP32 WROOVER (PCB). These modules feature PSRAM that functions at 1.8V power supply and offer support to about 144 MHz clock rate.
The ESP32 WROVER IB and ESP32 WROVER B integrate PSRAM that function at 3.3V power supply and offers support to about 133 MHz clock rate. Furthermore, they comprise Gerber and BOM files, OrCAD schematic and PCB layout. This module is available in two versions. One has an IPEX antenna while the other has PCB antenna.
ESP32 Development Board
ESP32 is a bare ESP32 chip. Also, ESP32 could refer to ESP32 development board. Most times, you will need an ESP32 development board. ESP32 development board has all the circuitry required to power the ESP32 chip. Also, it features pins to link peripheral, an antenna for Wi-Fi signal and control LEDs.
Also, others may have extra hardware such as displays, modules or sensors. There are various types of ESP32 development boards from different vendors. These boards may all function in a similar way. However, some development boards are more ideal for certain projects than others. Therefore, there are several features you must consider when looking for ESP32 development board.
Number of pins and pin configuration
You need access to the board pinout to properly integrate the ESP32 in your projects. Having access to the board pinout is just like a map that reveals which pin matches with GPIO and its features. Therefore, ensure you can access the main board pinout.
Some development boards feature connectors for LiPo batteries. Also, you may need these boards if you need to power your ESP32 with batteries.
RESET/EN and BOOT buttons
You need to check if the development board has BOOT and RESET/EN buttons. These buttons help to put the board in restart or flashing mode. Not all boards have BOOT button. Such boards automatically go into flashing mode.
The majority of development boards features an onboard antenna to help WiFi signal. However, some boards feature an antenna connector to connect an external antenna optionally. Also, including an external antenna helps to enhance the range of your WIFi.
Other hardware features
Some ESP32 development boards include additional hardware features. For instance, some boards feature a built-in OLED display, a battery holder, a LoRa module, or others.
Types of ESP32 Development Boards
Development boards vary based on their intended functionality. Different development boards have different interfaces which could be USB or JTAG. Also, these boards have access to various ESP32 GPIO pins. Furthermore, development boards feature different peripheral which could be SD card slots, touchpads, female headers for camera modules, and more.
ESP32 DevKitC V4
ESP32 DevKitC V4 is known as a small development board that comprises ESP32 WROOM module. Also, it has USB-to-serial programming interface. This helps to offer power supply. ESP32 DevKitC V4 has pushbuttons for activating Firmware Download mode. Also, it has pin headers and some other components. This ESP32 DevKitC V4 version can integrate ESP32 WROVER.
ESP32-PICO-KIT V4.1 is a development board that comprises all the components to directly connect the USB port of a computer and also pin headers for plugging into a breadboard. It has all the components needed for direct connection. Also, the ESP32-PICO-KIT V4.1 comprises ESP31-PICO-D4 module. This module enables the creation of a functional board which requires a few external components that matches the PCB design.
Also, the external component such as USB-UART bridge, LDO, and antenna. Other external components include two buttons for activating Firmware Download mode and reset. ESP32-PICO-KIT V4.1 comprises the CP2102N USB-UART bridge which offers faster rate of transfer of about 3Mbps when compared to ESP32-PICO-KIT V4.
This development board comprises JTAG interface required for debugging. Also, it includes features like MicroSD card slot, RGB LED for diagnostics, Dual port USB-to-serial converter, and female headers for a camera module. Other features include 3.2 inches SPI LCD screen and 32.768 kHz XTAL for internal RTC.
In the ESP-WROVER-KIT V4.1, you can supply power through a standard 5mm power supply jack or USB connector. Also, you can choose a power supply source with a jumper which you can turn on/off using a separate switch.
Furthermore, this ESP-WROVER-KIT board version features the ESP-WROVER-B module. The ESP WROVER-B module comprises 8 MB PSRAM for data processing capabilities and flexible extended storage. Also, this board supports other versions of ESP modules.
When compared to ESP32 WROVER KIT V3, ESP WROVER KIT V4.1 integrates some design changes. Some of these changes include; changed USB connector, replacement of some components with functional equivalents depending on sourcing options and test results, e.g Boot and EN buttons.
Other design changes include R61 has become a Zero-ohm resistor. Also, the combination of JP13, JP8, and JP11 into a single JP2 is another design change in ESP WROVER KIT V4.1.
ESP32 GPIOs Pinout
ESP32 chip comprises 48 pins. These pins all have multiple functions. Also, some pins are not exposed in ESP32 development boards. For instance, the ESP32 DEVKIT V1 DOIT board has 36 exposed GPIOs suitable for connecting peripherals.
General purpose input output pins (GPIOs)
The majority of GPIOs have an assigned number and as such, you should refer to these pins by their number. ESP32 allows you to decide which pins are SPI, UART, or 12C. All you should do is set them on the code. Also, the multiplexing feature of ESP32 makes it possible for the same pin to be assigned multiple functions.
Furthermore, if you fail to set these pins on code, you will need to configure them. Furthermore, there are several pins with specific characteristics which make them ideal for a particular project.
All development boards usually feature power pins which are VIN, 3V3, and GND. Also, these pins can power the board if power isn’t coming through the USB port. You can as well use these pins to get power for other peripherals if you are using USB port to provide power the dev board. void setup and void loop.
You can make use of various programming languages to program ESP32. Some of the programming languages for ESP32 include:
- Arduino C/C++
- Espressif IDF (IoT development framework)
The Arduino C/C ++ programming language is highly preferred among engineers.
How to use Arduino IDE for ESP32 Programming
You will need an IDE for writing your code when programming your ESP32 boards. The Arduino IDE is a preferred choice for beginners. This is because it is very simple to use. Once you can create more complex projects with Arduino IDE, you may be able to integrate VS Code with the Platformio extension.
You will need to run the IDE. For this, you will need to install JAVA on your laptop. The Arduino IDE 1.8.19 is an open source software that allows you to write code and upload to the dev board. Also, you can integrate this software with any Arduino board.
Furthermore, you need to include support for the ESP32 development boards if you want to use Arduino IDE to program ESP32. In the Arduino IDE, there are several example for ESP32 boards. Ensure you have selected the ESP32 board. To do this, click on Tools and select Board. After this, go to File and click on Examples
MicroPython is an upgraded version of Python 3 designed for embedded systems and microcontrollers. Also, MicroPython functions in a similar way with a regular Python. Therefore, if you can program in Python, programming in MicroPython will be very easy for you.
Furthermore, Python share similar language features as MicroPython. However, the major difference between MicroPython and Python is that MicroPython was specially designed to function under constrained conditions. Also, MicroPython is a simple programming language for ESP32.
The goal of MicroPhyton is to make it easy to program digital electronics. Therefore, anyone can use MicroPhyton from researchers to hobbyists and teachers. For reference circuit, MicroPython features a Read-Evaluate-Print Loop (REPL) which enable you to connect to your board and quickly execute code.
To begin with MicroPython, you will need to install uPyCraft IDE. Also, the uPyCraft IDE software comprises tools that make debugging, development, and upload code easy. uPyCraft IDE is very simple to use and works perfectly. Also, you can achieve a nice project with uPyCraft IDE.
Functions and Applications of ESP32 in IoT Applications
The ESP32 is widely integrated in IoT applications. When it comes to IoT, ESP32 serves several functions.
ESP32 processes basic inputs from digital and analog sensors to more complex calculations
ESP32 allows you to have access to pages written in development languages
The WiFi antenna and dual core of the module allow embedded devices to be directly connected to routers.
ESP32 helps to create direct communication between other devices and ESPs by integrating IoT P2P connectivity.
Applications of ESP32
ESP32 modules are widely available in IoT devices such as
Smart medical devices
ESP32 modules are widely integrated in medical devices like wearable devices, heart rate monitors, and more. These modules contribute to the performance of these devices.
Smart energy devices
The smart energy devices like thermostat and HVAC comprise ESP32 modules.
Smart industrial devices
ESP32 is available in industrial devices like programmable logic controllers, reference circuit, logic gates, and more. Also, these modules play a significant role in the performance of these devices.
Smart security devices
Smart security devices like smart locks and surveillance cameras feature ESP32 modules and development boards. Also, ESP32 is a low cost low power device that offers a high level of integration. Therefore, it is suitable for use in smart security systems and devices.
The integration of Bluetooth LE, WiFi, and Bluetooth enables ESP32 to target a wide variety of applications. Also, all ESP32 series feature a wide operating temperature that ranges from -40oC to 105oC. The ESP32 development boards offer various solutions in different applications.