Flashing voice devices
The supported board has two chips: a reSpeaker XVF3800 for audio and a XIAO ESP32-S3 for OE’s networking, wake words, and playback. The browser wizard installs the bundled firmware in two steps.
Before you start
- Use desktop Chrome or Edge with WebUSB and Web Serial available.
- Open OE over HTTPS, or use
http://localhost:3737on the OE host. Plain HTTP over a LAN IP cannot expose the browser’s flashing APIs. - Connect a USB data cable to the computer running your browser. OE can run on another server; the USB device must be attached to your browser’s computer.
- Flash one device at a time and keep it connected until each step finishes.
Open Voice devices → Flash new to launch the wizard.
Step 1: XVF3800 audio firmware
- Connect the cable to the XVF3800’s USB port. Normally no button hold is needed.
- Choose Connect XVF3800.
- In the browser picker, choose reSpeaker XVF3800 4-Mic Array or the corresponding XMOS/Seeed device.
- Choose Flash XVF3800 and watch the progress and log. Wait for the wizard to advance to Step 2.
This installs the I²S-master firmware needed by the ESP32-S3. If the board already has that firmware and works with OE, Skip → Step 2 avoids repeating this step during an ESP32 update.
Step 2: ESP32-S3 application firmware
- Move the cable to the XIAO ESP32-S3’s own USB port. This is a different port from the one used for the XVF3800.
- Choose Connect ESP32-S3, then USB JTAG/serial debug unit in the picker.
- Choose Flash ESP32-S3. The wizard enters download mode and writes the bundled firmware partitions and wake-word data.
- Wait for success and reboot. If the device does not reconnect or expose its setup network, unplug and reconnect its power.
For a new device, choose + Pair this device, join its oe-voice-XXXX Wi-Fi, and complete Pairing a device. An existing device’s Wi-Fi credentials and pairing are preserved by the normal reflash, so it should reconnect without pairing again. Use Reset Wi-Fi from its device card when you actually want to change its network.
Troubleshooting
- Browser API unavailable: check HTTPS/localhost and the browser’s WebUSB and Web Serial support. The wizard explains which capability is missing.
- XVF3800 missing from the picker: try a known data cable and a direct USB port. For recovery, unplug the board, hold Mute, and reconnect while holding it to enter recovery DFU mode. Then connect through the wizard again.
- ESP32 missing from the picker: check that the cable has moved to the XIAO’s port and that another serial application is not using it.
- Firmware download or verification fails: read the log and check the OE server’s bundled firmware before retrying. Do not replace files with an unrelated board’s firmware.
- Second board: reconnect and select that board in the browser picker; a connection granted for the first board does not select the next one.
Firmware changes can affect hardware behavior. Follow the wizard’s current prompts and use its verification result rather than assuming a fixed flash time.