Hi!
I have two microphones.
Microphone 1: ReSpeaker Mic Array 2.0 ( ReSpeaker Mic Array v2.0 | Seeed Studio Wiki )
Microphone 2: ReSpeaker USB Mic Array ( ReSpeaker USB Mic Array | Seeed Studio Wiki )
I want to be able to flash the firmwares to switch between 1 channel and 6 channels.
Both product pages points to the same GitHub repo ( GitHub - respeaker/usb_4_mic_array: ReSpeaker 4 Mic Array with builtin VAD, DOA, AEC, Beamforming & NS ). I follow the instructions and I can successfully flash microphone 1 back and forth. However, when I try to flash microphone 2, it doesn’t work.
Here is what I see when I try to flash microphone number 2:
I’ve plugged the device in and out. Rebooted the system. I’ve tried with 2 other ReSpeaker USB Mic Array’s and they all leads to the same issue.
Does anyone know what the problem is? Do I need to do it differently between the two microphones?
Thank you in advance!
The two ReSpeaker microphones look similar but use different internal hardware. The Mic Array v2.0 uses STM32 and supports DFU flashing. The USB Mic Array uses XMOS and cannot use dfu.py. This is why you see the flashing error. Use software channel control instead of flashing firmware. Record or process only one channel using ALSA, PipeWire, or your application.
Do not attempt DFU flashing on the ReSpeaker USB Mic Array. If firmware switching is required, use the Mic Array v2.0.
Hello!
Thank you for you reply.
Could you please clarify what you mean by “Use software channel control instead of flashing firmware“? Could you point me to somewhere where I can read up on how to do that?
Kind regards,
Oscar
For the ReSpeaker USB Mic Array, the firmware defines how many channels the device exposes (1 or 6) . With the 6-channel firmware, channel 0 is already processed mono audio. channels 1–4 are raw mic data . Instead of reflashing to 1-channel firmware, you can simply record only channel 0 using ALSA or select that channel inside your application.
If you want true downmixing, you can configure this in PipeWire using a loopback filter module. This creates a virtual mono device that mixes channels automatically.
https://www.reddit.com/r/pipewire/comments/12rrbro/outputting_all_playback_in_mono/
Thank you for taking your time an helping me.
The issue is that I want to go from 1 channel to 6. Currently, they only expose 1. I therefore would like to flash it so that I can get the raw input from channel 1-4. We have several of these microphones and out of the box, they only expose one.
On the product page: ReSpeaker USB Mic Array | Seeed Studio Wiki
They give the instructions on how to flash the firmware. So, that led me to believe it’s possible. They don’t suggest doing it any other way either.
Thank you again for helping me 