0

Fix: Digi+ Standard not playing at correct speed

Some HiFiBerry Digi+ have been shipped with incorrect product identification in the onboard EEPROM. In this case, the card will use the wrong driver and playback speed will be incorrect (too fast).

You will notice this when running the command aplay -l:

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: 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


You will see that it says "Digi+ Pro". In this case, it's using the wrong driver. To fix this, there are 2 ways:

Load the correct overlay "by hand".

Modify the file /boot/config.txt and add the following 2 lines:

force_eeprom_read=0
dtoverlay=hifiberry-digi

And reboot.

Flash the EEPROM with the correct data

Boot HiFiBerryOS. Make sure, you're using at least version 20200127:

Now enable SSH:

Login via SSH with username root and the password you selected.

Run the command

/opt/hifiberry/contrib/flash.sh digiplus
The software needs to change some settings to prepare for the flash process and will reboot. Login again and run the same command again.
You should now see the following:
# /opt/hifiberry/contrib/flash.sh digiplus
This script comes with ABSOLUTELY no warranty. Continue only if you know what you are doing.
Writing...
2+1 records in
2+1 records out
Done.
Cleaning up /boot/config.txt again
Rebooting in 5 seconds
That's it. You have sucessfully flashed the EEPROM on the board

Result

Both versions work equally well. If you don't want to re-flash the EEPROM, that's fine. 
The correct result now looks like this:

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_digi], device 0: HifiBerry Digi HiFi wm8804-spdif-0 [HifiBerry Digi HiFi wm8804-spdif-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

12 comments

Please sign in to leave a comment.