The Hifi-Shield Plus provides both stereo RCA connectors and a 3.5mm stereo jack (all gold-plated) to connect to external amplifiers and other audio equipment. An S/PDIF Optical output is also available. Via TI's high-end PCM5102 DAC chip(known as Burr-Brown), it supports 16, 24, 32 bit audio formats with minimal distortion (-93dB) and ideal dynamics (110dB+), plus amazing sampling rates of 384kHz with odroid-c1. (up to 192KHz with odroid-c2)

ODROID-C1+/C2

  • Assemble the C2 with the Hifi-Shield, attach a USB keyboard, USB mouse and HDMI monitor, then power up the system.
  • Update the System: sudo apt-get update && sudo apt-get dist-upgrade
  • To ensure that the Hifi-Shield kernel modules are loaded on Terminal.
odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S.27 dit-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$
odroid@odroid64:~$ sudo modprobe snd-soc-pcm5102
odroid@odroid64:~$ sudo modprobe snd-soc-odroid-dac
odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S.27 dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDDAC [ODROID-DAC], device 0: I2S.27 pcm5102-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$

If you have to load the driver every time whenever your ODROID-C2 starts, simply you can register the driver into /etc/modules

odroid@odroid64:~$ su
Password:  /* root password is "odroid" */
root@odroid64:/home/odroid# echo "snd-soc-pcm5102" >> /etc/modules
root@odroid64:/home/odroid# echo "snd-soc-odroid-dac" >> /etc/modules
root@odroid64:/home/odroid# exit
exit
odroid@odroid64:~$ 

This adds one line at end of the file, /etc/modules, and load the driver on boot automatically.

Create /etc/asound.conf with the following content:

pcm.!default  {
 type hw card 1
}
ctl.!default {
 type hw card 1
}

Reboot again.

Check, if the sound card is enabled with “aplay -l”:

odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S.27 dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDDAC [ODROID-DAC], device 0: I2S.27 pcm5102-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$
  • To test, connect an amplifier to the 3.5mm or RCA lineout jack on the Hifi-Shield, and then run:
  • Applications → Sound & Video → Sound → Hardware Tab & Output Tab select “ODROID-DAC”
  • If you want to use the Optical output on Hifi-Shield Plus model, select “ODROID-HDMI”.

ODROID-C4

  • Kernel version should be 4.9.230 or higher version.
  • Ensure that you have installed the HifiShield and have attached a keyboard, a mouse, and a HDMI monitor.

Edit /media/boot/config.ini to edit the DTBO settings. Open that file and find the part shown below.

The below settings different from the default, it adds a new section named overlay_hifishield and uses that section by the overlay_profile variable.

; Device Tree Overlay
overlay_resize=16384
overlay_profile=hifishield
overlays="spi0 i2c0 i2c1 uart0"
 
[overlay_custom]
overlays="i2c0 i2c1"
 
[overlay_hktft32]
overlays="hktft32"
 
[overlay_hktft35]
overlays="hktft35"
 
[overlay_hifishield]
overlays="hifishield"

After editing, reboot the board to take effect.

Then you can see that the sound card is enabled as soon as the system boots up.

root@odroid:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: SPDIF-dit-hifi dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDHIFI [ODROID-HIFI], device 0: TDM-B-pcm5102a-hifi multicodec-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

To test its working, connect an amplifier to the 3.5mm or RCA lineout jack on the Hifi-Shield. Then check the following.

  • Applications → Sound & Video → Sound → Hardware Tab & Output Tab select “ODROID-HIFI”
  • If you want to use the Optical output on the HifiShield Plus model, select “ODROID-HDMI”

HiFi-shield2

The Hifi-Shield 2 provides stereo RCA connectors to connect to external amplifiers and other audio equipment. An S/PDIF Optical output is also available. Via TI's high-end PCM5242 DAC chip(known as Burr-Brown), it supports 16, 24, 32 bit audio formats with minimal THD+N ratio (0.002%) and ideal dynamics (116dB+), plus amazing sampling rates of 384kHz with odroid-c1. (up to 192KHz with odroid-c2) Volume control via I2C interface is great feature to keep the great audio quality with various audio output volume.

