About technologies for your digital home

For beginners and tinkerers

Openelec ES9023 (using I2S)

December 28th, 2014

 

 
After reviewing different options for Raspberry Pi soundcards, I was already committed to get a Wolfson Audio Card soundcard, until it appeared that shipping price from Amazon UK was pretty high (I live in Republic of Ireland). So I went for a second choice – ES9023 chip based card from eBay, which arrived after two weeks just before Christmas 🙂

OpenEelec ES9023

Let’s have a look

The card’s producer is labelled as TeraDak, while the card itself is labelled as ES9023 v2.0. You can find more pictures of the card over here. The card is based on earlier mentioned ESS chip. There are two separated voltage regulators on board. First of which is used for the oscillator, while the second is used to power ES9023 chip itself. There is a LC filter on the input of the voltage regulator for ES9023. The soldering and the board itself quality is pretty good. The same card (based on pictures) is being sold as Audiophonics DAC Sabre sound card. You can find the description and comparison of very similar ES9023 card in my previous post. The card has two golden RCA connectors for audio output. Normally, I use these not very expensive interconnect RCA cables in my audio setup.

Raspberry Pi ES9023 I2S

Hardware part

Raspberry Pi version B has only the holes of P5 socket, you can see this in the photo in one of my previous posts. First thing which you will have to do is to solder a missing P5 pins on Rasspberry Pi as it is shown below. For this purpose, you should get a double row header.

Raspberry Pi I2S

Next, I made shorter (~twice) the wires coming from ES9023 DAC board. The reason is that some people mentioned about the noise of this DAC due to the interference. I had few Arduino female to female cables. So, I carefully dismounted eight connectors. Later on, they were soldered on the wires of ES9023 board.

ES9023 connection to Raspberry Pi

Here is a pinout of Raspberry Pi P5 socket which is used to connect to I2S DAC, which is ES9023 in my case:

RPi P5 I2S



The connection between ES9023 board and RPi P5 socket should look like:

Orange : MCLK -> nc (ES9023 is in asynchronous mode)
Yellow : GND -> 7
White : DATA -> 6
Red : LRCK -> 4
Black : BCK -> 3
Power 5V (Red wire) -> 1
Power GND (Black wire) -> nc

nc – not connected

As you can see, some of the ES9023 wires are left not connected.

Raspberry Pi ES9023 Test

The hardware part is done 😉 It’s now time to test the ES9023 board and the connection. I recommend not leave the feedback on eBay before finishing the test.

Testing ES9023

To perform a test, you will need a Raspbian with test tone generator, which will be producing a 1kHz tone. The credits for creating this image goes to HiFiBerry. So you have to extract the image, write to an SD card and boot it. If you can hear a 1kHz tone on your amplifier – congratulations, no errors were done! Opposite, you have to check the connection or the board is faulty 🙁

Raspberry Pi and ES9023

OpenElec ES9023At the beginning, I assumed if ES9023 is working with one Raspberry Pi distribution (e.g. based on Debian), then it should work with all other based on the same initial distribution (Debian).

Well, that was a wrong assumption. It looks that different distributions evolved (were modified?) differently. So, you have to find out yourself if your I2S DAC (e.g. ES9023 or other) will work. In my case, I just wanted get it working on OpenElec.

OpenElec and ES9023

At the moment of writing this post, the latest stable OpenElec version v.4.2.1 has some kind issues with the ALSA sound-cards. I could not find the reason for not working, however it appeared that this issue is already sorted out in newer OpenElec RC builds. I used the version 4.97.2 and it worked 🙂

Steps to enable ES9023 on OpenElec distro

First you have to connect using SSH to OpenElec with the user root and the password openelec.

After that you have issue following commands:

cd .config/modules-load.d
nano ES9023.conf

Put these modules to load during start-up:

snd_soc_bcm2708
bcm2708_dmaengine
snd_soc_pcm5102a
snd_soc_hifiberry_dac

Disable few modules by creating blacklist.conf:

nano blacklist.conf
block lirc_rpi 
block lirc_dev

Now, you can reboot OpenElec.

Next, you can check if your ES9023 DAC was detected:

aplay -l

This command should return something similar to:

**** 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

It’s OK that it lists PCM5102 DAC, both of them are I2S DACs.
You can check if you can choose snd_rpi_hifiberry_dac in soundcard list on OpenElec.

If it did not appear, you can try another trick:

nano ~/.config/asound.conf
pcm.!default {
 type hw card 0
}
ctl.!default {
 type hw card 0
}

Final thoughts about ES9023 sound quality

The sound of ES9023 sound a lot better compared to the built-in sound card. I do not want to listen the sound produced by original Raspberry sound card any-more … I recommend you to experience the difference yourself 😉

Relevant links and readings

Here are couple of links, which were useful for me in enabling ES9023 on OpenElec: Koalo’s blogVolumio forum, HiFiBerry and Northwest Audio & Video Guy blog

Update

Do you need to run on newer version of OpenElec (e.g. 6.X)? In order to do this, you have to enable additional device (which is not done by default on OpenELEC) in device tree overlay. The answer was given on OpenElec forum 🙂

Enjoy a nice sound of OpenElec ES9023!