ESPRESSIF SYSTEMS

Complete SoC development skill for the ESP32 family, ESP8266, ESP-IDF, Arduino core, and the full Espressif SDK ecosystem. From silicon to cloud.

IOT LIVE ESP-IDF ARDUINO MATTER RISC-V XTENSA
@espressif
01

OVERVIEW

Espressif Systems builds the world's most widely deployed IoT SoCs. From the original ESP8266 that democratised Wi-Fi for makers, to the ESP32-S3 powering edge AI cameras, to the ESP32-C6 bringing Matter and Thread to smart homes. 147+ open-source repositories on GitHub.

SoC Families
8
GitHub Repos
147+
Core SDK
ESP-IDF (FreeRTOS)
Architectures
Xtensa + RISC-V
Radios
Wi-Fi 6, BLE 5.3, Thread, Zigbee
02

SOC FAMILIES

Eight SoC families spanning Xtensa and RISC-V architectures. Each targets a different price/performance/radio combination.

SoCCPUWi-FiBLE802.15.4Key Feature
ESP32Xtensa LX6, 2x240MHzb/g/n4.2Original workhorse, PSRAM, CAN
ESP32-S2Xtensa LX7, 1x240MHzb/g/nUSB-OTG, Secure Boot V2
ESP32-S3Xtensa LX7, 2x240MHzb/g/n5.0AI vector instructions, camera, voice
ESP32-C3RISC-V, 1x160MHzb/g/n5.0Low cost RISC-V, small footprint
ESP32-C6RISC-V, 1x160MHz + LPWi-Fi 65.3Thread/ZigbeeTri-radio, Thread Border Router
ESP32-H2RISC-V, 1x96MHz5.3Thread/ZigbeeNo Wi-Fi, ultra-low power endpoint
ESP32-P4RISC-V, 2x400MHzNo radio, MIPI-CSI/DSI, USB 2.0 HS
ESP8266Tensilica L106, 80MHzb/g/nLegacy, still deployed. Use C3 for new
Chip Selection Guide

General IoT: ESP32 or ESP32-C3. Edge AI / Camera: ESP32-S3. Matter / Thread: ESP32-C6 (with Wi-Fi) or ESP32-H2 (without). USB devices: ESP32-S2. HMI / Display: ESP32-P4. Cost-optimised sensor: ESP32-C3.

03

ESP-IDF FRAMEWORK

The primary development framework. FreeRTOS-based, component-driven, with menuconfig for build-time configuration.

Project Structure

my_project/
+-- CMakeLists.txt          # Top-level build
+-- sdkconfig               # Generated config
+-- partitions.csv          # Flash partition table
+-- main/
|   +-- CMakeLists.txt      # Component build
|   +-- main.c              # Entry point (app_main)
|   +-- Kconfig.projbuild   # Custom menuconfig
+-- components/             # Custom components
    +-- my_driver/
        +-- CMakeLists.txt
        +-- include/my_driver.h
        +-- my_driver.c

Build, Flash, Monitor

. $IDF_PATH/export.sh        # Setup environment
idf.py set-target esp32s3    # Select SoC
idf.py menuconfig            # Configure
idf.py build                 # Build
idf.py -p /dev/ttyUSB0 flash monitor  # Flash + serial

Key APIs

SubsystemAPINotes
Wi-Fiesp_wifi_init(), esp_wifi_connect()Station, AP, provisioning
BLENimBLE stack (preferred)GATT server/client, mesh
GPIOgpio_config(), ISR service34 GPIO on ESP32
SPI/I2Cspi_bus_initialize()Master/slave, DMA
MQTTesp_mqtt_client_init()TLS, QoS 0/1/2, LWT
HTTPesp_http_client, httpdClient + embedded server
OTAesp_https_ota()HTTPS + rollback
NVSnvs_open(), nvs_set_*()Key-value flash storage
Consoleesp_consoleREPL over UART for debug
04

ARDUINO CORE

Arduino-compatible layer on top of ESP-IDF. setup()/loop() model with full access to ESP-IDF APIs underneath.

// Board Manager URL:
// https://espressif.github.io/arduino-esp32/package_esp32_index.json

// PlatformIO:
// platform = espressif32

