Mycroft with bluetooth

Hi.
I am trying to setup mycroft with bluetooth. I know it is not supported, but I got it working on an x86 machine pretty easily.
When moving to an ARM machine, i had some issues with pulseaudio but they were fixed after following this:
https://hackaday.io/project/165208-an-old-rotary-phone-as-bluetooth-set/log/162491-setting-up-the-bluetooth

Now my linux machine can play sound just fine from the bluetooth speaker even when paired through a HSP profile.
However now i am in a weird state:

  • microphone works fine, picks up wake work and understands commands
  • when mycroft hears the wake word, a ‘ping’ is heard though the HDMI connection (even though the bluetooth speaker is the default speaker and all other system sounds go there)
  • when mycroft wants to say something, i don’t hear anything. Not from the bluetooth speaker, nor from the HDMI connected TV.
 22:15:25.840 | INFO     |  2122 | __main__:handle_wakeword:67 | Wakeword Detected: hey jarvis
 22:15:26.965 | INFO     |  2122 | __main__:handle_record_begin:37 | Begin Recording...
 22:15:26.982 | ERROR    |  2116 | VolumeSkill | Couldn't allocate mixer, ALSAAudioError('Unable to find mixer control Master,0 [default]')
 22:15:28.964 | ERROR    |  2116 | VolumeSkill | Couldn't allocate mixer, ALSAAudioError('Unable to find mixer control Master,0 [default]')
 22:15:28.944 | INFO     |  2122 | __main__:handle_record_end:45 | End Recording...
 22:15:30.011 | ERROR    |  2116 | VolumeSkill | Couldn't allocate mixer, ALSAAudioError('Unable to find mixer control Master,0 [default]')
 22:15:30.237 | INFO     |  2122 | __main__:handle_utterance:72 | Utterance: ["what's the time"]

That is what mycroft prints out when detecting the wake word.

Does anyone know what might be wrong, or how i can force mycroft to use a specific output?

LaterEdit: Running this on a pi 4 with raspberry pi os

Hey there,

I’d first try setting the default pulseaudio sink (aka output).

If that doesn’t work you could set your play commands as described here and use the -D flag to specify the output device to be used.

Thanks!
Initially setting the default pulseaudio sink didnt work, but after a few restarts and some messing around, it did. Having the aplay and arecord comands (from the links you sent) helped me speed up debugging by a lot :D.
It works now sort of. Only problem i now have is that the bluetooth microphone is very noisy when connected to the pi… Looks like headset bluetooth devices are kinda broken on ARM :frowning: