Prerequisites
Before you begin, ensure you have the following installed:1
Install PlatformIO
PlatformIO is required to build and flash the firmware. Install it using one of these methods:Using Homebrew (macOS/Linux):Using pip (All platforms):Verify installation:
2
Install Required Libraries
PlatformIO will automatically install the required libraries when you build the firmware. The dependencies include:
- NimBLE-Arduino (v1.4.1+) - Bluetooth Low Energy stack
- esp32-camera (v2.0.0+) - Camera driver for ESP32
- arduino-libopus - Audio codec for voice encoding
platformio.ini configuration.3
Connect Your Device
Connect your ESP32 S3 XIAO board to your computer via USB-C cable.
Use a quality USB-C cable that supports data transfer, not just charging.
Flash the Firmware
Navigate to the firmware directory and flash using PlatformIO:1
Navigate to Firmware Directory
2
Build and Upload Firmware
Try the standard build environment first:If you experience connection issues, use the slower upload environment:
The
seeed_xiao_esp32s3_slow environment uses a slower upload speed (57600 baud) which is more reliable for some USB connections.3
Wait for Upload
PlatformIO will:
- Install dependencies (first time only)
- Compile the firmware
- Upload to your device
- Reset the device automatically
Build Environments
The firmware supports two build environments:Advanced: Build Without Uploading
Advanced: Build Without Uploading
If you only want to compile the firmware without uploading:The compiled binary will be in
.pio/build/seeed_xiao_esp32s3/firmware.binTroubleshooting
Upload Failed - Device Not Found
Upload Failed - Device Not Found
Problem: PlatformIO cannot find your ESP32 device.Solutions:
- Check USB cable is properly connected
- Try a different USB port (connect directly, not through a hub)
- On macOS: Check System Settings > Privacy & Security for any blocked devices
- Verify device appears with
ls /dev/tty.*orls /dev/cu.*
Permission Denied Error
Permission Denied Error
Problem: Cannot access the serial port.Solutions (macOS/Linux):Or add your user to the dialout group (Linux):Then log out and back in.
Compilation Errors
Compilation Errors
Problem: Build fails with compilation errors.Solutions:
- Clean the build and try again:
- Update PlatformIO:
- Delete
.piofolder and rebuild:
Upload Hangs or Times Out
Upload Hangs or Times Out
Problem: Upload process starts but never completes.Solutions:
- Use the slower environment:
- Try a different USB cable
- Restart your computer and device
Next Steps
After successfully flashing the firmware:Monitor Device
Learn how to monitor logs and test your device
Hardware Assembly
Complete hardware setup and assembly guide