Debugging an Allo Relay Attenuator used with GPIO spacers

Volumio Information

Volumio Version: 2.779
Hardware: RPi 3B+, blackhat GPIO breakout, AlloDigiOne feeding SPDIF to DAC
DAC: Khadas Toneboard feeding Allo Relay Attenuator for Hardware Volume Control.

The analog left and right outputs from the KTB feed into an Allo Relay Attenuator (ARA) for hardware volume control, which I wish to control from the volumio web UI. The ARA gets its inputs from an RPi breakout board which feeds 5v, grd, SDA, SCK and RPIO 17 to the ARA.

This configuration is supposed to work – see Volumio website point 5 – “Please note: to use the Allo Relay Attenuator directly on the Raspberry PI you need GPIO spacers, since the Allo Relay Volume Attenuator is not HAT compliant”.

The only two Volumio plugins installed are DSP for Volumio v1.8.5 and Allo Relay Attenuator Plugin v1.3.0.

Both plug-ins say they are installed correctly, and both are enabled. The DRC plugin works fine. The ARA plugin reports no errors, but under playback options / volume options, there is no hardware volume control. Also the ARA also does not appear in a list of ALSA devices.

When I use the r_attenuc client program from an SSH command line session, I can correctly get the current value of volume on the ARA, and set the ARA volume down or up to any value between 0 and 63. So the basic wiring to and from the ARA is working, but it is not detected as a hardware volume control by Volumio.

Any hints as to how to debug this would be much appreciated. What are the key settings I should be checking? What logs might give any clues?

From looking at the Volumio architecture diagrams, it seems that the ARA plugin takes inputs from the Volumio Web UI, pass them through the Websocket interface, and through the command router possibly to the ARA as an ALSA device.



Try the following: disable DSP plugin. Delete /data/configuration/audio_interfacr/brutefir/config.json
Set playback in Volumio, with the mixer needed. Check if it works, reboot. Enable DSP and reboot as required.
Let me know

Hi Balbuze. Many thanks for replying so promptly. OK I tried this and it does not, unfortunately, solve the problem. I think it is something in the configuration of the Allo Relay Attenuator plugin software itself. Perhaps I have a parameter set wrongly?
However I am interested in your reference to the Brutefir config.json file. Should I debug with DSP turned off? Simplifies the environment I guess? And once I have got the relay attenuator working, do I need to delete the config.json file again with the hardware volume control running, so that the hardware volume control will work with DSP when I re-enable it?
Thanks again.

In fact, when you enable the plugin for the first time, it write the config of Volumio in config.json for the plugin. If this config is not correct it cause problems. So even if you fix Volumio, the plugin will still the first time config. I’ll have a look to improve that, but a solution to reset is to remove the file.

I have done some further work on this today. I seem to have a problem with LIRC. I do not use an infrared remote. I get the following errors -
• mode2 -d /dev/lirc0
• mode2: could not get file information for /dev/lirc0
• mode2: default_init(): No such file or directory
And -
2. This could be related to dtoverlays not working correctly.
• Error enabling lirc-rpi overlay: Error: Command failed: /usr/bin/sudo /usr/bin/dtoverlay lirc-rpi gpio_in_pin=17
• Jul 13 08:32:06 volumio volumio[928]: DTOVERLAY[error]: Failed to open ‘/boot/overlays/lirc-rpi.dtbo’ (NB this file does not exist).
• Jul 13 08:32:06 volumio volumio[928]: * Failed to read ‘/boot/overlays/lirc-rpi.dtbo’

So something is wrong with LIRC and ALSA.
Any suggestions appreciated.


Ok for the benefit of anyone else who hits problems with an Allo Relay Attenuator and Volumio 2.779, 2.779 seems to use kernel 4.19. And LIRC doesn’t work with Kernel 4.19.
I believe that I’m going to have to find all the LIRC references and replace them with GPIO references, which is what kernel 4.19 uses instead. Fortunately there are a number of threads which cover how to do this. I will report back.

Considerable progress but not fixed yet. Switching the LIRC references to GPIO references in boot/config.txt and etc/lirc/hardware.conf followed by a swift reboot gets a remote Allo Relay Attenuator working as a hardware volume control from the UI instantly. That’s the good news.
The bad news is that the Allo DigiOne SPDIF hat stops working instantly. I can have one or the other working but not both.
This seems to be because both use physical pin 11 (GPIO17). So I think I need to use dtoverlay and some pin remapping. I will start a separate thread for any advice as to how best to do this.
Once I have both Allo devices working I will then switch DRC back on.