This is an enhancement fork with the explicit aim of supporting current shipping Raspbian/Ubuntu kernels without requiring downgrading. Please donate at https://hintak.github.io/ if it works for you. Use vX.Y branch for kernel version vX.Y
Find a file
Hin-Tak Leung f5710e9761 v6.11: platform: Make platform_driver::remove() return void
commit 0edb555a65d1ef047a9805051c36922b52a38a9d
Author:     Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
AuthorDate: Mon Oct 9 12:37:26 2023 +0200
Commit:     Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
CommitDate: Mon May 27 10:34:35 2024 +0200

    platform: Make platform_driver::remove() return void

    struct platform_driver::remove returning an integer made driver authors
    expect that returning an error code was proper error handling. However
    the driver core ignores the error and continues to remove the device
    because there is nothing the core could do anyhow and reentering the
    remove callback again is only calling for trouble.

    To prevent such wrong assumptions, change the return type of the remove
    callback to void. This was prepared by introducing an alternative remove
    callback returning void and converting all drivers to that. So .remove()
    can be changed without further changes in drivers.

    This corresponds to step b) of the plan outlined in commit
    5c5a7680e67b ("platform: Provide a remove callback that returns no value").

    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2024-10-22 00:02:06 +01:00
ac108_plugin remove debug message, increase ac108 buf size 2017-10-09 14:58:35 +08:00
patches adjusting back-to-v4.19.diff to recent changes 2021-04-27 15:57:01 +01:00
pulseaudio update: more convenient way to apply udev rules 2018-10-11 17:54:51 +08:00
tools test hardware mic phase position 2018-12-25 09:36:27 +08:00
ac10x.h Second/Alternative change to correct for 5.5+ change in trigger order 2021-04-27 02:49:25 +01:00
ac101.c v6.3: cleanup Playback/Capture data for snd_soc_dai 2023-06-16 23:49:29 +01:00
ac101_regs.h Add: headset detection for 6-Mics Circular Array Kit and 4-Mics Linear Array Kit 2018-04-02 08:43:20 +00:00
ac108.c v6.3: cleanup Playback/Capture data for snd_soc_dai 2023-06-16 23:49:29 +01:00
ac108.h add respeaker 4mic audio card driver 2017-09-14 08:29:26 +00:00
ac108_6mic.state Following Standard ALSA Control Names convention 2020-09-28 16:38:30 +01:00
ac108_asound.state change asound.state for 4mic array, lower down PGA to reduce static noise 2018-09-29 14:49:19 +08:00
asound_2mic.conf use card id to identify cards 2018-07-24 11:28:55 +08:00
asound_4mic.conf use card id to identify cards 2018-07-24 11:28:55 +08:00
asound_6mic.conf update 6 mic gain controls 2018-08-06 06:32:46 +00:00
builddtbo.sh Adding missing shebang 2020-09-18 01:06:57 +01:00
default.pa add pulseaudio default configuration file 2017-09-08 04:12:53 +00:00
dkms.conf Attempt to fix mis-match to "5.15.84.x 2023-01-23 11:53:49 +00:00
install.sh Fix /boot/config.txt for bookworm installs 2024-01-05 10:46:23 -08:00
LICENSE Create LICENSE 2017-09-15 10:14:31 +08:00
Makefile Revert "Operational change to correct for 5.5+ change in trigger order; REVISIT!" 2021-04-27 02:49:08 +01:00
README.md Changing install URL to point to mine. 2023-08-03 23:30:03 +01:00
seeed-2mic-voicecard-overlay.dts Fix 2mic hat install failed 2018-03-30 03:21:40 +00:00
seeed-2mic-voicecard.dtbo Fix 2mic hat install failed 2018-03-30 03:21:40 +00:00
seeed-4mic-voicecard-overlay.dts relocating fixed-clock entry, based on upstream advice 2020-09-14 14:41:47 +01:00
seeed-4mic-voicecard.dtbo rebuilt dtbo on current Raspbian 2020-09-14 14:46:10 +01:00
seeed-8mic-voicecard-overlay.dts relocating fixed-clock entry, based on upstream advice 2020-09-14 14:41:47 +01:00
seeed-8mic-voicecard.dtbo rebuilt dtbo on current Raspbian 2020-09-14 14:46:10 +01:00
seeed-voicecard 64-bit-only kernel package does not have /boot/kernel.img ; use /boot/kernel8.img for version detection. 2023-04-16 19:19:19 +01:00
seeed-voicecard.c v6.11: platform: Make platform_driver::remove() return void 2024-10-22 00:02:06 +01:00
seeed-voicecard.service add seeed-voicecard manger service 2018-02-01 16:07:02 +08:00
sound-compatible-4.18.h v4.17: replace codec to component 2021-04-25 00:13:42 +01:00
ubuntu-prerequisite.sh Added g++ to ubuntu-prerequisite.sh 2021-05-27 22:05:01 +01:00
uninstall.sh Fix /boot/config.txt for bookworm installs 2024-01-05 10:46:23 -08:00
wm8960.c v6.3: use simple i2c probe 2023-06-16 23:36:50 +01:00
wm8960.h add wm8960.h header file 2017-04-27 16:52:22 +08:00
wm8960_asound.state optimize some options 2017-09-15 02:01:53 +00:00

seeed-voicecard

The drivers for ReSpeaker Mic Hat, ReSpeaker 4 Mic Array, 6-Mics Circular Array Kit, and 4-Mics Linear Array Kit for Raspberry Pi.

Install seeed-voicecard

Get the seeed voice card source code and install all linux kernel drivers

git clone https://github.com/HinTak/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot

ReSpeaker Documentation

Up to date documentation for reSpeaker products can be found in Seeed Studio Wiki!

Coherence

Estimate the magnitude squared coherence using Welchs method. 4-mics-linear-array-kit coherence
Note: 'CO 1-2' means the coherence between channel 1 and channel 2.

# How to get the coherence of the captured audio(a.wav for example).
sudo apt install python-numpy python-scipy python-matplotlib
python tools/coherence.py a.wav

# Requirement of the input audio file:
- format: WAV(Microsoft) signed 16-bit PCM
- channels: >=2

uninstall seeed-voicecard

If you want to upgrade the driver , you need uninstall the driver first.

pi@raspberrypi:~/seeed-voicecard $ sudo ./uninstall.sh 
...
------------------------------------------------------
Please reboot your raspberry pi to apply all settings
Thank you!
------------------------------------------------------

Enjoy !

Technical support

For hardware testing purposes we made a Rasperry Pi OS 5.10.17-v7l+ 32-bit image with reSpeaker drivers pre-installed, which you can download by clicking on this link.

We provide official support for using reSpeaker with the following OS:

  • 32-bit Raspberry Pi OS
  • 64-bit Raspberry Pi OS

And following hardware platforms:

  • Raspberry Pi 3 (all models), Raspberry Pi 4 (all models)

Anything beyond the scope of official support is considered to be community supported. Support for other OS/hardware platforms can be added, provided MOQ requirements can be met.

If you have a technical problem when using reSpeaker with one of the officially supported platforms/OS, feel free to create an issue on Github. For general questions or suggestions, please use Seeed forum.