ReSpeaker XMOS XVF3800 ESPHome integration

You may have heard about XMOS XVF3800 and ReSpeaker 4-mic board, based on this chip. The board is not on cheaper side, but it should be able to cover the most painful gaps, which other similar boards on XU316 may be lacking - big noisy rooms. I’m still testing it, but it works noticeably better than Respeaker Lite, due to its beam-forming and XMOS proprietary AEC and NS algorithms.

I just finished (with huge help from Seeed devs) writing ESPHome integration for it.
As with Respeaker Lite and Koala, i was striving to achieve feature parity, plus add a bit more.
There’s still work to do. E.g. there’s no exposed light entity for user to control (LED lights are controlled by I2C instead of addressable GPIO). Also there’s no additional buttons, that would aim to change volume and work like multi-action button (similarly to PE and Koala). So all the controls (except bi-directional mute) are done programmatically.
But all other functionality works, and i aim to provide thorough instructions and pre-built firmware to some Koala-like ready to use device with volume knob, speaker and enclosure.

If you have 1.0.5 alpha version of DFU installed on your board, please use official instructions to flash 1.0.5 version from my repo or official repo, since it has same version number with alpha, thus won’t be updated automatically. Otherwise you’re good to just flash ESP chip with example YAML config from the repository - it should work out of the box.

10 Likes

Thanks! This device is next on my shopping list! I just wish seeed made a version with a slightly more powerful speaker amplifier.

2 Likes

We await new developments… and perhaps even price drops.

1 Like

Now this is interesting. I am looking at this device to use as a replacement for a Logitech conferencing mic in my home office (overkill in terms of voice isolation capabilities for sure).
Will it be possible to add this as an ESPHome device and have it double as a conferencing mic for the computer?

No, unfortunately not. The software is mutually exclusive.

However, i guess you might use it just as an USB mic for the Wyoming satellite service on same computer :slight_smile: Or with new linux OHF satellite, that is using same ESPHome API.

@formatBCE did you have any trouble getting a computer to recognize the device? I just got mine, and I’m trying to flash the firmware. I tried on NixOS, macOS and windows and none of them recognized the device so i can update it, even when in safe mode. All the lights on the board light up correctly and recognize which direction the sound is coming from. I’ve tried dfu-utils, lusb, log streams for USB devices and nothing picks it up.

No, no troubles. Just press “mute” button upon putting the cable into XMOS USB port. It will flash with mute LED - that’s when it’s ready to be flashed (DFU).
Then on the other side just connect the ESP board to Mac and flash with web.esphome.io.

Thanks for the all the work. One issue I noted in my testing is that the wake-word does not seem to work when the voice assistant is playing music even on low volume. Your ReSpeaker-Lite version and the Satellite1 work well in this situation. This is not a real issue for me because rarely use the Voice Assistant devices to play music.

Yes, i noticed that too - and updates to DFU are coming. :slight_smile:

1 Like

I see you can either choose a XIAO ESP32-S3 (required for HA integration) or a case. Why are they mutually exclusive? Is there a case design that we can 3D print?

I believe there’s no room in the case for ESP.
I will be working on enclosure. Just need some inspiration :slight_smile:
I already created 3d model for the board. Now seeking for good form-factor.

3 Likes

I had a similar issue. solution was to change the usb-c cabel. first i used one which was for charging only

1 Like

I tried several cables that I knew were data capable. I flashed one of the Louder esp32s on right after failing with the Respeaker using the web flasher.

In case anyone else hits this issue, I ended up needing to use esptool: GitHub - espressif/esptool: Serial utility for flashing, provisioning, and interacting with Espressif SoCs

Then esptool.py chip_id was able to find it at /dev/cu.usbmodem2101 in my case. After that I successfully flashed it with esptool --port /dev/cu.usbmodem2101 write_flash 0x10000 your_firmware_file.bin

I was able to get the web flasher to kind of finish once, but it just kept crashing before getting a successful install.

Last weird thing was that my Mac wouldn’t connect to the esp if I had power on the XMOS port.

I just bought a reSpeaker XVF3800 USB 4 Microphone Array with XIAO ESP32S3 and i followed the firmware instructions and everything without any issues or errors, but the respeaker is not responding to anything. It powers on, but there are no longer any lights or microphone registration like there was before the firmware flash. I can see in the ESPHome logs that my commands are being registred when i toggle things on and off in Home Assistant, but thats it. I bought 2 of them, and experiencing the exact same issue!

What are the instructions you tried?
I don’t have any instructions in my repo, and instructions on Seeed site are somewhat obsolete.

@mrPickles when you put cable into XMOS port, AFAIK ESP data port gets blocked or something, because they cannot be connected simultaneously.

@formatBCE Thx you so much for this! I spent some hours trying to get the ReSpeaker XVF3800 running following the official documentation from Seeedstudio… with no success. Using your repo solved it in minutes :partying_face:

2 Likes

Great to hear!
Mine repo is also sudo-official, since we work on that with Seeed devs. It’s just not adopted by docs yet :wink:

I was having the same issue when trying to flash it on my Windows 10 computer, I then tried to flash it on an old Windows 7 laptop, and it worked with no issues. I don’t know if the Windows version was the issue, or if it was something else installed on that computer that was affecting it, but it might be something to try.