ODROID-C1+/C2

  • Assemble the C2 with the Hifi-Shield2, attach a USB keyboard, USB mouse and HDMI monitor, then power up the system.
  • Update the System: sudo apt-get update && sudo apt-get dist-upgrade
  • To ensure that the Hifi-Shield2 kernel modules are loaded on Terminal.
odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$ su
Password:  /* root password is "odroid" */
root@odroid64:/home/odroid# modprobe aml_i2c
root@odroid64:/home/odroid# modprobe snd_soc_pcm512x
root@odroid64:/home/odroid# modprobe snd_soc_pcm512x_i2c
root@odroid64:/home/odroid# echo pcm5242 0x4c > /sys/class/i2c-adapter/i2c-1/new_device
root@odroid64:/home/odroid# modprobe snd-soc-odroid-dac2
root@odroid64:/home/odroid# aplay -l
**** List of PLAYBACK Hardware Devices ***
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDDAC2 [ODROID-DAC2], device 0: I2S pcm512x-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
root@odroid64:/home/odroid#
  • To test, connect an amplifier to the RCA out jack on the Hifi-Shield2, and then run:
  • Applications → Sound & Video → Sound → Hardware Tab & Output Tab select “ODROID-DAC2”
  • If you want to use the Optical output select “ODROID-HDMI”.

You want to add the Hifi-Shield2 sound_card on ODROID-C2 at boot by editing /etc/rc.local.

odroid@odroid64:~$ sudo nano /etc/rc.local
if [ -f /aafirstboot ]; then /aafirstboot start ; fi
 
echo Loading HiFi-Shield2 module
modprobe aml_i2c
modprobe snd-soc-pcm512x
modprobe snd-soc-pcm512x-i2c
echo pcm5242 0x4c > /sys/class/i2c-adapter/i2c-1/new_device
modprobe snd-soc-odroid-dac2
 
amixer -c 1 sset Analogue 0
amixer -c 1 sset Digital 201
amixer -c 1 sset Deemphasis on
echo Done.
 
exit 0
 
^G Get Help  ^O Write Out ^W Where Is  ^K Cut Text  ^J Justify   ^C Cur Pos
^X Exit      ^R Read File ^\ Replace   ^U Uncut Text^T To Linter ^_ Go To Line 
  • Add the following at the bottom of the page above exit 0. ^x exit and save the file. Reboot your ODROID-C2.

Create /etc/asound.conf with the following content:

pcm.!default  {
 type hw card 1
}
ctl.!default {
 type hw card 1
}

Reboot again.

Check, if the sound card is enabled with “aplay -l”:

odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDDAC2 [ODROID-DAC2], device 0: I2S pcm512x-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$ 

ODROID-C4

  • Kernel version should be 4.9.230 or higher version.
  • Ensure that you have installed the HifiShield2 and have attached a keyboard, a mouse, and a HDMI monitor.

Edit /media/boot/config.ini to edit the DTBO settings. Open that file and find the part shown below.

The below settings different from the default, it adds a new section named overlay_hifishield2 and uses that section by the overlay_profile variable.

; Device Tree Overlay
overlay_resize=16384
overlay_profile=hifishield2
overlays="spi0 i2c0 i2c1 uart0"
 
[overlay_custom]
overlays="i2c0 i2c1"
 
[overlay_hktft32]
overlays="hktft32"
 
[overlay_hktft35]
overlays="hktft35"
 
[overlay_hifishield2]
overlays="hifishield2"

After editing, reboot the board to take effect.

Then you can see that the sound card is enabled as soon as the system boots up.

root@odroid:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: SPDIF-dit-hifi dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDHiFi2 [ODROID-HiFi2], device 0: TDM-B-pcm512x-hifi pcm512x-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

To test its working, connect an amplifier to the RCA lineout jack on the HifiShield2. Then check the following.

  • Applications → Sound & Video → Sound → Hardware Tab & Output Tab select “ODROID-HIFI2”
  • If you want to use the Optical output select “ODROID-HDMI”.

Hifi Shield and Hifi Shield 2 sound cards cannot be activated at the same time. Because they share I2S port.
Please use only one of them.

If above guide is not comfortable for you, try this alternative easy solution made by Fourdee (DietPi OS image author).
http://forum.odroid.com/viewtopic.php?f=118&t=24415

The volume level control is available only on the RCA line-out output of HiFi-Shield 2.
The SPDIF optical output level is always maximum because it is a simple I2S bypass.