Respeaker 2Mic not recognized Raspberry Pi Zero 2 W

Hi,

i am still working on the documentation but i tested the latest version of the image and it is working with the 2mic_hat v1 and the lite board. I currently have no v2, i cannot confirm if that is working or not.

After ssh key generation the system reboots. After that it will boot up and reboot again. And after that you need to reboot it one more time and aplay -L should show the seedstudio card.

Has this solution worked for anyone with the ReSpeaker 2-Mics Pi HAT V1.0?

:white_check_mark: Working setup: ReSpeaker 2-Mic HAT V2.0 on Raspberry Pi OS Bookworm (Kernel 6.12.47+rpt-rpi-v8)

After weeks of debugging and testing with different kernels, I finally got the Seeed ReSpeaker 2-Mic HAT V2.0 (WM8960) fully working on the latest Raspberry Pi OS (Bookworm, 64-bit) with kernel 6.12.47+rpt-rpi-v8without building any DKMS driver or cloning seeed-voicecard.

Here’s what actually worked and why. :point_down:


:jigsaw: Background — why older methods failed

  • Old guides (from Seeed’s seeed-voicecard repo or HinTak’s fork) rely on building an out-of-tree ALSA driver (snd-soc-seeed-voicecard).
  • That driver used internal kernel APIs (simple_util_parse_card_name, etc.) that broke after kernel 5.10.
  • As a result, DKMS builds failed, and the ReSpeaker device never appeared in arecord -l.

Even if the kernel detected the WM8960 chip on I²C (0x18), there was no proper I²S configuration — so ALSA never created the sound card.


:jigsaw: The key discovery

Starting from Raspberry Pi OS Bullseye / Bookworm,
the kernel already includes:

  • snd-soc-wm8960
  • snd-soc-simple-card
  • snd-soc-core

These are mainline ALSA SoC drivers, meaning:
:arrow_right: You no longer need Seeed’s custom driver.
:arrow_right: You only need a correct Device Tree Overlay (.dtbo) to describe how the codec is wired.


:brain: The working solution

  1. Install Raspberry Pi OS Bookworm (64-bit) — the Lite or Desktop version both work.
    My kernel was:
6.12.47+rpt-rpi-v8
  1. Download the official Seeed overlay source:
git clone https://github.com/Seeed-Studio/seeed-linux-dtoverlays.git
cd seeed-linux-dtoverlays/overlays/rpi
  1. Compile only the overlay you need:
sudo apt install device-tree-compiler
dtc -I dts -O dtb -o respeaker-2mic-v2_0.dtbo respeaker-2mic-v2_0-overlay.dts
  1. Copy it to the overlay directory:
sudo cp respeaker-2mic-v2_0.dtbo /boot/overlays/
  1. Edit the active config file:
    For Bookworm Desktop OS, edit:
sudo nano /boot/firmware/config.txt

and add:

dtoverlay=respeaker-2mic-v2_0

For Lite OS, the file is /boot/config.txt.
6. Reboot

sudo reboot

:test_tube: Verify

After reboot:

dmesg | grep -i wm8960

should show the codec being initialized.

Then check:

arecord -l

:white_check_mark: You should see:

**** List of CAPTURE Hardware Devices ****
card 3: seeed2micvoicec [seeed2micvoicec], device 0: bcm2835-i2s-tlv320aic3x-hifi [...]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

:bulb: Why this works (technical explanation)

  • The kernel already includes the WM8960 driver.
  • The Seeed overlay simply tells the kernel:
    “There’s a WM8960 codec on I²C address 0x18 connected to I²S0.”
  • The kernel binds snd-soc-wm8960 + snd-soc-simple-card, and ALSA registers it automatically.
  • No DKMS, no rebuild, no custom modules — just the .dtbo.

:warning: Common pitfalls

Problem Cause
arecord -l shows nothing Overlay not loaded (wrong config.txt path or missing .dtbo)
`vcdbg log msg grep overlay` returns nothing
Grey screen in VNC / no GUI Incomplete LXDE install (Bookworm uses /boot/firmware/config.txt for overlays)
“Failed to upload overlay” You ran dtoverlay command manually instead of adding it to config.txt

:dart: TL;DR

You don’t need the old Seeed voicecard driver anymore.
Just use:

  • Raspberry Pi OS Bookworm (Kernel ≥ 6.1)
  • Official Seeed overlay .dts
  • Correct dtoverlay= entry in /boot/firmware/config.txt

After reboot, it works immediately — full microphone input and playback on WM8960.