git clone https://github.com/RASPIAUDIO/ULTRA.git
This worked for my Ultra++. Mine isn’t a blue board. Raspberry Pi 4B. 64bit. it comes up as “snd_rpi_googelvoicehat_soundcar”. volume controls are not functional, so I suspect the speakers are playing at 100%.
EDIT: nevermind. did this all over again and for some reason I can control the volume. this is perfect! purchased this ages ago. couldn’t make it work when i purchased it and just held onto it. glad it’s finally useful.
Just to be clear, automatic install didn’t work. optional manual install didn’t work.
git clone https://github.com/RASPIAUDIO/ultra_install.git
the above line also did not work.
yes autoinstall is for the blue PCB of the ultra (EEPROM on board), previous versions can still use the new built in drivers
13/06/25
Automatic installation
Do you have this blue card with blue button? no driver installation needed the EEPROM recognizes it.
so you can go directly to the test section of this guide.
[image]
If it is detected you should see on top right corner :
[image]
if not just be sure to be updated with the last Pi OS version. Also update your Pi firmware:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
Test your ULTRA
to test open a window :
arecord -f cd -d5 > test.wav
Say so…
Good news is that the driver is now directly included in the kernel, just be sure to be updated with the last Pi OS version. Also update your Pi firmware:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
Once done you should be up to date
open a terminal and type:
sudo nano /boot/firmware/config.txt
and at the end of the file add:
dtoverlay=wm8960-soundcard.dtbo
I tried adding the dtoverlay line to the config file and while i can select the audio device in the volume control within Raspbian, it doesn’t output audio.
I’ll try this again over the next few days to see if it actually works and report back, thanks.
be sure to have the last version of PIOS
I’m on Linux raspberrypi 6.12.34+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64
i2c enabled.
audio device selected: wm8960-soundcard
ran
sudo apt-get update && sudo apt-get upgrade && sudo rpi-update
and then did these
sudo nano /boot/firmware/config.txt
and at the end of the file add:
dtoverlay=wm8960-soundcard.dtbo
no audio output from youtube video playing in chromium.
please advise.
Hey,
I aknowledge the issue, with new version of the kernel the wm8960-soundcard.dtbo is broken, we are not alone and I have posted a message to fix it.
opened 11:37PM - 01 Apr 25 UTC
Raspberry Pi has release the new kernel version `6.12.2` (a bump from `6.6.74`) … in March 2025. This has broken the WM8960 audio / sound card.
I get the following error when running aplay: `unable to install hw params`

