ES9018K2M, ES9028Q2M, 9038Q2M DSD/I2S DAC HATs for Raspberry Pi

Some off topic testing: Ian ESS controller works with third party ESS9038Q2M DAC

I bought this ES9038Q2M DAC last year, just want to confirm my ESS controller works for third party ESS DACs.

Yes, it works.

This DAC was fine. The only two issues I had with my RaspberryPi 3 are:
1. It doesn't support 44.1KHz 16bit format, got big noise for this format.
2. It doesn't play DoP music correctly, the sound was just like kind of water flow( maybe the version is too old).

With my ESS controller, all above issues are fixed. DAC chip-id was recognized as ES9038Q2M. It plays 44.1KHz 16bit music nicely, as well as all other formats. The DoP was also been enables and plays without any problem.

Please see pictures for configuration details.

Some experience to share:

1. u.fl coaxial cables are tested much better than regular jumper wires for input signals. One of the pictures shows how to mount u.fl socket at bottom side of the DAC PCB.

2. The on-board MCU has to be removed in order to use external ESS controller. Two I2C pins can be soldered right on top of the pull-up resistors.

3. When I replace the original OP with OPA1622, I got some improvement on sound quality. It can also drive my Sennheiser 300ohm headphone.

Ian



ESScontroller2
by Ian, on Flickr
 

Attachments

  • ESScontroller3.jpg
    ESScontroller3.jpg
    444.9 KB · Views: 1,386
  • ThirdPartyES9038Q2M1.jpg
    ThirdPartyES9038Q2M1.jpg
    363.2 KB · Views: 1,335
  • ThirdPartyES9038Q2M2.jpg
    ThirdPartyES9038Q2M2.jpg
    385.3 KB · Views: 1,323
Last edited:
Very nice little controller! :)

I see that you have also routed the I2S signals from the dac board to the controller board. Why is that? Is your controller monitoring these lines to determine bit depth / sampling rate?

Thanks Dimdim,

Yes, I designed a built-in music format analyzer in the ARM processor.
To me, this is not just something nice to have. I really need it to run ESS DACs at higher performance.

1. With this true signal format analyzer, precision control can be performed.
Sample rate, clock frequencies, X*Fs, date length, PCM/DSD/DoP format....All those information can be taken into consideration at same time and at real time to decide the most optimized DAC settings.

2. Make it possible to run ESS DACs at synchronized mode
Sound quality will get big improved if ESS DAC is running at sync mode. However, under sync mode, internal DPLL will be in "free wheel" state. And the MCLK is also not fixed at given frequency. No any useful information can be provided from internal registers. So in this case, have to do real signal monitoring to get music information,

3.Make it possible to silence the I2C communication between ESS DAC and controller while music is playing.
Otherwise it has to access ESS internal registers over and over to get some music information(still can not cover sync mode).

Ian
 
Last edited:
Thanks Dimdim,

Yes, I designed a built-in music format analyzer in the ARM processor.
To me, this is not just something nice to have. I really need it to run ESS DACs at higher performance.

1. With this true signal format analyzer, precision control can be performed.
Sample rate, clock frequencies, X*Fs, date length, PCM/DSD/DoP format....All those information can be taken into consideration at same time and at real time to decide the most optimized DAC settings.

2. Make it possible to run ESS DACs at synchronized mode
Sound quality will get big improved if ESS DAC is running at sync mode. However, under sync mode, internal DPLL will be in "free wheel" state. And the MCLK is also not fixed at given frequency. Without this real monitoring format information, no any useful information can be provided from internal registers in this case.

3.Make it possible to silence the I2C communication between ESS DAC and controller while music is playing.
Otherwise it has to access ESS internal registers over and over to get some music information(still can not cover sync mode).

Ian

Hi Ian,

I currently have a BII running with some Arduino code and display to control the DAC settings manually. The output stage is currently the NTD1. I'd like to try that controller of yours instead of the Arduino stuff. I guess I also need to have the RPi III and the controller HAT? Would it support automatic PCM and DSD switchover or need to use DoP?

Thanks
Do
 
1. u.fl coaxial cables are tested much better than regular jumper wires for input signals. One of the pictures shows how to mount u.fl socket at bottom side of the DAC PCB.
Ian, awesome job with the u.fl sockets! Could you please share some information about how you managed to solder them to the board, as there are no pads.
Also, how did you connect the ground to sockets?
 
Ian, awesome job with the u.fl sockets! Could you please share some information about how you managed to solder them to the board, as there are no pads.
Also, how did you connect the ground to sockets?

@nielsek

Scratch the solder mask (green paint) under the GND pads of the u.fl socket. Solder GND pads of the u.fl socket to the ground plate of PCB with signal pad facing to the signal pin. Solder the signal pad of u.fl socket to the signal pin.

Do the same to all three u.fl sockets.

Regards,
Ian
 
Hi Ian,

I currently have a BII running with some Arduino code and display to control the DAC settings manually. The output stage is currently the NTD1. I'd like to try that controller of yours instead of the Arduino stuff. I guess I also need to have the RPi III and the controller HAT? Would it support automatic PCM and DSD switchover or need to use DoP?

Thanks
Do

Hi pinnocchio,

Yes, it's possible to support your BII. This ESS controller works either as RPi HAT or as independent driver. So the configuration would be very flexible and totally up to your application.

It supports PCM/DSD switchover, as well as DoP if your system is not capable for native DSD output.

Ian
 
@nielsek

Scratch the solder mask (green paint) under the GND pads of the u.fl socket. Solder GND pads of the u.fl socket to the ground plate of PCB with signal pad facing to the signal pin. Solder the signal pad of u.fl socket to the signal pin.

Do the same to all three u.fl sockets.

Regards,
Ian

@nielsek

Hope this picture can show you how to solder u.fl sockets to this ES9038Q2M PCB.

Regards,
Ian
 

Attachments

  • UFLsocketTo9038Q2M.jpg
    UFLsocketTo9038Q2M.jpg
    543.9 KB · Views: 525
For audiophiles, this is the much better configuration.

The nice thing is that, with the IsolatorPi, the ESS controller becomes an isolated controller!

No longer having any electronic connection between the controller and ESS DAC. As well as the ground.

I don't like a noisy MCU to be integrated in a DAC board, that's one of the most important reason I design this independent ESS controller.



ESScontroller5
by Ian, on Flickr

Ian
 
Last edited:
Hi Ian,

Do you know if this will be compatible with Roon from Roon Labs? I previously was using Moode but switched to Roon for the multi-room capability and especially the library handling. I'm also re-sampling everything to DSD 256 on my main DAC. Other DACs are format native.

Thanks
Do

Hi Do,

By default, my design works at hardware mode. So, theoretically can work with any software.

PCM/native DSD/DoP are all capable now. I don't see any problem to work with your new Roon software, as long as it can output those formats.

Regards,
Ian
 
All my ESS DAC HATs are pure DAC. They don't have any other digital logic integrated on board.

Maybe just kind of audiophile's thoughts:).

Regards,
Ian

It's a pity. If the reclock module can be connected directly to a input terminal of DA chip, theoretically there will be almost no jitter in the digital circuit, and if the reclock module can be integrated with DA chip, the clock signal can be very close to provide the DA chip without the clock jiiter. I think this is the closest to perfect digital circuit design?