iQ Audio Pi-Dac

I am having trouble getting the pi-dac to work with PiMusicbox. I have loaded the modules and the sound card appears in ‘aplay -l’ but Musicbox doesn’t use it as the sound card.

Sound output works through ‘analogue’ in settings, but changing it to ‘i2s’ does not seem to have any effect.

Is there any other files that you need to edit? I know that in Volumio you have to edit ‘/etc/mpd.conf’ but I do not seem to be able to find that file in Pi Musicbox.

I’m pretty sure only the hifiberry DAC is currently supported so none of the automatic stuff will work. You can try the following.

  • Find your card number with aplay -l. Mine (below) shows “card 0” so it’s 0.
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [] 
  • Edit /etc/asound.conf and make sure the correct card number is being used everywhere. Mine would be:
pcm.!default {
    type hw
    card 0
ctl.!default {
    type hw
    card 0
  • Select your DAC, the second number is your card number:
amixer cset numid=3 0 > /dev/null 2>&1 || true

Note if you reboot, it may undo all of this but it’s quite simple to add support for new cards to the musicbox scripts and have it automatically work like the hifiberry stuff. Take a look at and ideally let @woutervanwijk know what’s needed.


aplay -l gives me this:

card 1: sndrpiiqaudioda [snd_rpi_iqaudio_dac], device 0: IQaudIO DAC HiFi pcm512x-hifi-0 []

doing this: amixer cset numid=3 1 > /dev/null 2>&1 || true doesn’t seem to do anything.

I tried rebooting and /etc/asound.conf reset back to before as you said.

I managed to find a solution, for anyone else attempting to do the same, this is what I did:

  • Deleted blacklist i2c-bcm2708 from /etc/modprobe.d/raspi-blacklist.conf
  • Make sure that these modules are loaded by editing /etc/modules and adding
  • Flushed file system by using sync command
  • Edited /opt/musicbox/ and changed this line
elif [[ ${dev[1]} == "snd-hifiberry-dac" ]]; then
log_progress_msg "found i2s device: card$I2S_CARD" "$NAME"


elif [[ ${dev[1]} == "snd"* ]]; then
log_progress_msg "found i2s device: card$I2S_CARD" "$NAME"

And reboot.

The change is persistent and the sound continues to work. The only problem I have had is with the hardware volume control on the Pi Dac. I changed the settings to enable hardware volume control but it seems to go between either really quiet or really loud.

I rewrote parts of the startup scripts. IQ Dac is working. You can try this alpha version: The setup page does not work though.
If you do, please share if it works!

1 Like

Wouter, that’s great. I’ll try and give this a go in the next day or so. I’ll also get the Pi-DAC+ out to you as promised previously.

Hardware volume control should work but there does appear to be a logarithmic vs Linear issue between MPD and ALSA. This needs investigation.

There are a couple of utilities on our github site which will alter ALSA volume from either a rotary encoder or via LIRC.

The above link doesn’t appear to work - can you help please. Eager to try.


That link works for me.

Downloading for me now too. :slight_smile:

I uploaded a new version