Help from Volumio community for a new feature

Raspberry Pi 3 Model B Rev 1.2
[ApplePi-DAC]
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 H eadphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: ApplePiDAC [ApplePi-DAC], device 0: bcm2835-i2s-pcm1794a-hifi pcm1794a-c odec-0 [bcm2835-i2s-pcm1794a-hifi pcm1794a-codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

1 Like

Added all cards till the previous post.

I had a quick look, a few remarks:

  • Not all the DACs in the json list have a corresponding entry on the source files from the kernel tree
  • I don’t understand how to link the declaration from the source file to the cardname we need. As an example, I had a look to the FiPi DAC, the name I get from aplay -l is “Audio”, in fe-pi-audio.c the declared name is “Fe-Pi Audio”. If the cardname has no spaces, the matching is correct.

Yep, the these are just the ones that need drivers. For the ones that can get by using the audio-graph-card or simple-audio-card will have their name under the label key in their corresponding overlay file… Example allo-boss2-dac-audio-overlay

Interesting, looks a bit odd that it is returning only the part after the space? From a quick peek, aplay should be calling snd_ctl_card_info_get_id and snd_ctl_card_info_get_name from alsalib, and I doubt it’s doing something funky there.
Does this happen only on Volumio? Or even on Raspbian?

Raspberry Pi 4B with HIFIBerry Digi+ Pro

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: sndrpihifiberry [snd_rpi_hifiberry_digi], device 0: HiFiBerry Digi+ Pro HiFi wm8804-spdif-0 [HiFiBerry Digi+ Pro HiFi wm8804-spdif-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

1 Like

same in latest Raspios

pi@raspios-cm4:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [Fe-Pi Audio], device 0: Fe-Pi HiFi sgtl5000-0 [Fe-Pi HiFi sgtl5000-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
pi@raspios-cm4:~ $

pi@raspios-cm4:~ $ uname -a
Linux raspios-cm4 5.10.11-v7l+ #1399 SMP Thu Jan 28 12:09:48 GMT 2021 armv7l GNU/Linux

What part of the aplay output are you actually interested in?

card 0: Audio [Fe-Pi Audio], device 0: Fe-Pi HiFi sgtl5000-0 [Fe-Pi HiFi sgtl5000-0]

According to ALSA terminology, this would be

card = 0;
card_id = "Audio";
card_name = "Fe-Pi Audio";
device = 0;
device_id = "Fe-Pi HiFi sgtl5000-0";
device_name = "Fe-Pi HiFi sgtl5000-0";

The terminology here is a bit confusing (for me), so I was under the impression you wanted the card name, but it looks like you are interested in the card_id?

Looking at the dacs.json entry, this is mapped as:

{
"id":"fe-pi-audio",       
"name":"Fe-Pi Audio",     // ALSA card_name
"overlay":"fe-pi-audio",
"alsanum":"2",            // ALSA_card
"alsacard":"Audio",       // ALSA card_id
"mixer":"PCM",
"modules":"",
"script":"",
"needsreboot":"yes"
},

according to the indication Tim gave me, it is the part right after the card number, before the square brackets (highlighted in bold)

card 0: Audio [Fe-Pi Audio]

Hi,

I did extensive testing with the TerraBerry DACs (version 2 and version 3).
Independant on the Volumio version it shows up the aplay -l command output is different on TerraBerry2 and TerraBerry3 (see below).

@Michelangelo: It seems there is a bug in the newer Volumio versions that leads to these DACs are not working with volume control “none”. The only workaround is to choose “software” mixer and set the volume to 100%.

RaspBerry 3
TerraBerry2 DAC

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: DAC [I-Sabre Q2M DAC], device 0: I-Sabre Q2M DAC i-sabre-codec-i2c.1-0048-0 [I-Sabre Q2M DAC i-sabre-codec-i2c.1-0048-0]
Subdevices: 0/1
Subdevice #0: subdevice #0


RaspBerry 3
TerraBerry3 DAC

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 0/1
Subdevice #0: subdevice #0


I also used a quite old version of Volumio to get a Allo Piano 2.1 set to Dual Mono Mode.

RaspBerry 3

Allo Piano 2.1 (in Dual Mono mode)

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
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 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PianoDACPlus [PianoDACPlus], device 0: PianoDACPlus multicodec-0
Subdevices: 1/1
Subdevice #0: subdevice #0

1 Like

could you please report the content of the following command, when you select TerraBerry DAC 2 and then TerraBerry DAC 3?

cat /boot/config.txt

Hi,

@Darmur - give me a few minutes

In the mean time i had a look at the UNSUPPORTED Aoide DAC II.
For those who got it managed to successfully install the drivers from:

RaspBerry 3B+
AOIDE DACII (ES9018K2M)

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/7
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
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: II [Aoide DAC II], device 0: Aoide DAC II (SLAVE) es9018k2m-i2c.1-0048-0 [Aoide DAC II (SLAVE) es9018k2m-i2c.1-0048-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

1 Like

@Darmus:

TerraBerry2 DAC - config.txt:
(same at TerraBerry3 after setup SD card from scratch…)

-------------------------initramfs volumio.initrd
gpu_mem=32
max_usb_current=1
dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1

include userconfig.txt

Volumio i2s setting below: do not alter

dtoverlay=i-sabre-q2m

RemotePi lirc setting below: do not alter


TerraBerry3 DAC -

I had to reflash the SD card because i used it for another installation.
And now (fresh install - i get the same output as on TerraBerry2)
I didn’t edit any file manually on none of these installations

config.txt:

initramfs volumio.initrd
gpu_mem=32
max_usb_current=1
dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1

include userconfig.txt

Volumio i2s setting below: do not alter

dtoverlay=i-sabre-q2m

I don’t know what is going on there.
Interestingly. The hardware mixer has been activated and there is sound at the output. I am able to operate the volume controls in the UI - but as expectable the volume is not changed and is always at 100%

Same after a restart. When selecting the volume mixer there is only “none” and software". Once selected “none” the “hardware” setting that has been choosen as default is gone (how it should be…)

I hope in Version 3 of Volumio the TerraBerry2/3 and Allo Piano 2.1 will get back working as expected…

BR
Josef

RaspBerry 3
Audiophonics ES9038Q2M

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/7
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
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: DAC [I-Sabre Q2M DAC], device 0: I-Sabre Q2M DAC i-sabre-codec-i2c.1-0048-0 [I-Sabre Q2M DAC i-sabre-codec-i2c.1-0048-0]
Subdevices: 0/1
Subdevice #0: subdevice #0

RaspBerry 3

OSA DACberry Pro

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: IQaudIODAC [IQaudIODAC], device 0: IQaudIO DAC HiFi pcm512x-hifi-0 [IQaudIO DAC HiFi pcm512x-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0


RaspBerry 3

HifiBerryADC Pro

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: sndrpihifiberry [snd_rpi_hifiberry_dacplusadcpro], device 0: HiFiBerry DAC+ADC Pro HiFi multicodec-0 [HiFiBerry DAC+ADC Pro HiFi multicodec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

1 Like

@Darmur,

here are my datas:

Raspberry Pi Zero W
Real DAC: pirate audio 3W amp hat
selected DAC Model in the Playback section: HiFiBerry DAC
Output:
volumio@volumio:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

AxLED

1 Like

RaspBerry 3

HiFiBerry ADC (not the pro version)

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 2: sndrpihifiberry [snd_rpi_hifiberry_dacplusadc], device 0: HiFiBerry DAC+ADC HiFi multicodec-0 [HiFiBerry DAC+ADC HiFi multicodec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

Here is one fot de Loco v2 dav by dion Audio

volumio@volumio:~$ 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: LOCOV2 [Dion Audio LOCO-V2], device 0: DionAudio LOCO-V2 DAC-AMP pcm512x-hifi-0 [DionAudio LOCO-V2 DAC-AMP pcm512x-hifi-0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

what is the dt-overlay to be selected for this DAC?

It should be dtoverlay=dionaudio-loco-v2

here’s another one from dion audio.
philips tda 1543 old school dac.

dtoverlay=dionaudio-loco

volumio@dion-tda-1543:~$ 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: sndrpidionaudio [snd_rpi_dionaudio_loco], device 0: DionAudio LOCO DAC-AMP pcm5102a-hifi-0 [DionAudio LOCO DAC-AMP pcm5102a-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Allo DigiOne (on RPI4)

volumio@digione02:~$
volumio@digione02:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: b1 [bcm2835 HDMI 1], device 1: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 2: sndallodigione [snd_allo_digione], device 0: Allo DigiOne HiFi wm8804-spdif-0 [Allo DigiOne HiFi wm8804-spdif-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
volumio@digione02:~$
volumio@digione02:~$