ReSpeaker 2-Mics Pi HAT not recording

I was having the same problem with a Respeaker2 and RPi5 running Raspbian 64bit. I could finally solve this with ChatGPT’s help.
It created a new overlay, I can’t attach it here (because I’m a new user, how stupid!)
The overlay is:

/dts-v1/;
/plugin/;

/ {
    compatible = "brcm,bcm2711";

    fragment@0 {
        target = <&i2s>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@1 {
        target-path = "/";
        __overlay__ {
            wm8960_mclk: wm8960_mclk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <12288000>;
                phandle = <2>;
            };
        };
    };

    fragment@2 {
        target = <&i2c1>;
        __overlay__ {
            wm8960: wm8960@1a {
                compatible = "wlf,wm8960";
                reg = <0x1a>;
                clocks = <&wm8960_mclk>;
                clock-names = "mclk";
                #sound-dai-cells = <0>;
                AVDD-supply = <0xffffffff>;
                DVDD-supply = <0xffffffff>;
                phandle = <1>;
            };
        };
    };

    fragment@3 {
        target-path = "/";
        __overlay__ {
            sound: sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "seeed-2mic-voicecard";
                simple-audio-card,format = "i2s";

                simple-audio-card,cpu {
                    sound-dai = <&i2s>;
                };

                simple-audio-card,codec {
                    sound-dai = <&wm8960>;
                    clocks = <&wm8960_mclk>;
                    clock-names = "mclk";
                };
            };
        };
    };

    __overrides__ {
        card-name = <&sound>, "simple-audio-card,name";
    };
};

Save this as seeed-2mic-voicecard.dts.
Compile it:

dtc -I dts -O dtb -o seeed-2mic-voicecard.dtbo seeed-2mic-voicecard.dts
sudo cp seeed-2mic-voicecard.dtbo /boot/firmware/overlays/

sudo nano /boot/firmware/config.txt

Add or update this line:
dtoverlay=seeed-2mic-voicecard

Reboot.

dmesg | grep wm8960

And test again:

arecord -D plughw:0,0 -f S16_LE -r 16000 -c 2 -d 5 test.wav
aplay test.wav

1 Like