ULTRA++ installation guide

I do have a minor issue … with headphones plugged in, (using MPD) the output is also on the local speakers on the device. How do I get headphone only output please

This is my MPD setting…

audio_output {
type “alsa”
name “snd_rpi_googlevoicehat_soundcar”
device “hw:1,0”
mixer_type “software”
}

In fact, I think I made a mistake and loaded the image with the GUI desktop. Might need to reimage it again.

Hi,

The instructions don’t work on a raspberry pi with the 6.6.31+rpt-rpi-2712 kernel.

The drivers don’t compile. Up-to-date files and instructions would be appreciated.

Thanks,
Bahadir

Here is a patch that will let you compile the module for a 6.6.31+rpt-rpi-v8 kernel running on the latest Raspberry Pi 5 (as of Dec 2024).

The module builds and loads.The ultra_install.sh script succeeds after this, but still no luck. Possibly I’m missing an update needed on the configuration steps.

commit 62ea5f9c7a9ba402d1eaa919c44bb1bdd6359b14
Author: Bahadir Balban <bilge......n@gmail.com>
Date:   Thu Dec 19 23:06:11 2024 -0800

    fixes for compiling the module with newer headers.

diff --git a/wm8960-soundcard.c b/wm8960-soundcard.c
index e1df3db..f00c319 100755
--- a/wm8960-soundcard.c
+++ b/wm8960-soundcard.c
@@ -89,7 +89,7 @@ static int asoc_simple_parse_dai(struct device_node *node,
 	 * 2) user need to rebind Sound Card everytime
 	 *    if he unbinded CPU or Codec.
 	 */
-	ret = snd_soc_of_get_dai_name(node, &dlc->dai_name);
+	ret = snd_soc_of_get_dai_name(node, &dlc->dai_name, NULL);
 	if (ret < 0)
 		return ret;
 
diff --git a/wm8960.c b/wm8960.c
index 4ad4eab..4b619a8 100755
--- a/wm8960.c
+++ b/wm8960.c
@@ -884,6 +884,7 @@ static int wm8960_hw_params(struct snd_pcm_substream *substream,
 			break;
 		}
 		/* fall through */
+		fallthrough;
 	default:
 		dev_err(component->dev, "unsupported width %d\n",
 			params_width(params));
@@ -1414,7 +1415,7 @@ static const struct snd_soc_component_driver soc_component_dev_wm8960 = {
 	.idle_bias_on		= 1,
 	.use_pmdown_time	= 1,
 	.endianness		= 1,
-	.non_legacy_dai_naming	= 1,
+	.legacy_dai_naming	= 0,
 };
 
 static const struct regmap_config wm8960_regmap = {
@@ -1441,8 +1442,7 @@ static void wm8960_set_pdata_from_of(struct i2c_client *i2c,
 		pdata->shared_lrclk = true;
 }
 
-static int wm8960_i2c_probe(struct i2c_client *i2c,
-			    const struct i2c_device_id *id)
+static int wm8960_i2c_probe(struct i2c_client *i2c)
 {
 	struct wm8960_data *pdata = dev_get_platdata(&i2c->dev);
 	struct wm8960_priv *wm8960;
@@ -1505,7 +1505,7 @@ static int wm8960_i2c_probe(struct i2c_client *i2c,
 	return ret;
 }
 
-static int wm8960_i2c_remove(struct i2c_client *client)
+static void wm8960_i2c_remove(struct i2c_client *client)
 {
 	snd_soc_unregister_component(&client->dev);
 	return 0;```

I can see the device:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpigooglevoi [snd_rpi_googlevoicehat_soundcar], device 0: Google voiceHAT SoundCard HiFi voicehat-hifi-0 [Google voiceHAT SoundCard HiFi voicehat-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

but no volume when I run:

speaker-test -l5 -c2 -t wav

how do I increase the volume / or troubleshoot?
Should a wm8960 service must be running?

Hi

All fixed try again first method :slight_smile:

Installation PI5 / PI4 / ZERO (recommended)

Thanks. The new guide worked to install the module as is. However, there is still no sound.

Can you share step by step instructions. Do you expect the sound test to work immediately after install and reboot?

Do you need to unmute channels?
How does the built in speaker get configured for output, vs a speaker attached?

Is the LED supposed to be on? (Mine is off). What does the button do?

I think more answers will help everyone. Also please get a new raspberry pi 5 and share a walkthrough.

Please use the presets (methodology is described in the first message)

or

use alsamixer select your device and change volumes according to your needs

thx

I was about to give up and it worked in my last try. here is what I did:

sudo raspi-config
enable i2c and spi and select pulse audio
save.

Re-do the instructions at the top:
git clone https://github.com/RASPIAUDIO/ultra_install.git

cd ultra_install

sudo bash ultra_install.sh

instead of sudo reboot I unplugged and re-plugged the Raspberry pi 5 board.

as soon as it boots I ran the command:

speaker-test -l5 -c2 -t wav

Now I will inspect whether the device has audio controls in alsamixer or note any other observations that were previously missing since I didn’t get any replies on how the state of things should be.

Hello glad that it worked for you, please check the presets section in the first message as there are many controls this is a good start.

Sorry - I’m back again.

Because of issues with MPD and the HA Music Assistant, I’m trying to use PiCorePlayer on the PiZero 2W instead.

I have managed to install the PiCorePlayer to the MicroSD card from the image in the PiImage utility, run it up and selected the HiFiBerry DAC+ Lite sound card, which the system seems happy with. However, there is no sound coming from the Ultra++ even though the volume is maximum via the Squeezebox controls.

There seem to be various things missing from the PiCorePlayer, including bash, etc. and aplay only lists…

tc@pCP:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

I thought I would ask you as you’ve possibly come across this before.

Hi
Picoplayer needs to support WM8960, without this support the danc will not receive the I2C command to be initialized.

I’m concerned that even if one of the already available drivers works, I would probably not be able to switch off the on-board speakers.

I might have to move off the Ultra++ and go to HiFiBerry unless you know of a way around this please.

if you just need audio output go with our Audio+V3 it will work out of the box with Picoplayer

I’ve got a problem with the link on the page - https://raspiaudio.com/product/audiov3/ - - it takes me to the American Amazon page with the Ultra++ which is how I ended up buying the Ultra++ in the beginning. - RASPBERRY SOUND CARD (Blue) : Amazon.co.uk: Computers & Accessories

EDIT - I never actually needed any of the advanced features of the Ultra++… it’s just that it was the only option available to buy that would fit on the Pi Zero, and even then I had to wait for shipping from the US to the UK.

This is what I’m faced with … a redirection to amazon.co.uk which does not give me the Audio+V3 and even then it still comes from the USA - https://msknight.com/pictures/ultra.png

Hello, i need this configuration but the link dont work… :frowning:
“External microphone input and headphones output”
[preset_external_jack_microphone_input2

Any news on this issue please? I can’t get the Ultra+ card working in Swqueezebox Lite and I can’t actually buy the Audio V3 card. I’m about to use up my last reply, so I won’t be able to post any more after this, unless someone else replied.

Hi, I bought the ultra++ part from amazon for Raspberry pi 4.
However, I could not still make it work yet. I did all the installation steps here, and turned on both SPI and I2C interfaces.
The LEDs on the board still does not turn ON at all. And no sound either from the speakers during the speaker test
Please help.

For your reference, I used ultra-install.git (1st method).
Also, please see the version of the PI OS:
Operating System: Raspbian GNU/Linux 11 (bullseye)
Kernel: Linux 5.15.92-v7l+
Architecture: arm