Prerequisites
Install the following before you begin: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 installs 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 the 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 the 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 you flash the firmware:Monitor device
Learn how to monitor logs and test your device
Hardware assembly
Complete hardware setup and assembly guide