Hi guys - after some support
I’m using a Raspberry Pi Zero 2 W with a Seeed reSpeaker XVF3800 4-Mic Array over USB.
On a cold power-up with the ReSpeaker already plugged in, Linux detects it normally and ALSA shows the capture device, but the audio stream is corrupt.
If I unplug/replug the ReSpeaker after the Pi is already running, the same test and the audio is clean. Pressing the ReSpeaker’s onboard reset button also fixes it. A Linux USB unbind/rebind does not fix it.
So it looks like the ReSpeaker needs a real hardware reset or real USB power cycle after the Pi has booted.
My questions are:
- Can a Raspberry Pi Zero 2 W software-control or power-cycle the USB OTG port’s VBUS?
- Is there a safe way to electronically trigger the ReSpeaker XVF3800 reset button from GPIO or a small external circuit?
- Is this a known issue - if so is there a software fix?
Thank you in advance
Gary
1 Like
Hi Gary,
Welcome to the forum!!
Your test result is a good clue: if the onboard reset button fixes it but USB unbind/rebind doesn’t, I’d verify whether the ReSpeaker is ever truly performing that full software reset.
There is a Linux root-hub unbind method often used on Raspberry Pi to reset USB power, but I wouldn’t assume it is giving the XVF3800 the same reset as physically removing VBUS (and data). Easiest check: put a meter across the ReSpeaker’s USB 5 V/GND while you run the unbind/rebind. If 5 V stays present, software won’t be enough for this fault mode.
For a robust workaround, switch the ReSpeaker’s USB 5 V externally after the Pi has booted. A USB Power Switch can be GPIO-controlled via EN, but note it is not a plug-in inline USB data switch — you’d need to use it in a split-power arrangement or otherwise switch only the VBUS line while keeping the USB data path correct.
For the reset button, an opto-coupler across the two button pads is the cautious “electronic finger” approach. I’d only use a transistor/MOSFET directly after confirming with a meter/schematic that the button is just pulling a low-voltage reset line to ground.
I found a Seeed forum for a similar XVF3800 reboot/hang symptom where host-side USB reset was reported not to reset the device internals, so checking the posts solution and giving that a go!
Keen to see how you go, please let us know if this doesnt quite get the part over the line!
Liam