Raspberry Pi 4 crashes when trying to record sound with respeaker 4mic array

Hello community,

I have a problem with recording using arecord or /recordexamples/record.py from the 4MIChat Git repository with the Respeaker 4-mic array. I followed the getting started guide from ReSpeaker 4-Mic Array for Raspberry Pi | Seeed Studio Wiki and initially had no issues.

I installed the new Raspberry Pi OS kernel 6.1 on a clean Raspberry Pi 4. I connected the Respeaker and a USB headset to a USB bus. The installation of the getting started documentation was successful.

Here is my asound.conf:

# The IPC key of dmix or dsnoop plugin must be unique
# If 555555 or 666666 is used by other processes, use another one

# use samplerate to resample as speexdsp resample is bad
defaults.pcm.rate_converter "samplerate"

pcm.!default {
    type asym
    playback.pcm "playback"
    capture.pcm "ac108"
}

pcm.playback {
    type plug
    slave.pcm "hw:3,0"
}

pcm.ac108 {
    type plug
    slave.pcm "hw:seeed4micvoicec"
}

When using arecord -L, I get:

null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault
    Default Audio Device
lavrate
    Rate Converter Plugin Using Libav/FFmpeg Library
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
playback
ac108
default
    Playback/recording through the PulseAudio sound server
usbstream:CARD=vc4hdmi0
    vc4-hdmi-0
    USB Stream Output
usbstream:CARD=vc4hdmi1
    vc4-hdmi-1
    USB Stream Output
usbstream:CARD=Headphones
    bcm2835 Headphones
    USB Stream Output
hw:CARD=Headset,DEV=0
    G733 Gaming Headset, USB Audio
    Direct hardware device without any conversions
plughw:CARD=Headset,DEV=0
    G733 Gaming Headset, USB Audio
    Hardware device with all software conversions
sysdefault:CARD=Headset
    G733 Gaming Headset, USB Audio
    Default Audio Device
front:CARD=Headset,DEV=0
    G733 Gaming Headset, USB Audio
    Front output / input
dsnoop:CARD=Headset,DEV=0
    G733 Gaming Headset, USB Audio
    Direct sample snooping device
usbstream:CARD=Headset
    G733 Gaming Headset
    USB Stream Output
hw:CARD=seeed4micvoicec,DEV=0
    seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0
    Direct hardware device without any conversions
plughw:CARD=seeed4micvoicec,DEV=0
    seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0
    Hardware device with all software conversions
sysdefault:CARD=seeed4micvoicec
    seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0
    Default Audio Device
dsnoop:CARD=seeed4micvoicec,DEV=0
    seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0
    Direct sample snooping device
usbstream:CARD=seeed4micvoicec
    seeed-4mic-voicecard
    USB Stream Output

I have already tried pixels.py, and the LEDs light up without any problems. However, when I use record.py form the documentation in the 4MicHat repository or just arecord
and use the command arecord -Dac108 -f S32_LE -r 16000 -c 4 hello.wav for recording, my Raspberry Pi crashes, and I have to use the power switch to restart the pi.

I already try to connect the respeaker 4mic array directly into the pi but nothing worked for me. i have no clue what im doing wrong.

Any help is appreciated.

probably something in the system changed after the upgrade… i hate when that happens!

1 Like

Hello.
Currently the reSpeaker driver doesn’t do adaptation for images with kernel version 6.1. If you want to use reSpeaker, it is recommended to use the 5.x version of bullseye.

1 Like

Works perfectly fine with kernel 5.5. Thanks alot.

Is there a list for supported kernel versions for the specific respeaker and PIs?

In fact, Bullseye systems with kernel version 5.x are all feasible.