IoT SDK
The IoT SDK brings VideoSDK's real-time audio, video, and messaging to embedded devices. It is written natively in C and runs on ESP32-S3 microcontrollers, so your hardware can join a meeting and interact with other participants just like any other VideoSDK client.
Quick Start
Get an ESP32-S3 board into a live meeting, from ESP-IDF setup to first call.
IoT + AI Agent
Pair a device with a VideoSDK AI Agent for two-way voice interaction, with no model running on the device.
Run the Sample Project
Flash the reference project and see audio, video, and data channels working end to end.
GitHub Repository
The IoT SDK example project and source.
The Architecture
A device running the IoT SDK joins a VideoSDK room as a participant. Once it is in the room, everything the platform already does for browser and mobile clients applies to the device too, and every other VideoSDK client can see and talk to it.

- Your device runs the IoT SDK on an ESP32-S3 board. It publishes audio and video, subscribes to other participants, and exchanges messages over the data channel.
- VideoSDK infrastructure hosts the room the device joins. Because the device is a normal participant, platform capabilities such as live streaming, recording, and session analytics operate on that room. These run on the platform, not on the microcontroller.
- Control platforms are your web, mobile, and desktop apps built with any other VideoSDK client SDK. They join the same room to view the device's streams and send it commands.
What the IoT SDK itself implements on the device:
- Media - publish and subscribe to audio and video, subject to what the board's hardware supports.
- Data channel - send and receive messages alongside media, which is how control commands, sensor readings, and status updates travel in both directions.
Supported Boards
The ESP32-S3-Korvo-2 has a microphone, speaker, camera, and display. The Seeed XIAO ESP32-S3 Sense is a send-only board with no speaker or display, so its subscribe calls return DEVICE_NOT_SUPPORTED.
| Board | Send audio | Receive audio | Send video | Receive video | Send and receive messages |
|---|---|---|---|---|---|
| XIAO ESP32-S3 (Sense) | ✓ | - | ✓ | - | ✓ |
| ESP32-S3-Korvo-2 v3.1 | ✓ | ✓ | ✓ | ✓ | ✓ |
Both boards can send and receive Data Channel messages. Both need 8 MB flash and octal PSRAM.
See Supported Microcontrollers for the full detail.
Next Steps
Quick Start
Get an ESP32-S3 board into a live meeting, from ESP-IDF setup to first call.
Run the Sample Project
Flash the reference project and see audio, video, and data channels working end to end.
Need Help?
If you have any queries, please feel free to reach out to us using one of the following methods:
Got a Question? Ask us on discord