Workaround we can use a custom driver (it breaks my heart but it is working)
git clone GitHub - waveshareteam/WM8960-Audio-HAT: The drivers of [WM8960 Audio HAT] for Raspberry Pi
cd WM8960-Audio-HAT
sudo ./install.sh
sudo reboot
check if installed :
sudo dkms status
aplay -l
arecord -l
gbernal
August 27, 2025, 5:36pm
191
Any updates about this? I’m unable to get this working. I’m working on a headless OS
Hi please give me more details on the OS you are using.
gbernal
August 28, 2025, 5:58pm
193
Hi, here is my info $ uname -a
Linux raspberry 6.12.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 GNU/Linux
have your tried this ?
git clone GitHub - waveshareteam/WM8960-Audio-HAT: The drivers of [WM8960 Audio HAT] for Raspberry Pi
cd WM8960-Audio-HAT
sudo ./install.sh
sudo reboot
described 2 messages above
gbernal
August 29, 2025, 7:57pm
195
I did try, it installs the driver but it is not able to play or record audio.
fasciahub@Hub508:~/WM8960-Audio-HAT $ uname -a
Linux Hub508 6.12.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 GNU/Linux
fasciahub@Hub508:~/WM8960-Audio-HAT $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: 1f000a0000.i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
fasciahub@Hub508:~/WM8960-Audio-HAT $ arecord -D hw:0,0 -f S32_LE -r 16000 -c 2 test.wav
arecord: main:831: audio open error: Invalid argument
fasciahub@Hub508:~/WM8960-Audio-HAT $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: 1f000a0000.i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
fasciahub@Hub508:~/WM8960-Audio-HAT $ aplay -D hw:0,0 test.wav
aplay: main:831: audio open error: Invalid argument
fasciahub@Hub508:~/WM8960-Audio-HAT $ ls
asound.conf install.sh README.md wm8960.c wm8960-soundcard.c wm8960-soundcard.service
builddtbo.sh LICENSE uninstall.sh wm8960.h wm8960-soundcard.dtbo
dkms.conf Makefile wm8960_asound.state wm8960-soundcard wm8960-soundcard.dts
fasciahub@Hub508:~/WM8960-Audio-HAT $ cd ..
fasciahub@Hub508:~ $ ls
test.wav WM8960-Audio-HAT
fasciahub@Hub508:~ $ aplay -D hw:0,0 test.wav
aplay: main:831: audio open error: Invalid argument
fasciahub@Hub508:~ $
I can confirm that this method works for me on RPI4B. Thanks!
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.12.42-v8+ #1899 SMP PREEMPT Tue Aug 19 15:10:07 BST 2025 aarch64 GNU/Linux
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
So, I used a previously mentioned approach which also works, i.e.
git clone https://github.com/RASPIAUDIO/ULTRA.git
What’s the difference between your custom driver approach and the approach I used before? Is there a sound quality/volume difference?
Just so you know there is a new Pi OS update that fixes the autodetect of the ULTRA
so be be sure to be up to date:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
I am not using a blue board.
Autodetect still doesn’t work - does it only work with the blue board?
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade
Hit:1 https://download.docker.com/linux/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
Hit:4 http://deb.debian.org/debian bookworm-updates InRelease
Hit:5 http://archive.raspberrypi.com/debian bookworm InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16) aarch64 GNU/Linux
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
I can also confirm if I follow manual instructions (add “dtoverlay=wm8960-soundcard.dtbo” to /boot/firmware/config.txt), also does not work - no audio from youtube.
Hi, only the blue version has the EEPROM for auto detect.
on your command line you have not done the ‘sudo rpi-update’ maybe this is it, if you don’t have the driver wm8960-soundcard.dtbo in your system
I actually did ‘sudo rpi-update’, I just felt it was too long to show and thought that ‘uname -a’ would be sufficient proof (considering the version date is 4 days after your last post).
I’ll come back again when I get a moment to do the whole thing over again.
fbeider
October 11, 2025, 3:42pm
201
Trying to send to a spcifice outpu audio device the ultra +
Example: I want to send only to the headphone
When I do a
aplay -c1 -D plughw:1 sample-3s.wav
It sends to both the onboard stereo speaker and the headphone jack
I only want to send specifcally to the Headphone jack
Any ideas on how to do this?
admin@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
hi if you want to disable the speaker there is a slider to do that in Alsamixer, it is one of the 5 first one
fbeider
October 13, 2025, 1:36pm
203
What I am looking to do is the following Concurrently :
Send Audio Stream A to the Headphone jack
Send Audio Stream B to the Right Speaker
Send Audio Stream C to the Left Speaker
aplay -c1 -D plughw:1 sample-A.wav
aplay -c1 -D plughw:1 sample-B.wav
aplay -c1 -D plughw:1 sample-C.wav
When I send an audio file to the board the audio output appears on all the Outputs. Onboard speakers and Headphone jack. I only want to send to a specific output device. Example headphone jack. I did do alsamixer but that does not solve my problem.
Regards
The standard I2S on the Ultra provides only stereo output (2 channels) . There’s a built-in mixer that routes these two channels to the different output devices (headphones and speakers), but since you only have two channels, it’s not possible to achieve a 3-channel setup like the one you described using the Ultra.
However, we do offer the 8xOUT board, which provides 8 independent audio output channels , compatible with the Raspberry Pi 5 .
We also have the 8xIN/8xOUT version, which includes an additional 8 audio inputs.