Skip to main content

Getting Started with ReSpeaker XVF3800

Overview

The ReSpeaker XVF3800 USB 4-Mic Array is a professional 4-mic circular array with XMOS XVF3800, featuring AEC, AGC, DoA, beamforming, VAD, noise suppression, de-reverberation, 360° voice capture (up to 5m), and dual operation modes for advanced voice applications.

pir

Features

  • Chip upgrade :From XVF3000 to XVF3800

  • Quad Microphone Array :4 high-performance mics in circular pattern for 360° far-field voice capture up to 5 meters

  • Advanced Audio Processing :Powered by XVF3800 with AEC, multi-beamforming, de-reverberation, DoA detection, dynamic noise suppression, 60dB AGC range

  • Unique Device Serial Number :Built-in SN enables multi-device deployments and advanced device management

  • Dual Operation Modes :USB plug-and-play mode and INT-Device mode, configurable via USB or I2S

  • Open Source Compatible :Works with XIAO Series, Arduino, Raspberry Pi, PC/Mac via I2S and USB Audio Class 2.0

  • Visual Feedback :Programmable RGB LEDs and status indicators show device states and voice activity

  • Equal or better audio quality :compared to previous model

Hardware Overview

pir

Main Components

Component / FeatureDescription
Main Audio ProcessorXMOS XVF3800, handles audio processing including AEC, beamforming, noise suppression, etc.
Microphone ArrayQuad PDM MEMS microphones in circular pattern, supporting 360° far-field voice capture (5m).
Audio CodecTLV320AIC3104, handles audio conversion and output.
RGB LEDs12x WS2812 individually-addressable RGB LEDs for visual feedback (e.g., status, voice activity).
Power Indicator LightRed LED, always on when device is powered.
Mute ButtonPress to mute/unmute the microphone input.
Mute Indicator LEDLights up (typically red) to show that audio is muted.
Reset ButtonHardware reset for the board/system.
USB Type-C PortUsed for both power and data (USB Audio Class 2.0 compliant).
3.5mm AUX Headphone JackAudio output for headphones or active speakers.
Speaker ConnectorJST speaker interface, supports 5W amplified speakers.
Debug PadsDebug access for XTAG4 or other programmers.
I2C & I2S HeadersExposed headers for I2C and I2S communication with external devices.
Unused IO Pads (XIAO)Additional I/O solder pads connected to XIAO module.
I2S & I2C CommunicationSupports connection to external hosts like Raspberry Pi, PC, etc. using these protocols.
USB & INT-Device ModesDual-mode operation: plug-and-play USB or internal INT device mode via I2S.
Unique Serial NumberBuilt-in device SN for identification and multi-device management.
Open Source CompatibilityWorks with Arduino, Raspberry Pi, PC/Mac, and compatible with XIAO Series.
Advanced Audio FeaturesAEC, beamforming, dereverberation, DoA detection, DNN-based noise suppression, 60dB AGC.
Visual FeedbackDevice state and audio activity shown via RGB LED patterns and status indicators.
Audio QualityEqual or better than the previous XVF3000-based designs.

XIAO ESP32S3 support

  • I2S & I2C communication
  • XIAO reset via IO pin
  • Interface and solder pads

Pin Out

pir

GPIO Overview

The reSpeaker XVF3800 exposes 3 input pins (GPI) and 5 output pins (GPO) for external control. You can use these to read button states or control hardware like the mute LED, amplifier, or LEDs.

Pin NameDirectionFunction
X1D09Input (RO)Mute button status (high when released)
X1D13Input (RO)Floating
X1D34Input (RO)Floating
X0D11Output (RW)Floating
X0D30Output (RW)Mute LED + mic mute control (high = mute)
X0D31Output (RW)Amplifier enable (low = enabled)
X0D33Output (RW)WS2812 LED power control (high = on)
X0D39Output (RW)Floating

Getting Started

Hardware Preparation

  • USB Type-C cable
  • Host computer or Raspberry Pi

Software Preparation

Out of Box Usage

DOA (Direction of Arrival)

You can experience the LED array following the direction of the incoming voice.

Mute Button

