top of page

ESP32 - Getting Started

ESP32 is a series of low-cost, low power system on chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. ESP32 is created and developed by Expressif Systems, a Shanghai-based Chinese company, and is manufactured by TSMC using their 40 nm process.

esp32-500x500.jpeg

The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noice receiver amplifier, filters, and power-management modules. It is a successor to the ESP8266 microcontroller.

Features

Processor:

  • CPU: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS.

  • Ultra low power (ULP) co-processor.


Memory: 320 KiB RAM, 448 KiB ROM

Wireless connectivity:

  • Wi-Fi: 802.11 b/g/n

  • Bluetooth: v4.2 BR/EDR and BLE (shares the radio with Wi-Fi)


Peripheral interfaces:

  • 34 x programmable General Purpose Input Output (GPIO) pins.

  • 12-bit SAR ADC up to 18 channels.

  • 2 x 8-bits DACs

  • 10 x touch sensors (capacitive sensing GPIOs)

  • 4 x PSI.

  • 2 x I2S interfaces.

  • 2 x I2C interfaces.

  • 3 x UART

  • SD/SDIO/CE-ATA/MMC/eMMC host controller.

  • SDIO/SPI slave controller.

  • Ethernet MAC interface with dedicated DMA and IEEE 1588 Precision Time Protocol support.

  • CAN bus 2.0. 

  • Infrared remote controller (TX/RX, up to 8 channels)

  • Motor PWM.

  • LED PWM (up to 16 channels)

  • Hall effect sensor.

  • Ultra low power analog pre-amplifier.


Security:

  • IEEE 802.11 standard security features all supported, including WPA, WPA2, WPA3 (depending on version) and WAPI.

  • Secure boot.

  • Flash encryption.

  • 1024-bit OTP, up to 768-bit for customers.

  • Cryptographic hardware acceleration: AES, SHA-2, RSA, elliptic curve cryptography (ECC), random number generator (RNG).


Power management:

  • Internal low-dropout regulator.

  • Individual power domain for RTC.

  • 5 uA deep sleep current.

  • Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt.

Programming ESP32

ESP32 can be programed using different languages, platforms, frameworks, and environments. These include:
 

  • Visual Studio Code using the ESP-IDE Extension.

  • Arduino IDE with the ESP32 Arduino core.

  • MicroPython - A lean implementation of Python 3 for microcontrollers.

  • Espressif Mesh Development Framework.

  • Espruino - JavaScript SDK and firmware closely emulating Node.js.

  • Lua Network/IoT toolkit for ESP-Wrover.

  • Mongoose OS - An operating system for connected products on microcontrollers; programmable with JavaScript or C.

  • mruby for the ESP32.

  • NodeMCU - Lua-based firmware.

  • Zerynth - Python for IoT and microcontrollers, including the ESP32.

  • .Net nanoFramework - a free and open-source platform that enables the writing of managed code application for constrained embedded devices. 

Different ESP32 Series

ESP32-SOLO Series
The ESP32-SOLO-1 module is based on ESP32-S0WD and has integrated flash memory, thus providing a cost-effective solution for simple Wi-Fi and Bluetooth LE-based connectivity applications.

download (1).jpg

ESPRESSIF ESP32-SOLO-1

ESP32-WROOM Series
These are ESP32-D0WD-based modules with integrated flash. These modules are well suited for Wi-Fi and Bluetooth LE-based connectivity applications and provide a solid dual-core performance.

esp32-wroom-32u.jpg

ESPRESSIF ESP32-WROOM-32U

ESP32-WROVER Series
The ESP32-WROVER series is based on ESP32-D0WD SoC, having also integrated flash memory and SPIRAM. They have a fine dual-core performance, and are well suited for applications requiring more memory, 
such as AIoT and gateway applications.

espressif-esp32-wrover-i-wifi-wlan-bluetooth-module.jpg

ESPRESSIF ESP32-WROVER

ESP32 Development Boards

There are different ESP2 based development board for developing embedded system applications.
Few of the 'popular' ones include:

ESP32-DevKitC
This is an entry-level development board. It has all the ESP32 pins exposed and is easy to connect and use.

ESP32-DevKitC(ESP32-WROVER-E)_0.png

ESP32-DevKitC

ESP32-DevKitM-1
This is a ESP32-MINI-1-based development board produced by Espressif. Most of the I/O pins are broken out to the headers on both sides for easy interfacing. Developers can either connect peripherals with jumper wires or mount ESP32-DevKitM-1 on a breadboard.

ESP32-DevKitM-1 small_2.png

ESP32-DevKitM-1

ESP-EYE 
This is a development board for image recognition and audio processing, which can be used in various AIoT applications. It features an ESP32 chip, a 2-Megapixel camera and a microphone. ESP-EYE offers plenty of storage, with an 8 MB PSRAM and a 4 MB flash. It also supports image transmission via Wi-Fi 
and debugging through a Micro-USB port.

Hd8a57e66d1484f679cde4de437e44edaF.jpg

ESP32 - EYE

others include:

​

  • ESP32-WROVER-KIT

  • ESP32-PICO-KIT

  • ESP32-PICO-V3-ZERO-DevKit

  • ESP32-PICO-DevKitM-2 

  • ESP32-LyraT-Mini

  • ESP32-LyraTD-MSC

  • ESP32-LyraTD-SYNA, etc.

​

Learn more...

The ESP32 development board is usually the next step from the Arduino Uno(s) and Nano(s). After having a taste of embedded system with Arduino, we naturally tend to take things up a notch, the ESP32 having a 32-bit processor and in-built Wi-Fi and Bluetooth makes it a great choice for some cool low-cost IoT applications.

The ESP32 provide you with faster data transfer speed and Wi-Fi/Bluetooth functionality all in one board, unlike the traditional Arduino boards such as Arduino Uno which you have to interface external Wi-Fi or Bluetooth module module for
your IoT projects.

In our next ESP32 course nodule, we will learn how to program the ESP32 using Arduino IDE. You can check out our Arduino course: if you are not familiar with the Arduino development platform.

bottom of page