RbPi 0 W - Respeaker Hat - Audio Input setting keeps losing setup and doesn't work

I’ve got 3 of RbPi 0 Ws with Respeaker Hats. I’ve installed the seeed drives, etc. Audio output primarily stays stable, but I can’t get the mics to work.

The seeed selection will disappear from the drop down selections and everything reverts to Default Device (which doesn’t work). I can sometimes refresh and get the respeaker listed, but it doesn’t work and goes back to the default device again eventually, with respeaker disappearing from the selections again. Most of the time I try refresh, I get a timeout error.

Traceback (most recent call last):
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
    return await handler(**request_.view_args)
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 796, in api_microphones
    microphones = await core.get_microphones()
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 849, in get_microphones
    handle_finished(), messages, message_types
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 995, in publish_wait
    result_awaitable, timeout=timeout_seconds
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError```

Thanks in advance

I had the same issue on pi 3. The fix for me was to use the legacy Buster install of pi OS.

Hope this helps you

Make sure that you can record and play with the tests that Seeed list as part of the installation.
The resoeaker seems to require a Raspian OS because it need a file with hardware bindings that are not present in other installation.

And finally it is important to know that Rhasspy does not update the drop down lists correctly, so it will always show default device when you first load the page.
There should be a text that tells you what the actual selected device is though.

I’m trying this now. Thanks I do have one that works fine. Three more I can’t get working reliably.

Didn’t help. I still get timeouts trying to refresh the drop downs so I can select the card.

Traceback (most recent call last):
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
    return await handler(**request_.view_args)
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 796, in api_microphones
    microphones = await core.get_microphones()
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 849, in get_microphones
    handle_finished(), messages, message_types
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 995, in publish_wait
    result_awaitable, timeout=timeout_seconds
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError```

The audio works when using aplay and arecord CL. But only if Rhasspy container is stopped. So it’s clear Rhasspy has access to the device and is tieing it up, but it still won’t utilize it. I do, again, have one working and as far as I can tell the setup is exactly the same as the other two that will not work properly.

It looks like you get a timeout on Hermes, which is the MQTT service.
Check the settings in Hermes and the SiteIdD.

Hi Omayhemo,

What’s your rhasspy installation on rpi zero?

I had the exact same issue with my pi zero 2 w when I install it directly in raspbian (with the armel.deb package)

It works like a charms when I install rhasspy by docker container (except porcupine ww)

[edit]

Rhaaa sorry, I missed that sentence!

So it won’t help

The problem seemingly occurs locally on the device, having nothing related to MQTT at all. Am I missing something?

FWIW, I learnt to ignore the concurrent.futures._base.TimeoutError and look at the other error messages on the console. It is probably timing-out because something else has gone wrong. When I got them fixed, the timeout went away.

In my install instructions I have also put a note to refresh my browser window periodically. Is it possible that the drop-down list in your browser has simply not updated to reflect all the values found on the RasPi by the [Test] button ?

There have definitely been issues with the seeed and HinTak drivers not working with later OS kernel versions - but I thought the

I’m not using Docker, venv or other container on my Rhasspy Pi Zero - don’t see any point adding complexity to a dedicated machine - so can’t help with that. Can you run Rhasspy from the console ?

You were absolutely correct, my creds were wrong for MQTT. So weird that it would affect setting up the sound locally.