pir

The Mute button on your ReSpeaker is used to temporarily disable voice capture from the microphone array. What happens when you press the Mute button?

  • The microphones are muted — external voices will no longer be captured or processed.
  • A red LED lights up to indicate that mute mode is active.
  • This means the ReSpeaker will not send any audio input to your computer or host device.

Try It Yourself with Audacity

pir

Reset Button

The reset (RST) button provides a hardware reset for the XVF3800—when pressed, it restarts the chip and reinitializes the system from the very beginning, just like a full power cycle.

pir

Speaker Connection

Here you can see how to connect speakers using either the 3.5mm AUX headphone jack or the onboard JST speaker interface, depending on your audio output preference.

pir

pir

Safe Mode

Safe Mode is a special recovery mode on the ReSpeaker XVF3800 that allows you to flash firmware via USB DFU or I2C—for devices like the Raspberry Pi and ESP32. If you've previously flashed the I2S firmware and want to switch back to the USB firmware, you can enter Safe Mode and reflash the USB firmware using USB DFU.

note

Each type of firmware on the ReSpeaker XVF3800 supports different update methods:

  • The USB firmware only supports USB DFU, which means you can update the device using a USB connection. However, it does not support I2C DFU.

  • The I2S firmware is the opposite—it supports I2C DFU, allowing firmware updates over an I2C interface, but it does not support USB DFU.

  • The Safe Mode firmware, which is stored in the Factory partition, is the most flexible. It supports both USB DFU and I2C DFU.

When to Use Safe Mode

  • Your firmware isn't working properly (e.g. USB not detected, LED not lighting up as expected).
  • You need to re-flash a new firmware but the current one won’t respond.
  • You accidentally flashed something wrong and want to recover.

How to Enter Safe Mode

  • Power off the device completely.
  • Press and hold the Mute button.
  • While holding the mute button, reconnect the power.
  • The red LED will start blinking — this confirms the device is now in Safe Mode.
  • Now the device runs the Safe Mode firmware stored in the Factory partition.

Update Firmware

Connect the reSpeaker XVF3800 to your PC via the USB cable. Note that you need to use the XMOS USB-C port(close to 3.5mm jack port) to flash XMOS’s firmware.

Install DFU Util

dfu-util is a command line tool for Device Firmware Upgrade via USB.

  • Download dfu-util-0.11-binaries.tar.xz and extract it, e.g., D:\dfu-util-0.11-binaries\win64\
    Download Link

  • Add the path to dfu-util.exe to your system Path variable:
    My Computer > Properties > Advanced > Environment Variables > Path

  • Open Command Prompt (cmd) and verify installation:

dfu-util -V

pir

  • Connect the ReSpeaker XVF3800 and check device detection:
dfu-util -l

pir

If you get:
Cannot open DFU device 2886:001a ... (LIBUSB_ERROR_NOT_SUPPORTED)
Proceed with the driver installation step below.

  • Install Zadig
    • Open Zadig → Options > List All Devices
    • Select reSpeaker 3800 or reSpeaker XVF3800 4-Mic Array
    • Install WinUSB driver
    • Power-cycle the device
    • Run dfu-util -l again to confirm detection.

Flash Firmware

Download Firmware From Here.XMOS XVF 3800

  • Run the following command to flash the firmware

dfu-util -R -e -a 1 -D /path/to/dfu_firmware.bin
  • On Linux, run it with sudo
sudo dfu-util -R -e -a 1 -D /path/to/dfu_firmware.bin
  • The -R option will automatically restart the board after flashing.

pir

  • Check the firmware version again with dfu-util -l command, to make sure the new firmware is flashed

Recording and Playback

Setup Audacity (Windows)

  1. Open Audacity
  2. Go to Audio Setup > Audio Settings

pir

  1. Set:
    • Host: Windows WASAPI
    • Recording Device: reSpeaker 3800
    • Channels: 2 (Stereo)
    • Sample Rate: 16000 Hz (for both Project and Default Sample Rate)
    • Sample Format: 24-bit

pir

  1. Click OK
  2. You’re ready — start recording!

pir