#include <WiFi.h>
#include "esp_wifi.h"  // Can still use ESP-IDF directly

void setup() {
  Serial.begin(115200);
  WiFi.begin("SSID", "password");
  while (WiFi.status() != WL_CONNECTED) delay(500);
  Serial.println(WiFi.localIP());
}

void loop() {
  // Your application logic
}
05

SDKS & FRAMEWORKS

SDKPurposeChips
ESP-MatterMatter smart home protocol. Commission via QR/BLE. Thread Border Router on C6ESP32, C3, S3, C6, H2
ESP-RainMakerEnd-to-end IoT platform: provisioning, cloud, mobile apps, OTA, scenesAll ESP32
ESP-NOWConnectionless Wi-Fi P2P. 250-byte packets, 200m range, encrypted, 20 peersAll ESP32 + ESP8266
ESP-ATAT command firmware. Control ESP32 as modem from external MCU via UARTESP32, C3, C6
ESP-Mesh-LiteSelf-healing Wi-Fi mesh. Root connects to router, nodes relay. IP layerAll ESP32
ESP-SROn-device wake word + command recognition. AEC, BSS, NS for far-fieldESP32-S3
ESP-DLNeural network inference. INT8/INT16 quantised models. MobileNet, TFLiteESP32-S3
ESP-WHOCamera + AI. Face detection/recognition, human detection, QR readerESP32-S3
ESP-ZigbeeZigbee 3.0. Coordinator, Router, End Device. ZCL, Green PowerC6, H2
ESP-DSPDigital signal processing library. FFT, FIR/IIR filters, matrix opsAll ESP32
06

SECURITY

Secure Boot V2 (S2/S3/C3/C6/H2)

RSA-3072 or ECDSA signature verification on every boot. Key digest burned to eFuse — irreversible.

Flash Encryption

AES-XTS (S2/S3/C3/C6) or AES-256 (original ESP32). Development mode allows re-flash; Release mode is permanent.

Secure OTA

esp_http_client_config_t config = {
    .url = "https://ota.example.com/firmware.bin",
    .cert_pem = server_cert,
};
esp_https_ota_config_t ota_config = {
    .http_config = &config,
};
esp_https_ota(&ota_config);  // Download, verify, install, reboot
eFuse Warning

Enabling Secure Boot or Flash Encryption burns one-time programmable fuses. In Release mode this is irreversible — you cannot re-flash without the signing key. Always test in Development mode first.

07

POWER MANAGEMENT

ModeCurrentWake SourcesUse Case
Active~240 mA (Wi-Fi TX)Processing, transmitting
Modem Sleep~20 mATimer, GPIOWi-Fi connected, low duty
Light Sleep~0.8 mATimer, GPIO, touch, UARTPeriodic sensing
Deep Sleep~10 uATimer, EXT0/EXT1, touch, ULPBattery sensors
Hibernation~5 uAEXT0 onlyUltra-low duty

ULP Coprocessor

Runs during deep sleep. Reads ADC, GPIO, I2C. Wakes main CPU when threshold met. Assembly (ESP32) or RISC-V C (S2/S3).

08

DEVELOPMENT TOOLS

ToolPurpose
ESP-IDF VS Code ExtensionFull IDE: menuconfig GUI, flash, monitor, OpenOCD debug
PlatformIOpio run -t upload -t monitor. Multi-board, dependency management
esptool.pyDirect flash: esptool.py --chip esp32s3 write_flash 0x0 firmware.bin
ESP-ProgJTAG debugger hardware. Supports OpenOCD
ESP-LaunchpadWeb-based flashing via WebSerial API
ESP InsightsRemote diagnostics: crash logs, metrics, OTA status
09

KEY GITHUB REPOSITORIES

147+ repos under github.com/espressif. The essential ones:

RepoPurpose
esp-idfCore IoT Development Framework
arduino-esp32Arduino core for ESP32
esp-matterMatter protocol SDK
esp-rainmakerCloud IoT platform
esp-nowConnectionless Wi-Fi protocol
esp-srSpeech recognition
esp-dlDeep learning inference
esp-whoCamera AI pipeline
esp-zigbee-sdkZigbee 3.0 stack
esp-hostedCommunication processor firmware
esp-atAT command firmware
esp-dspDigital signal processing