ReSpeaker XVF3800 hangs after computer reboot

On a booted Linux system, I plug in my new ReSpeaker XVF3800 to USB and it works fine.

After rebooting the host computer (soft reboot, not power cycle), the ReSpeaker no longer works. Simple system tools like arecord return errors trying to access the device.

Pressing the reset button on the side of the ReSpeaker restores it to operation. So, of course, does physically unplugging the USB cable and plugging it back it.

I’ve tried resetting the device with usbreset (Linux command). No luck. It seems that the ReSpeaker is getting into a bad state after any reboot that requires it to be hard reset in order to restore it to operation.

I am on firmware 2.0.7. I’ve tested this on multiple host computers. It makes the device pretty useless since it cannot survive computer reboot without manual intervention (unplug/replug or reset button).

Any suggestions?

Hi there,

So, If I were a gambler my money is on a “firmware BUG” something related to the USB power state. It’s NOT a Linux or Host issue, your results prove it. :face_with_peeking_eye:
The behavior you describe is classic:

  • Works after cold power-up
  • Fails after host reboot (warm reset)
  • Recovers only after device reset or full USB power removal

That means the device does not correctly re-initialize its USB stack when VBUS never drops.

Linux reboot ≠ USB power cycle.
usbreset does nothing (it resets the host port, not the device MCU/DSP)
usbreset:

  • Sends a USB port reset
  • Does not reset:
    • Device MCU
    • DSP core
    • Internal USB audio state machines

If the firmware is wedged internally, the host cannot fix it.
try a USB hub that is powered with a switch , try that (temp)
Even a cheap hub sometimes works because many hubs do cut VBUS on reset.
You can check the BIOS/UEFI boot options too, but I’m money on BUG in firmware..
ok, to look anyway, Turn off any “Always ON USB” options.

The fact that the reset button works instantly proves:

  • Firmware reset path is fine
  • USB reset path is incomplete

This is firmware defect territory.

AI, agrees and points out the specific steps of possible failures.

One or more of these is almost certainly true:

  1. No proper USB bus reset handler
  2. DSP not restarted on USB reset
  3. Clock domain not reinitialized
  4. USB Audio Class endpoints not re-armed
  5. Power management bug (suspend/resume mishandled)

This is very common in:

  • Audio DSP devices
  • Voice front-end chips
  • USB composite devices with internal RTOS

HTH
GL :slight_smile: PJ :v:

Send an E-mail to support,
You should explicitly ask:

Does the XVF3800 firmware correctly handle USB bus reset without VBUS removal?

And request:

  • Firmware with full USB reset handling

:+1:

PJ_Glasso: thanks for your response. I think you are right it is a firmware issue but I was hoping someone could suggest a software workaround to force a reset on the ReSpeaker without dropping power. I will follow up with an email to the Seeedstudio email tech support address but my last query to that address (concerning a bricked XVF3000 based V2 ReSpeaker) has been unanswered for a week … so far.

If anyone can confirm that they also see this behavior where the XVF3800 USB ReSpeaker cannot survive a warm boot, that would be helpful. Surely I’m not the only person this is affecting!

Hi there,

No worries,
I agree 100%, also it’s the USB reset there’s the conundrum, It won’t reset unless it’s repowered, so no Host side USBreset (normally it would) or INIT will get it done.
Keep it going they will get to us asap I’m certain. :lying_face:
:grin:

it’s a brand new product so some bumps are expected, but the lineage is long for this family so , IMO I think they have very good handle on the hardware, just tuning up the firmware side it lagging. they will get there.:crossed_fingers:

HTH
GL :slight_smile: PJ :v: