ES9018K2M-based streaming solution

Hello community members,

I started streaming music using a Sonos Connect in 2012, and later added a Schiit Modi DAC to improve the sound. When I thought about further upgrading (Sonos cannot do hi-res), I was tempted to go for a Linn Majik DS, but instead discovered the Volumio project. So I sat down and spent some time to assemble the following bits and pieces. Definitely more fun than buying a finished product…

  • A ES9018K2M DAC PCB from DIYINHK (I replaced the original NE5532 with a OPA2134)
  • A 23 step stepped attenuator from Valab, 10k log
  • A homemade power supply, using a 2x15VAC 0.8A transformer (inside a plastic enclosure for insulation), and a DIY PCB supplying 2x 3.3V and +/-12V to the DAC, through low noise LDO’s
  • A 3$ Ebay DCDC converter to supply 5V to the Raspberry Pi
  • A Galaxy Maggiorato GX383 enclosure from HIFI2000

The sound? Great! I keep on discovering my music collection over and over again.

Thank you to the Volumio staff for this great project.

Best regards,
Toni

Source: WD Live Book 1TB + Digitus 983A NAS Adapter
Streamer: Volumio 1.51 + ES9018K2M
Speakers: Abacus APC24-23C AMT (active)
Subwoofer: KEF PSW2500
20141115_151039.jpg
20141115_151013.jpg
20141115_150941.jpg

Well built;
cool Project with a truely hi-res DAC :smiley:

Hi Toni
First of all… awesome and neat project…! :slight_smile: Have been itchy to replace my ES9023 DAC with ES9018K2M… :wink:
Question pls:
The DIYINHK ES9018K2M is connected to Raspi via I2S directly and no need to use USB XMOS daughterboard, is that correct?
Basically the connection is: RasPi >> 3-wires I2S >> ES9018K2M >> 10K attenuator >> Stereo RCA

tks a lot.

Hello bennyjo88,

yes, the signal chain is RasPi B+ >> 3-wires I2S >> ES9018K2M >> 10K attenuator >> Stereo RCA

I used 10cm jumper cables to connect the B+ I2S pins to the DAC board:

J8-39 --> GND
J8-12 --> BCK
J8-35 --> LRCK
J8-40 --> DATA

Volumio 1.4, 1.5 and 1.51 needs to be tricked to play music through the ES9018K2M. If you select a generic DAC driver, you cannot use it for audio output directly using the GUI.

I did apply the following settings to make it work:

File: /etc/modules
snd_soc_core
snd_soc_bcm2708_i2s
bcm2708_dmaengine
snd_soc_pcm1794a
snd_soc_rpi_dac

File: /etc/asound.conf
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}

File: /etc/mpd.conf
audio_output {

             type           "alsa"
             name           "Output"
             device         "hw:0,0"
             mixer_control  "Playback Digital"
             mixer_device   "hw:0"
             mixer_index    "0"
             dsd_usb        "yes"

}

After that the I2S driver for the RPI-DAC can be used, and the audio output is set to sndrpirpidac.

Please note that the ES9018K2M (at least the DIYINHK PCB) needs +/-12V symmetrical voltage supply for the op amp output buffer (and 2x 3.3V for the DAC itself and the XTAL). You cannot simply replace a ES9023 DAC board, which runs off 5V I believe.

Best regards,
Toni

Awesome info for the file setting trick to make ES9018K2M works with Volumio… Tks a lot Toni :slight_smile:
Understood with the power supply requirement. I already have an R-Core transformer with 16V-0-16V, 3 X 9V output. And have bought that DIYINHK ultralow noise 12V-0-12V and 2 X 3.3V regulator for the DAC. The other last transformer output I will just regulate with LT3080ET for RasPi 5V supply.
Tks again mate for the info.

Toni, really a great job :slight_smile:
I saw the kit ES9018K2M a few days ago and I was thinking to upgrade from the 9023 audiophonics.
Two question:
1 - About DSD reproduction. Have you tried with DSD64 or DSD128 well as the usual frequencies 44 192 kHz ? Without resampling, of course.
2 - How much is the DIYINHK PCB power consumption?
Leopoldo

toni, very nice job. And thanks for posting the tweaks to get the K2M to work with the Pi’s I2S - been looking for that to try the Pi’s I2S for comparison to the USB out of an Alix.

Ever considered trying the K2M’s built-in 32-bit volume control via the Hifiduino implementation on the same K2M? Great marriage of Arduino and hifi that gives you full control of all the filter and volume options on the ESS chip. Plus a display and remote control.

Would be interesting to compare sound quality via the ESS as against the Valab.

Haden,

sorry for the delay. I was away on business for a couple of days.

1 - About DSD reproduction. Have you tried with DSD64 or DSD128 well as the usual frequencies 44 192 kHz ? Without resampling, of course

FLAC 96kHz/24bit and 192kHz/24 bit works. DSD files are being displayed in the library, but play back over I2S seems not to be supported with 1.51. The time isn’t advancing, Volumio will always show 0:00. Please note that I only tried a single DSD file (“07 - David Elias - Acoustic Trio - Rodeo On A Ridge (DSD64).dsf”) which is available for free download.

2 - How much is the DIYINHK PCB power consumption?

I’m afraid, I never measured. I am generating the 2x 3.3V through dedicated LDO that are supplied from the 12V rail. I calculated both heatsinks to work up to 300mA current on each 3.3V output (Pd=(12V-3.3V)*0.3A), because that’s what DIYINHK says on their website (one channel >300mA, the other >100mA - I doubt the “>” sign). In reality the current consumption has to be considerably less, because the heatsinks don’t heat up at all.

Best regards,
Toni

Derek,

Ever considered trying the K2M’s built-in 32-bit volume control via the Hifiduino implementation on the same K2M? Great marriage of Arduino and hifi that gives you full control of all the filter and volume options on the ESS chip. Plus a display and remote control.

Thank you for bringing it to my attention. Looks interesting. Right now I’m pursuing a different project (a Volumio box with integrated Class D amp and ES9023), but when I feel like doing a bit of software, I’ll try to implement the I2C volume control in the Raspberry itself. No additional hardware, except 3 wires for bit-banged I2C.

Best regards,
Toni

I small question, how much did the enclosure cost?

I am in process of making an ES9023 DAC/digital pre.

Like Tony i would like to make it a DSD streamer.

What “minipc” is the best to use?
Signal from i2s out to the dac i2s in?

Raspbery or is there an better solution? I am an Linux NOOB.

9023 does not support DSD. Even if it did, you would not be able to use this function via i2s.

Sent from my Oneplus One

Hello Ranho,

the enclosure is the Galaxy Maggiorato GX383 model from HIFI2000. It did cost me 115 EUR including shipping and CNC customization of the rear panel. Not exactly cheap, but a very well made enclosure, and good looking, too.

Best regards,
Toni

Hi, I followed the instruction on page 1, but got the message below in MPD.log. Volumio starts up fine, files are just not playing. Any clues?


ALSA lib pcm_hw.c:1667_snd_pcm_hw_open) Invalid value for card
Mar 20 19:16 : alsa_output: Failed to open “Output” [alsa]: Failed to open ALSA device “hw:0,0”: No such file or directory
Mar 20 19:16 : output: Failed to open audio output
Mar 20 19:16 : player: problems opening audio device while playing “USB/01-Hotel California.flac”

How interesting! I am considering almost the same. My ideal setup:
NAS --> GB LAN --> Banana Pro --> I2S (music) / I2C (volume) --> ESS9018K2M DAC (Dyihnk or …?) --> Hypex nCore --> speakers.

The first issue is that there is still no official Volumio support for the Banana Pro yet.

Hi Toni,

I just discovered this project. Well done!

Do you have any reference for the sound quality? ES9018? AK4399? Linn Majik DS(i)?

I would be interested to build one of these. I am currently experimenting with AK4399 with very satisfactory results, but I need an XMOS USB–>I2S board to make it work and I would like to use I2S directly. Now stepping up from single AK4399 to dual.

You can find my project here: https://github.com/guussie/PiDS/wiki/RPi-Digital-Streamer. I would ideally use Volumio2 as the base but with mediaplayer as my player and UI setup.

My reference is Linn Majik DSi, hence mediaplayer.

I use a separate RPi based DIY NAS Server running MinimServer. Very happy! Better than a commercial NAS and consuming less power.

Thanks for your input,

Guus