The Dot device is the hardware target for OpenDot voice agents. Today it is a firmware-first prototype that runs on a tested reference development board. The longer-term goal is open hardware for a purpose-built Dot device, but the current docs should stay honest about what has actually been tested.Documentation Index
Fetch the complete documentation index at: https://docs.opendot.ai/llms.txt
Use this file to discover all available pages before exploring further.
You do not need a physical device to use OpenDot Platform! Start in the web app, make the
platform reliable, then bring the same agent to hardware when you are ready.
Current reference board
OpenDot firmware currently targets the Waveshare ESP32-S3-AUDIO-Board. This is the board tested so far for the local Dot device flow.
- ESP32-S3R8 MCU with 2.4 GHz Wi-Fi and Bluetooth LE
- 8 MB PSRAM and 16 MB external flash
- dual microphones for voice input
- ES7210 and ES8311 audio path for microphone input and speaker output
- speaker header and audio enclosure
- RGB LED ring, buttons, USB-C, TF card slot, battery support, and expansion connectors

Firmware shape
The firmware lives indot-device/firmware/ and is an ESP-IDF project, not an
Arduino sketch. It currently handles:
- Wi-Fi provisioning through a temporary
opendot-...access point - OTA bootstrap through
CONFIG_OTA_URL - activation code speech and claim flow through the OpenDot runtime and platform API
- wake-word behavior
- WebSocket connection to the runtime
- microphone capture and speaker playback
- display and LED status
dot-device/firmware/LICENSE.xiaozhi when moving or
substantially modifying firmware code.
Runtime relationship
The device does not connect to the browser UI. It connects to the local or hosted OpenDot runtime:- Firmware boots and reaches the runtime OTA endpoint.
- The runtime proxies activation to the platform API.
- The platform API creates or verifies an activation request.
- The device speaks a claim code.
- The user enters that code in Dot Device.
- The platform stores a device credential.
- Future
/wssessions authenticate with that credential and load the bound agent configuration.
Hardware interface reference
The reference board exposes more than OpenDot uses today. The important areas for contributors are audio I/O, display, buttons, LEDs, Wi-Fi, power, and runtime network reachability.
config.h, but treat OpenDot’s firmware source as the contract for the current
prototype.
Hardware coming soon
The future open hardware Dot device should keep the same product constraints visible:- reliable near-field and practical far-field capture
- speaker output that makes TTS testing honest
- physical status through light, display, or both
- simple power, battery, and USB debugging paths
- casing and acoustic choices that do not hide microphone or speaker behavior
- reproducible firmware flashing and serial diagnostics
Contributor checklist
When changing device-facing behavior, check both sides of the boundary:- Dot Device console for the console pairing and binding workflow
- Platform architecture for OTA, credential, runtime, and data-model ownership
dot-device/firmware/README.mdfor ESP-IDF setup, flashing, provisioning, and serial monitoringdot-device/firmware/main/boards/waveshare/esp32-s3-audio-board/for the current board definition