How to Control reSpeaker XVF3800

The reSpeaker XVF3800 is equipped with a control interface that allows users to configure the device's operation, set or read parameter data and save parameter data on the device. Users can control the device via the USB or I2C interface. A sample host application, xvf_host (for Linux, macOS, and Raspberry Pi OS) or xvf_host.exe (for Windows), is provided to easily connect to the control interface of the reSpeaker XVF3800.

Download From Here

note

If you would like to explore more about controlling via xvf_host, please read this article.

Windows Users

  • Ensure ReSpeaker XVF3800 is connected via USB
  • Unzip xvf_host.exe into a folder like:
C:\Tools\xvf_host\

Verify Installation

cd C:\Tools\xvf_host
xvf_host.exe --help

Check Device Connection

xvf_host.exe VERSION

Expected output:

Device (USB)::device_init() -- Found device VID: 10374 PID: 26 interface: 3
VERSION 2 0 2

LED Control

CommandExampleDescription
led_effectxvf_host.exe led_effect 10=off, 1=breath, 2=rainbow, 3=solid, 4=DoA
led_colorxvf_host.exe led_color 0xff8800Set hex color (orange)
led_speedxvf_host.exe led_speed 1Set effect speed
led_brightnessxvf_host.exe led_brightness 255Set brightness
led_gammifyxvf_host.exe led_gammify 1Enable gamma correction
led_doa_colorxvf_host.exe led_doa_color 0x0000ff 0xff0000Set DoA base/directional color

🟠 Example (breath orange):

xvf_host.exe led_effect 1
xvf_host.exe led_color 0xff8800
xvf_host.exe led_speed 1
xvf_host.exe led_brightness 255

Configuration

xvf_host.exe save_configuration 1
xvf_host.exe clear_configuration 1

GPIO Control

Read Inputs:

xvf_host.exe GPI_READ_VALUES

Output example: GPI_READ_VALUES 1 0 0

In this example, the return 1 0 0 means that Pin X1D09 is high level, Pin X1D13 is low level and Pin X1D34 is low level.

Read Outputs:

xvf_host.exe GPO_READ_VALUES

Output example: GPO_READ_VALUES 0 1 1 0 0

In this example, the return 0 0 0 1 0 means that Pin X0D11 is low level, Pin X0D30 is low level, Pin X0D31 is high level, Pin X0D33 is high level and Pin X0D39 is low level.

Set Output:

xvf_host.exe GPO_WRITE_VALUE 30 1  # Turn ON mute LED
xvf_host.exe GPO_WRITE_VALUE 30 0 # Turn OFF mute LED

Python Examples for ReSpeaker XVF3800

We have prepared Python examples to control the device via USB or I2C.

note

If you would like to explore more about controlling via xvf_host with python scripts, please read this article.

For Windows

git clone https://github.com/KasunThushara/reSpeakerXVF.git
cd reSpeakerXVF
python test.py

Make sure Python is installed and the ReSpeaker XVF3800 is connected via USB.

The test.py file can be explored as follows. This is for your reference.

import subprocess
import sys
import time

# Path to your xvf_host binary
XVF_HOST_PATH = "./xvf_host" # Change this if xvf_host is in a different location

def run_command(*args):
"""Run a command using the xvf_host tool."""
command = ["sudo", XVF_HOST_PATH] + list(map(str, args))
try:
print(f"Running: {' '.join(command)}")
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True, text=True)
print("Output:\n", result.stdout)
except subprocess.CalledProcessError as e:
print("Error:\n", e.stderr)
sys.exit(1)

if __name__ == "__main__":
# Example: Get device version
run_command("VERSION")
time.sleep(0.005)

# Example: Set LED to breath mode with orange color
run_command("led_effect", 1)
time.sleep(0.005)
run_command("led_color", "0xff8800")
time.sleep(0.005)
run_command("led_speed", 1)
time.sleep(0.005)
run_command("led_brightness", 255)
time.sleep(0.005)

# Example: Save current configuration
#run_command("save_configuration", 1)

# Uncomment to clear config
run_command("clear_configuration", 1)
time.sleep(0.005)

pir

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...