This guide explains how to enable and configure the HiFiBerry DAC+ on the Argon ONE V3 when using moOde Audio OS. It is intended for makers and developers who want to get high-quality I²S audio output from their Raspberry Pi 5 using the HiFiBerry DAC+ hat seated inside the Argon ONE V3 enclosure.
moOde Audio OS supports automatic configuration of many DACs through its web interface. If the HiFiBerry DAC+ is not detected automatically, or if there is no audio output after first boot, follow the steps below to manually configure the required Device Tree Overlay.
Before starting, confirm the following:
hostname -I.⚠️ Warning: Always power off the Raspberry Pi before installing or removing the HiFiBerry DAC+. Installing the HAT while the board is powered can permanently damage both the HAT and the Raspberry Pi.
The following HiFiBerry DAC+ variants are supported with the Argon ONE V3 on Raspberry Pi 5:
| HAT Variant | Device Tree Overlay | Notes |
|---|---|---|
| HiFiBerry DAC+ Standard | hifiberry-dacplus-std |
Recommended for Raspberry Pi 5 |
| HiFiBerry DAC+ Standard (slave mode) | hifiberry-dacplus-std,slave |
Use if audio is distorted |
| HiFiBerry DAC+ Pro | hifiberry-dacplus-pro |
Uses onboard oscillators |
| HiFiBerry DAC+ Pro (slave mode) | hifiberry-dacplus-pro,slave |
Use if audio is distorted |
| HiFiBerry DAC+ (legacy overlay) | hifiberry-dacplus |
Used by moOde auto-config; may need replacing on Pi 5 |
📝 Note: On Raspberry Pi 5, the legacy
hifiberry-dacplusoverlay can cause audio distortion or no output. If moOde's automatic configuration uses this overlay, replace it withhifiberry-dacplus-stdas described in Step 4.
You can complete all configuration steps using either the moOde web interface or an SSH session.
Open a web browser and navigate to:
http://<MOODE_IP>/
Replace <MOODE_IP> with the IP address of your Raspberry Pi.
Open a terminal and connect using SSH:
ssh pi@<MOODE_IP>
📝 Note: The default SSH username on moOde Audio OS is
pi. If you have changed the credentials, use your configured username instead. Root login over SSH may be disabled depending on your moOde version.
Raspberry Pi OS and moOde Audio OS store the boot configuration file in one of two locations depending on the version:
| OS / Version | Configuration File Path |
|---|---|
| Older Raspberry Pi OS (Bullseye and earlier) | /boot/config.txt |
| Raspberry Pi OS Bookworm and later | /boot/firmware/config.txt |
| moOde Audio OS (most current versions on Pi 5) | /boot/firmware/config.txt |
To check which file exists on your system, run:
ls -l /boot/config.txt /boot/firmware/config.txt
Use whichever path the command confirms is present. All remaining steps refer to this file as config.txt.
The boot partition is mounted read-only by default. Before editing config.txt, remount it with write access.
For /boot:
mount -o remount,rw /boot
For /boot/firmware:
mount -o remount,rw /boot/firmware
📝 Note: Run only the command that matches the configuration file path confirmed in Step 2.
Open config.txt using nano:
nano /boot/firmware/config.txt
or, on older installations:
nano /boot/config.txt
Scroll to the bottom of the file and add the appropriate overlay for your HiFiBerry DAC+ variant.
dtparam=i2s=on
dtoverlay=hifiberry-dacplus-std
dtparam=i2s=on
dtoverlay=hifiberry-dacplus-std,slave
dtparam=i2s=on
dtoverlay=hifiberry-dacplus-pro
dtparam=i2s=on
dtoverlay=hifiberry-dacplus-pro,slave
⚠️ Warning: Do not add more than one
dtoverlay=hifiberry-*line toconfig.txt. Duplicate overlay entries will prevent the DAC from initialising correctly. If moOde previously added an overlay automatically, remove or comment out the existing line before adding the new one.
Save and close the file in nano:
Restart the Raspberry Pi to apply the new configuration:
reboot
Wait for the system to complete the reboot before proceeding to Step 7.
After the Raspberry Pi has rebooted, reconnect via SSH and run the following commands to confirm that the operating system has detected the HiFiBerry DAC+.
aplay -l
cat /proc/asound/cards
dmesg | grep -i hifiberry
If the HiFiBerry DAC+ appears in the output of any of these commands, the device has been detected successfully. Proceed to Step 8.
If the DAC does not appear, refer to the Troubleshooting section.
Once the DAC is detected at the OS level, configure moOde to use it as the audio output device.
http://<MOODE_IP>/
Menu → Configure → Audio
HiFiBerry DAC+
Click Save.
Reboot the Raspberry Pi if moOde prompts you to do so.
📝 Note: After saving, moOde will update
config.txtautomatically. See the section below for details on what moOde writes and how to verify it.
When you select HiFiBerry DAC+ from Menu → Configure → Audio → I²S Audio Device, moOde automatically updates config.txt with the required Device Tree Overlay.
For a standard HiFiBerry DAC+, moOde typically writes:
dtparam=i2s=on
dtoverlay=hifiberry-dacplus
For a HiFiBerry DAC+ Pro, moOde typically writes:
dtparam=i2s=on
dtoverlay=hifiberry-dacplus-pro
📝 Note: On Raspberry Pi 5, the legacy
hifiberry-dacplusoverlay written by moOde's automatic configuration may cause audio distortion or no output. If this occurs, follow Steps 3–6 again and replace the overlay withhifiberry-dacplus-stdorhifiberry-dacplus-std,slave.
To confirm that moOde has written the correct overlay to config.txt, connect via SSH and run:
grep hifiberry /boot/firmware/config.txt
or, on older installations:
grep hifiberry /boot/config.txt
If a dtoverlay=hifiberry-* line appears in the output, moOde has successfully updated the configuration.
| Symptom | Likely Cause | Fix |
|---|---|---|
| No audio output after first boot | moOde has not yet been configured to use the HiFiBerry DAC+ | Go to Menu → Configure → Audio → I²S Audio Device, select HiFiBerry DAC+, save, and reboot |
aplay -l does not list the HiFiBerry DAC+ |
Overlay missing or incorrect in config.txt |
Confirm the correct dtoverlay=hifiberry-dacplus-std line is present and that there are no duplicate overlay entries |
| Audio is distorted or has clicks and pops | Clock synchronisation issue between the Pi 5 and the DAC | Replace the overlay with the slave variant: dtoverlay=hifiberry-dacplus-std,slave |
| DAC detected but moOde plays silence | moOde audio output device not set to the HiFiBerry DAC+ | Re-select HiFiBerry DAC+ under Menu → Configure → Audio and reboot |
dmesg shows probe failure for HiFiBerry |
HAT is not fully seated, or i2s is not enabled | Power off, reseat the HAT firmly, confirm dtparam=i2s=on is present in config.txt, and reboot |
Boot hangs or fails after editing config.txt |
Syntax error or duplicate overlay in config.txt |
Connect a display and keyboard, or remount and re-edit config.txt via SSH from a recovery environment; remove duplicate or malformed lines |
| moOde auto-config overwrites manual overlay change | moOde re-applies its default overlay on each audio device change | After configuring in the moOde UI, verify config.txt via SSH and manually correct the overlay if needed; avoid re-saving the audio settings unnecessarily |
Confirm that HiFiBerry DAC+ is selected under Menu → Configure → Audio → I²S Audio Device in the moOde web interface. Then connect via SSH and verify that the correct Device Tree Overlay is present in config.txt:
grep hifiberry /boot/firmware/config.txt
For most Raspberry Pi 5 systems, use:
dtoverlay=hifiberry-dacplus-std
If you experience distorted audio or clicks and pops, use the slave variant:
dtoverlay=hifiberry-dacplus-std,slave
Run any of the following commands via SSH:
aplay -l
cat /proc/asound/cards
dmesg | grep -i hifiberry
If the HiFiBerry DAC+ appears in the output, the Raspberry Pi has detected the audio device successfully.
No. When the HiFiBerry DAC+ overlay is loaded, the Raspberry Pi's onboard audio (if present) is typically disabled. This is expected behaviour. moOde is designed to use a single audio output device at a time.
config.txt located on Raspberry Pi 5 running moOde?On Raspberry Pi 5, the boot configuration file is located at:
/boot/firmware/config.txt
The older path /boot/config.txt is used on systems running Raspberry Pi OS Bullseye or earlier. Check which path exists on your system by running:
ls -l /boot/config.txt /boot/firmware/config.txt
Sometimes. moOde updates can regenerate config.txt, which may overwrite your manual overlay entry. After any moOde update, verify the overlay is still correct using:
grep hifiberry /boot/firmware/config.txt
If it has been overwritten, repeat Steps 3–6.
hifiberry-dacplus-std and hifiberry-dacplus-pro overlays?The DAC+ Standard uses the Raspberry Pi's clock as the I²S master clock source. The DAC+ Pro variant uses dedicated onboard oscillators on the HAT to generate its own clocks, which can improve audio quality by reducing jitter. Use hifiberry-dacplus-pro only if your specific HAT is the Pro variant. Consult the HiFiBerry product page for your board to confirm which variant you have.