ReSpeaker 6-Mic Hat used with 8 channels - Channels order mismatch

Hi
I’m trying to use several RPis with ReSpeaker 6 slightly modified to generate an analog synchro signal by one of them (the master) which is wired to input #7 on the others (the slaves).
To do so, I use the 8 input channels.
Everything’s working fine except the channels numbering seems to be erratic (changing after reboots).
Is there a way to fix that ?
I tested it with arecord / aplay and in a Python code, both giving the same symptom.
Many thanks in advance for your help…

Hi there…
Alone in the dark ?!..
Going on with my investigation, I can now see that misnumering of channels appears during a continuous acquisition: running in Python (with pyaudio) with callback method, I can clearly see a live input jumping from one channel to another.
Next steps will be to:

  • verify that I do not have the same problem when using a single ADC (ie with only 4 channels). This would surprise me very much as I have a lot of projects of that kind running well…
  • go back to earlier version of the driver as I have other projects of the same kind that were working well some months ago…
    Still awaiting for ideas or solution in case I’m not the only one in this tricky situation !
    Thanks

Hi,
I’m facing a similar issue. I just started playing with ReSpeaker (4mics in my case) and I’ve been trying to plot the waveform for each channel. But the channel order seems very inconsistent for each run.
Is there a way to ‘synchronize’ the readings so they channels will always have the same order?

Please let us know if you find a solution
Thanks :slight_smile:

Hi Gzilli
Thank you for your message.
Bad news to know this happens even with only 4 mics !
I’ll let you know about my tests with older drivers, my best track to date…
What way are you recording ? arecord command, audacity, dedicated software (so callback or blocking mode) ?
Thanks again

Hi again
I found an old image with a previous driver and I don’t have the problem any more. I am now going to restart with my uptodate kernel and reinstall this driver…

Go and see this
A referenced bug in the driver…

Hi Thmacoem,

Thank you for the link. I’ll take a look and see if I can solve the problem on my end.
I am using the record.py script (https://github.com/respeaker/4mics_hat/tree/master/recording_examples) with a few modifications to plot the waveform. Not sure if that is callback or blocking mode though.

Hi @thmacoem
I found this module that can get the channels in the right order.
Tried to run a few times and it always get the order right.
I hope this can help you.