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 4d0e36d426 v6.1: i2c: Make remove callback return void
commit ed5c2f5fd10dda07263f79f338a512c0f49f76f5
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Mon Aug 15 10:02:30 2022 +0200

    i2c: Make remove callback return void

    The value returned by an i2c driver's remove function is mostly ignored.
    (Only an error message is printed if the value is non-zero that the
    error is ignored.)

    So change the prototype of the remove function to return no value. This
    way driver authors are not tempted to assume that passing an error to
    the upper layer is a good idea. All drivers are adapted accordingly.
    There is no intended change of behaviour, all callbacks were prepared to
    return 0 before.

    Reviewed-by: Peter Senna Tschudin <peter.senna@gmail.com>
    Reviewed-by: Jeremy Kerr <jk@codeconstruct.com.au>
    Reviewed-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Reviewed-by: Crt Mori <cmo@melexis.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: Marek Behún <kabel@kernel.org> # for leds-turris-omnia
    Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Petr Machata <petrm@nvidia.com> # for mlxsw
    Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com> # for surface3_power
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> # for bmc150-accel-i2c + kxcjk-1013
    Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> # for media/* + staging/media/*
    Acked-by: Miguel Ojeda <ojeda@kernel.org> # for auxdisplay/ht16k33 + auxdisplay/lcd2s
    Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # for versaclock5
    Reviewed-by: Ajay Gupta <ajayg@nvidia.com> # for ucsi_ccg
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # for iio
    Acked-by: Peter Rosin <peda@axentia.se> # for i2c-mux-*, max9860
    Acked-by: Adrien Grassein <adrien.grassein@gmail.com> # for lontium-lt8912b
    Reviewed-by: Jean Delvare <jdelvare@suse.de> # for hwmon, i2c-core and i2c/muxes
    Acked-by: Corey Minyard <cminyard@mvista.com> # for IPMI
    Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
    Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> # for drivers/power
    Acked-by: Krzysztof Hałasa <khalasa@piap.pl>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
2023-01-18 00:14:00 +00: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 Second/Alternative change to correct for 5.5+ change in trigger order 2021-04-27 02:49:25 +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.1: i2c: Make remove callback return void 2023-01-18 00:14:00 +00: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 backport patch for 5.8 2021-04-07 21:48:15 +01:00
install.sh Revert "libasound_module_pcm_ac108.so is no longer installed, so libasound2-plugins shouldn't be needed" 2021-08-04 12:00:51 +01: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 Merge branch 'respeaker:master' into v5.9 2021-07-04 16:42:56 +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 Not writing dtoverlay=seeed-*mic-voicecard to /boot/config.txt 2021-04-25 00:13:42 +01:00
seeed-voicecard.c v6.0: ASoC: simple-card-utils: Move snd_soc_component_is_codec to be local 2022-10-30 22:45:19 +00: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 stop systemd service before diabling in uninstall, taken from upstream c1c2e5ca 2020-09-28 17:02:11 +01:00
wm8960.c v6.1: i2c: Make remove callback return void 2023-01-18 00:14:00 +00: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/respeaker/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.