I installed my Pi 3B into a Pimoroni Picade a few months ago, and installed RetroPie from source (as a fresh install). After running the Pimoroni-supplied setup script, RetroPie, EmulationStation etc were all working fine. Many happy hours of nostalgia followed!
The Picade has its own HAT and physical speaker, and I could set the system volume from within EmulationStation, and also within each of the emulators. I had the volume set at 49%.
Fast forward a few months, and I decided to try playing around with a USB headset connected to the Pi, and using the “Desktop” environment included with RetroPie. I plugged in the headset - a fairly cheap-and-cheerful Creation gaming heading - configured the Desktop to use the USB headset, tested it all worked (which it did) and thought no more of it.
However, since disconnecting the headset and returning to using the Picade speakers, I’m unable to change the system volume. It sounds like it’s set to 100% volume - i.e. too loud - despite me changing the setting in the ES settings, alsamixer, RetroPie config, and even in the Desktop environment itself. Regardless of whether I set the volume to 1% or 100%, nothing actually changes the speaker volume. I can adjust the volume within RetroArch via hotkeys, but this isn’t ideal (especially for games that start noisy).
alsamixer
and amixer
output look OK, at least to my untrained eye:
pi@retropie:~ $ amixer
Simple mixer control 'PCM',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 255
Front Left: 124 [49%]
Front Right: 124 [49%]
However, this output:
pi@retropie:~ $ amixer controls
numid=1,iface=MIXER,name='PCM'
compared to some others I've seen seems to be missing any mention of volume controls - is that perhaps the issue, and how can I restore the ability to set the volume?
EDIT: As requested:
$ cat /proc/asound/cards /proc/asound/devices /proc/asound/pcm /proc/asound/modules
0 [sndrpihifiberry]: HifiberryDac - snd_rpi_hifiberry_dac
snd_rpi_hifiberry_dac
0: [ 0] : control
16: [ 0- 0]: digital audio playback
33: : timer
00-00: HifiBerry DAC HiFi pcm5102a-hifi-0 : : playback 1
0 snd_soc_hifiberry_dac
EDIT2: Further info
$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
Output is the same when ran without sudo
.
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
EDIT3: The Picade install script outputs the following when it's rerun -
Checking hardware requirements...
Checking for packages required for GPIO control...
raspi-gpio is already installed
Checking for dependencies...
alsa-utils is already installed
lsb-release is already installed
Github repo already present. Updating...
Already up-to-date.
Finalising Install...
Picade HAT: Installer
Installed: /boot/overlays/picade.dtbo
Warning: /etc/udev/rules.d/10-picade.rules already exists, not replacing!
Warning: /etc/asound.conf already exists, not replacing!
Config: Skipped "dtoverlay=picade", already exists in /boot/config.txt
Config: Skipped "dtparam=audio=off", already exists in /boot/config.txt
Config: Skipped "hdmi_force_hotplug=1", already exists in /boot/config.txt
Installation finished. You must reboot for changes to take effect!
cat /proc/asound/cards /proc/asound/devices /proc/asound/pcm /proc/asound/modules