
Introduction to the ESP32-S31 with Vision
Table of Contents
Welcome to the Introduction to the ESP32-S31 with Vision workshop!
About this workshop#
In this workshop, you will explore the ESP32-S31 system-on-chip (SoC) and build computer-vision applications that run entirely on the device. You will use the ESP32-S31-Korvo-1 multimedia development board, its Board Support Package (BSP), ESP-Vision, and ESP-DL.
The workshop begins with the SoC and development board overviews. You’ll first use the ESP-VISION workflow to build camera and safety-zone applications in MicroPython—a lightweight implementation of Python designed for microcontrollers. Your Python code will run directly on ESP32-S31, rather than on your computer.
Then, you’ll contrast the ESP-VISION workflow with the traditional ESP-IDF workflow by using the ESP32-S31-Korvo-1 BSP and adding ESP-DL face detection to its camera example.
If you choose so, you will be able to use AI with the ESP-Vision MCP server for agent-assisted application development.
Inference remains local throughout the workshop. Camera frames do not need to be sent to a cloud service.
By the end of the workshop, you will know how to:
- Identify the processing, connectivity, multimedia, and security capabilities of the ESP32-S31.
- Use ESP-Vision and develop camera applications in Python.
- (optional) Connect an AI coding assistant to the ESP-Vision MCP server.
- Select an appropriate local model for an embedded vision task.
- Detect and track hands in camera frames.
- Detect when a hand enters a safety zone and generate a local warning.
- Use the ESP32-S31-Korvo-1 camera, display, touch, LED, audio, and storage hardware through its BSP.
- Load an ESP-DL model and run face detection from an ESP-IDF application.
Prerequisites#
Required hardware#
- Computer running Linux, Windows, or macOS.
- ESP32-S31-Korvo-1.
- USB Type-C data cable to connect your computer to the board’s UART port.
- USB Type-A to Type-A data cable to connect the ESP32-S31-Korvo-1 to the ESP-Vision Web IDE.
- (optional) microSD card formatted as FAT32 for storing model files that are too large for the ESP-Vision internal flash filesystem.
- (optional) Another USB Type-C cable for the dedicated power port.
When the board receives power through the USB Type-A connection, the board’s power switch cannot turn it off. Disconnect the Type-A to Type-A cable to fully remove power.
Required software#
ESP-Vision#
- A desktop browser with Web Serial support for the ESP-Vision Web IDE and web flasher: Google Chrome 89+, Microsoft Edge 89+, Opera 76+, or Firefox 151+. Other Chromium-based browsers, such as Brave, may also work. Safari is not supported; Chrome or Edge is recommended.
- Cursor for the agent-assisted exercises. Other MCP-compatible agents can also be used, including Visual Studio Code with GitHub Copilot agent mode, Claude Code, and Claude Desktop.
ESP-DL and native ESP-IDF development#
- ESP-IDF v6.1 or later; v6.1 is recommended. ESP32-S31 is a preview target in v6.1, so
idf.pycommands need the--previewoption gitand a serial terminal- Optional: Visual Studio Code with the ESP-IDF extension
ESP32-S31 support is evolving. The commands and APIs in this workshop target ESP32-S31, BSP espressif/esp32_s31_korvo_1 1.1.x, and ESP-DL 3.3.x. If you intentionally use newer component versions, review their changelogs before adapting the examples.
Agenda#
- Overview of the ESP32-S31 SoC
- Overview of the ESP32-S31-Korvo-1 devboard
- Tooling: Getting started with ESP-Vision
- Tooling: Set up the ESP-Vision MCP server (optional)
- Assignment 1: LED blink with ESP-Vision
- Assignment 2: Your first camera application
- Lecture 1: Available models for ESP-Vision
- Assignment 3: Hand detection with ESPDet
- Assignment 4: Add a safety zone
- Assignment 5: Keep hands off!
- Assignment 6: Get started with the ESP32-S31-Korvo-1 BSP
- Assignment 7: Face detection with ESP-DL
- Conclusion
Time requirements#
Next step#
Feedback#
If you have any feedback about this workshop, feel free to start a new discussion on GitHub.
