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 for instant PC connectivity and INT-Device (I2S) mode for integration with embedded systems—configurable via USB or I2C commands by switching the firmware accordingly

  • Open Source Compatible :Works with USB hosts (Windows, macOS, Raspberry Pi OS) and I2S hosts (XIAO Series, ESP32, Arduino).

  • 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).
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.
note

The ReSpeaker XVF3800 is offered in two variants—one without XIAO and another with the XIAO ESP32S3 onboard. The version without XIAO operates with default USB firmware. To use the XIAO-integrated version, you must flash firmware built for INT-Device (I2S) mode. For detailed setup instructions, refer to the official wiki guide.

XIAO ESP32S3 support

  • Stereo I2S input/output with multiple output options; I2C interface for configuring and managing XVF3800 parameters.
  • XIAO reset via IO pin
  • Interface and solder pads

Pin Out

pir

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

Three firmware versions are available in the official GitHub repository. You can choose and flash the appropriate firmware depending on your application requirements. For more details and downloads, please refer to the Github Link

note

Do NOT use "save as" to download the firmware files from GitHub as they will get corrupt. Clone the repository or use "Download as ZIP" to download the whole repository (and all included files) as ZIP file.

The USB firmware is designed for use with host operating systems such as Windows, Linux, and macOS when communicating through the USB hardware interface.

Two firmware variants are available: respeaker_xvf3800_usb_dfu_firmware_v2.0.x.bin, which provides 2-channel audio, and respeaker_xvf3800_usb_dfu_firmware_6chl_v2.0.x.bin, which provides 6-channel audio. Both firmware versions operate at a 16 kHz sampling rate with 32-bit depth.

You can explore these firmware files in this link

FirmwareChannelsNotes
respeaker_xvf3800_usb_dfu_firmware_v2.0.x.bin2Processed 2-channel output
Channel 0: Conference
Channel 1: ASR
respeaker_xvf3800_usb_dfu_firmware_6chl_v2.0.x.bin6Channel 0: Processed audio (Conference)
Channel 1: Processed audio (ASR)
Channel 2: Mic 0 raw data
Channel 3: Mic 1 raw data
Channel 4: Mic 2 raw data
Channel 5: Mic 3 raw data

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 the complete firmware repository from GitHub hereXMOS 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 Tuning parameters?

Tuning allows users to configure parameters of the built-in audio algorithms and communicate directly with the XMOS chip.

A dedicated Python control interface is provided for parameter configuration and device interaction.

Python Control Directory

Using the provided Python scripts, you can:

  • Configure built-in audio algorithm parameters
  • Retrieve DoA (Direction of Arrival) data
  • Retrieve VAD (Voice Activity Detection) data
  • Control onboard LEDs
  • Control the voice processing pipeline
  • Communicate directly with the XMOS device

System Requirements

The following dependencies are required to use the Python control interface:

  • Python 3.6 or later
  • pyusb Python library
  • libusb system library

Installation & Dependencies

Install the required Python dependency using:

pip install pyusb

Depending on your operating system, you may also need to install the libusb package separately.

Usage

Basic Syntax

python xvf_host.py [options] command [value(s)...]

Command Options

OptionDescription
-l, --listList all supported commands with detailed information
--vidSet USB Vendor ID (default: 0x2886)
--pidSet USB Product ID (default: 0x001A)
--valuesProvide values for write commands (optional)

Usage Examples

List Available Commands

Display all supported firmware commands.

python xvf_host.py --list

Read Firmware Version

Retrieve the firmware version currently running on the device.

python xvf_host.py VERSION

Example Output

VERSION: [2, 0, 7]

Read Direction of Arrival (DOA)

Retrieve the detected sound source direction.

python xvf_host.py DOA_VALUE

Example Output

DOA_VALUE: [135]

Set LED Color

Configure the LED color using a hexadecimal RGB value.

python xvf_host.py LED_COLOR --values 0xFF0000

Set LED Brightness

Adjust LED brightness percentage.

python xvf_host.py LED_BRIGHTNESS --values 50

Read Microphone Array Geometry

Retrieve the microphone coordinates used by the acoustic processing algorithms.

python xvf_host.py AEC_MIC_ARRAY_GEO

Example Output

AEC_MIC_ARRAY_GEO:
[0.033, -0.033, 0.000,
0.033, 0.033, 0.000,
-0.033, 0.033, 0.000,
-0.033, -0.033, 0.000]

Troubleshooting

Does playback sound from speaker output not enough ?

If the speaker output volume of the ReSpeaker XVF3800 is too low on Linux, you may need to adjust the ALSA mixer levels for the XVF3800 sound card. Follow the steps below to increase the output volume.

Step 1: Open ALSA Mixer

  1. Open a terminal.

  2. Type the following command and press Enter:

    alsamixer

Step 2: Select the XVF3800 Sound Card

  1. Press F6 to open the sound card selection menu.
  2. Use the up/down arrow keys to highlight the XVF3800 sound card.
  3. Press Enter to confirm the selection.

Step 3: Adjust the PCM-1 Volume

  1. Use the left/right arrow keys to navigate to PCM-1.
  2. Use the up arrow key to increase the volume level up to 100%.

pir

Step 4: Save ALSA Settings

  1. Press ESC to exit alsamixer.
  2. Before unplugging the XVF3800, run the following command to save your settings:
   sudo alsactl store

Step 5: Additional Option (Using PulseAudio)

If you still cannot hear sound clearly after adjusting ALSA levels, try installing PulseAudio Volume Control for more detailed volume adjustments:

sudo apt install pavucontrol -y

You can then open pavucontrol and increase the output volume beyond 100% if needed.

After reinstalling the USB drivers, my ReSpeaker doesn’t record and playback

Uninstall all drivers associated with the ReSpeaker in Device Manager. This resolved the issue.

Cannot use as sound devices in Windows after flashing firmware ?

Open the start menu and type Device manager. Find related reSpeaker XVF 3800 devices, right click them and select Uninstall devices. After that, restart the device (usb plug and unplugged) and Windows will re-install the right sound card driver for it.

pir

Resources

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...