Hi Guys! Hope you’re well today. Today, I am going to share the 2nd chapter of the ESP32 Programming Course. In this post today, I’ll walk you through the detailed Introduction to ESP32 Module. We will discuss in detail ESP32 Pinout, Datasheet, Features & Applications.
ESP32 is an embedded module that supports both WiFi and BT(dual-mode) connectivity and is thus used in cloud-based IoT projects. ESP32 is the upgraded model of the ESP8266 module and is designed by Espressif Systems in China.
The following table shows the main features and technical specifications of the ESP32 module.
|ESP32 Module Features and Technical Specs|
|No.||Parameter Name||Parameter Value|
|1||Maximum Operating Frequency||240MHz|
|2||Microprocessor||Tensilica Xtensa LX6|
|4||DAC Pins||8-bit, 2 Channel|
|5||Analog Input Pins||12-bit, 18-channel|
|6||DC Current on I/O Pins||40 mA|
|7||Digital I/O Pins||39 (34 are normal GPIO pins)|
|8||DC Current on 3.3V Pin||50 mA|
|9||Communication||SPI(4), I2C(2), I2S(2), CAN, UART(3)|
|11||Bluetooth||V4.2 – Supports BLE and Classic Bluetooth|
- So, let's get started with the Introduction to ESP32:
Introduction to ESP32 Module
- ESP32(designed by Espressif Systems, a Shanghai-based Chinese Company) is a 48 Pin microprocessor-based embedded IC(available in QFN package), supports both WiFi & BT(dual-mode) connectivity and is used majorly in wearable devices, mobile & cloud-based IoT applications.
- The microprocessor used in the ESP32 chip is the Tensilica Xtensa LX6 microprocessor(single-core and dual-core).
- A few LX6 based ESP32 ICs are:
- ESP32-D0WDQ6 (and ESP32-D0WD)
- ESP32-WROOM-32 is a 38-pin breakout board of ESP32, which is most commonly used in third-party ESP32 modules.
- As ESP32 IC is available in the QFN(Quad Flat No Leads) package, so it's quite difficult to solder the IC in embedded projects.
- So, to ease the process of using ESP32 IC, Espressif Systems designed numerous small modules(using ESP32 chip) which have a built-in antenna and easily usable pinout.
- Other ESP32 modules are ESP32-SOLO and ESP32-WROVER.
- One of the most commonly used breakout boards of ESP32 is ESP32-WROOM-32, shown in the below figure:
Third-Party ESP32 Development Modules
- Many embedded companies have used ESP32-WROOM-32 boards and designed different ESP32 development boards, which are plug & play modules and are thus normally used for learning and prototyping purposes.
- One of the most commonly used ESP32 development boards is called ESP32-DevkitC.
- ESP32-DevKitC is a 30-Pin ESP32-based development board, designed by Espressif Systems and is used in embedded and IoT projects.
- All you need to do is plug this device using a USB cable and play with it on the fly.
- Boot-mode and Reset buttons are incorporated on the board.
- USB micro connector and USB-UART Bridge, and LDO regulator are also included in the device.
Types of ESP32 Development Boards
- The following are the five different versions of ESP32-DevKitC.
ESP32 DatasheetBefore you incorporate this device into your electrical project, it’s wise to go through the datasheet of the component that features the main characteristics of the device. You can click the link given below to download the ESP32 datasheet.
Now, let's have a look at the features of ESP32:
ESP32 FeaturesHere are the main features of ESP32 IC:
- ESP32 has built-in integration of both WiFi and Bluetooth dual-mode.
- ESP32 has 34 programmable GPIOs present on the chip.
- ADC is of 12-bit SAR and can support up to 18 channels.
- DAC is 8-bit and it has 2 DAC channels.
- ESP32 also has 10 touch sensors embedded in it.
- ESP32 also has a Hall sensor in it.
- It supports 4 SPI channels.
- It also has 2 I²S channels.
- ESP32 has 2 I²C ports in it.
- It supports 3 UART channels.
- It also has 1 host(SD/MMC/SDIO) and 1 slave(SDIO/SPI).
- ESP32 also supports the Ethernet MAC interface with dedicated DMA and IEEE 1588 support.
- It supports Two-Wire Automotive Interface (TWAI®, compatible with ISO11898-1)
- IR (TX/RX)
- Motor PWM
- LED PWM up to 16 channels
ESP32 WiFi Key Features
- Wireless Networking Standard: 802.11 b/g/n
- Wireless Standard: 802.11 n (2.4 GHz), up to 150 Mbps
- WiFi Multimedia(WMM)
- WiFi Aggregation: TX/RX A-MPDU, RX A-MSDU
- Immediate Block ACK: suitable for high bandwidth & low latency traffic.
- Automatic Beacon monitoring (hardware TSF)
- Simultaneous support for SoftAP, Infrastructure Station and Promiscuous modes.
- Diverse Antenna
- Defragmentation to smoothen the data.
- Supports 4 virtual WiFi Interfaces.
ESP32 Bluetooth Key Features
- Compliant with Bluetooth v4.2 BR/EDR
- Class-1, Class-2 and Class-3 transmitters without external power amplifier
- Increased Power Control
- Transmission Power: +12 dBm
- BLE sensitivity: –94 dBm (NZIF receiver)
- Adaptive Frequency Hopping (AFH)
- Standard HCI supports SDIO/SPI/UART
- High-speed UART HCI, up to 4 Mbps
- Bluetooth 4.2 BR/EDR BLE dual-mode controller
- CVSD and SBC for audio codec
- Classic BT and BLE support Multiple connections.
- It can advertise and scan simultaneously.
- Bluetooth Piconet and Scatternet
ESP32 Microcontroller Key Features
- ESP32 uses an Xtensa® single-/dual-core 32-bit LX6 microprocessor(s).
- It supports data rates up to 600 MIPS (200 MIPS for ESP32-S0WD/ESP32-U4WDH)
- It has a Flash Memory of 448 KB.
- It has an SRAM memory of 520 KB.
- 16 KB SRAM in RTC
- QSPI supports multiple flash/SRAM chips
ESP32 Clocks & Timers Key Features
- ESP32 has a calibrated 8MHz crystal oscillator(internal)
- Calibrated RC oscillator(internal)
- External 2 MHz ~ 60 MHz crystal oscillator (40 MHz only for Wi-Fi/BT functionality)
- External 32 kHz crystal oscillator for RTC with calibration
- Two timer groups, including 2 × 64-bit timers and 1 × main watchdog in each group
- ESP32 also has one RTC timer.
- RTC watchdog is also present in ESP32.
We have seen above that ESP32 has evolved first into ESP32-WROOM-32 and then its further upgraded into ESP32-DevKitC. So, let's have a look at the pinout of all these boards, one by one:
Pinout of ESP32 IC
- ESP32 IC in its pure form consists of 48 pins in total.
- The following figure shows the labeled ESP32 Pinout diagram:
Pinout of ESP32-WROOM-32
- ESP32-WROOM-32 is a breakout board of ESP32 and consists of 38 pins in total.
- Here's the pinout of ESP-WROOM-32 board:
Pinout of ESP32-DevkitC
- ESP32-DevKitC is a development board based on the ESP32 microcontroller and it has 36 pins in total.
- Here's the pinout diagram of ESP32 DevKitC:
ESP32 module Pin Description
- Power: Power is applied through Micro-USB, 3.3V pin, 5V pin, and GND. Regulated 5V is supplied to this pin which is further regulated to 3.3V to power up the board. And 3.3V pin directly supplies the 3.3V regulated to the board. And the ground is connected to GND.
- Enable: The enable pin is represented by ‘En’ on the board and is used to reset the microcontroller.
- Analog Pins: Analog pins are represented as ADC1_0 to ADC1_5 and ADC2_0 to ADC2_9 on board. These pins are used to measure the analog voltage in the range from 0-3.3V which is a 12-bit 18-channel ADC.
- DAC pins: Two pins DAC1 and DAC2 are used for digital-to-analog conversion.
- I/O Pins: I/O pins are represented as GPIO0 to GPIO39 on board which projects there are a total of 39 I/O pins on board. All of them can be used as an input or output but pins from 34 to 39 are used for input only.
- Capacitive Touch Pins: These pins are represented as T0 to T9 on board. These are a total of 10 pins which are touch pins that are normally used for capacitive pads.
- RTC GPIO pins: These pins are represented as RTCIO0 to RTCIO17 on board which is a total of 18 pins. These pins are employed to wake up the ESP32 from deep sleep mode.
- Serial: Two serial pins are represented on boards as Tx and Rx. The Tx is used to transmit serial data while Rx is used to receive serial data.
- External Interrupts: All GPIO pins can be used as external interrupts.
- PWM: Any GPIO pin can be used as a PWM pin. These GPIO pins are activated through software.
- VSPI: These pins are represented as GPIO23 (MOSI), GPIO19 (MISO), GPIO18 (CLK) and GPIO5 (CS) which are used for SPI-1 communication.
- HSPI: These pins are represented as GPIO13 (MOSI), GPIO12 (MISO), GPIO14 (CLK) and GPIO15 (CS) which are used for SPI-2 communication.
- IIC: These pins are marked as GPIO21 (SDA) and GPIO22 (SCL) which are used for I2C communication.
- AREF: It is marked as AREF which is used to provide a reference voltage for input voltage.
ESP32 Projects & Applications
ESP32 modules have brought a revolution in embedded and especially IoT projects. As these boards are small-sized, low-powered and support both WiFi & BT, thus are gaining popularity in IoT-based handheld devices. A few applications of the ESP32 module are as follows:
- Used in Network projects.
- Employed for beginner-level DIY projects.
- Employed in the prototyping of IoT devices.
- Used in cloud-based smart security projects.
- Used in low-power battery-operated applications.