the story began , when suddenly my old JVC CD-player got problems with some CDs ; laser EOL , replace or take another ? ok, searched in the attic and found my old Sony 228 ESD ; still working fine, but the sound , not satisfying - hmm, maybe put better DAC inside would help. So looked, what should be "top DAC" and decided , to give Ti PCM1794a a try. Chip design is > 20 years newer, so this could be a little bit different, hopefully better.
ok, this sounding definitive better. But now the "silly game" beginning : could another DAC give even better sound ? and i looked, what could be the top of all...
next: CS4398 seems top, AD1852 i had already ordered long ago, but never used, and all top expensive DAC or streamer seem using some ESS chips...difficult to decide. and a NOS test with TDA1387 DAC.
so: try all of them... 🙄
All DACs have a digital filter built in , some even can switch different filters, what might have a sound signature - and THIS needs testing too. But to control the DACs, i need sending command on I2C bus and so need a CPU and program to do this, and then all build in this old CD-player ? or choose a bigger CPU , that can play audio data without anything else ?
ok, i am working anyway in R&D , and a small development board with STM32F411 was unused lying around : the F411 has SD-IO and USB otg , I2C and I2S -- all i need for a "player".

cons : a lot of work...
pros: no running PC, no SMPS , no connection to other things , local clean master clock close to the DAC. optimum solution to play digital music.
to make the long story short:
actual state: -> similar to "old" CD-player
planned:
maybe possible:
actual problem: i want to try current mode output on DAC, with transistor I/V , because this should be the best possible;
+ then need to make a new board, with all together...
so: if anybody interested, let me know. maybe gives me motivation, to make a board and more software soon.
🙂
ok, this sounding definitive better. But now the "silly game" beginning : could another DAC give even better sound ? and i looked, what could be the top of all...
next: CS4398 seems top, AD1852 i had already ordered long ago, but never used, and all top expensive DAC or streamer seem using some ESS chips...difficult to decide. and a NOS test with TDA1387 DAC.
so: try all of them... 🙄
All DACs have a digital filter built in , some even can switch different filters, what might have a sound signature - and THIS needs testing too. But to control the DACs, i need sending command on I2C bus and so need a CPU and program to do this, and then all build in this old CD-player ? or choose a bigger CPU , that can play audio data without anything else ?
ok, i am working anyway in R&D , and a small development board with STM32F411 was unused lying around : the F411 has SD-IO and USB otg , I2C and I2S -- all i need for a "player".

cons : a lot of work...
pros: no running PC, no SMPS , no connection to other things , local clean master clock close to the DAC. optimum solution to play digital music.
to make the long story short:
actual state: -> similar to "old" CD-player
- IR remote control (play, pause, next, track. no....)
- plays from micro SD-card or USB stick
- 44.1 k/16b (CD format) WAV , FLAC and MP3 (floating point decoding)
- ES9038Q2M DAC , OPA1612 opamp
- 7 dig. filter switchable
- dig. volume control (by remote)
- about 1W power , + LED display about 2,5W
planned:
- radio (WiFi connection/ MP3 or AAC radio stations)
- HiRes WAV (24b , 32b, 88k, 96kHz) maybe FLAC also (if CPU is fast enough)
- small TFT screen, to show more than only track+file number
- my own digital filter and NOS (no oversampling filter on data)
- NOS TDA1387 DAC in parallel
- headphone OUT (small amp + volume pot)
- SPDIF input , to switch to PC, CD or TV source
maybe possible:
- web app, to control the radio stations
- or connect to any streaming source
actual problem: i want to try current mode output on DAC, with transistor I/V , because this should be the best possible;
+ then need to make a new board, with all together...
so: if anybody interested, let me know. maybe gives me motivation, to make a board and more software soon.
🙂
Last edited:
Hi Halfsch,
Have you looked at Ian Canada stuff, in this this forum or other sources (github for doc). It can solve your problem either by using part of his cards and develop others if you like or a full system. Currently I use a RPI 4 as a computer, a USB to I2S card going to retiming and reclocking cards connected to an external DAC in Sync mode thrue HDMI connection. I ordered Ian's DAC card and audio transfo output card. The DAC is fully controled by a controler, no need to develop anything.
Just type Ian Canada on the web and you'll find a lot of interesting info, doc and an online store if you go to this direction.
Good luck, Flifli
Have you looked at Ian Canada stuff, in this this forum or other sources (github for doc). It can solve your problem either by using part of his cards and develop others if you like or a full system. Currently I use a RPI 4 as a computer, a USB to I2S card going to retiming and reclocking cards connected to an external DAC in Sync mode thrue HDMI connection. I ordered Ian's DAC card and audio transfo output card. The DAC is fully controled by a controler, no need to develop anything.
Just type Ian Canada on the web and you'll find a lot of interesting info, doc and an online store if you go to this direction.
Good luck, Flifli
thanks for info, i didnt know this. But seems, he had almost same idea , only some years more early. 🙄
and the other important point is: listen to something, i made 100% myself 😎
so i try to go on and make tests with next steps...
and the other important point is: listen to something, i made 100% myself 😎
so i try to go on and make tests with next steps...
I presume yo mean ES9038Q2M, not PRO? 1W seems far too low for 9038PRO. any pics? yes Ian has been at it for a while ... 🙂
right, 2 ch chips. not 8ch, PRO. i make a pic tomorrow, today too late. anyway, is just test connection in a paper box...
quite significant differences in the parts and applications, not just channel count. without specifying q2m, or pics 🙂, many will assume you are talking about the PRO model.
so, no PRO 8 channel chip, just 2 ch stereo. 😉
and to start , i just looked for some DAC modules on Ali... here a pic of V 2. player , with ES9028Q2M .
here i choose a MAX7219 display, because i was thinking, i need big letters, to read it without glasses...but i see now, the display is a bit "over".
(display showing source/CD no./track no. , when playing)
to connect the micro-SD , i soldered the wires to one of these micro->SD adapters, that you get with many micro-SD cards in the package,
making the perfect adapter to the F411 board here. (at zero costs 😎 )
software , Player , running fine without any errors , but only for 44.1k / 16b material (wav, flac , mp3 ) for now.
switching clock and data size is some hard work, if it should be perfect in the end, and i have not much sources for good quality at high resolution,
so until now it seems not worth the time to program it. And 96k/24bit FLAC is not possible without DMA from SD card and 4-bit access on SD-card-bus,
what is possible with this CPU , but really some work...here is running 1-bit-mode at full speed, 50 Mbit with sdhc card , CPU load : ca. 2% WAV, 35% FLAC , 30% MP3 (up to 320kb/s , with floating point calculation, ca. 120dB dynamic range).
so next: try to make a THD test and then use current mode output and test THD , to compare - and listen, if there is something better, i can hear.
and to start , i just looked for some DAC modules on Ali... here a pic of V 2. player , with ES9028Q2M .
here i choose a MAX7219 display, because i was thinking, i need big letters, to read it without glasses...but i see now, the display is a bit "over".
(display showing source/CD no./track no. , when playing)
to connect the micro-SD , i soldered the wires to one of these micro->SD adapters, that you get with many micro-SD cards in the package,
making the perfect adapter to the F411 board here. (at zero costs 😎 )
software , Player , running fine without any errors , but only for 44.1k / 16b material (wav, flac , mp3 ) for now.
switching clock and data size is some hard work, if it should be perfect in the end, and i have not much sources for good quality at high resolution,
so until now it seems not worth the time to program it. And 96k/24bit FLAC is not possible without DMA from SD card and 4-bit access on SD-card-bus,
what is possible with this CPU , but really some work...here is running 1-bit-mode at full speed, 50 Mbit with sdhc card , CPU load : ca. 2% WAV, 35% FLAC , 30% MP3 (up to 320kb/s , with floating point calculation, ca. 120dB dynamic range).
so next: try to make a THD test and then use current mode output and test THD , to compare - and listen, if there is something better, i can hear.
for test, i used EMU0202 as ADC, 48khz/asio input, to labtop -> Arta for 32kFFT;
1kHz file, i found on my PC, (made it 2003 ! ) is 1.1kHz 44k1/16b , with noise shaping and dither, so has good mid band resolution, but increasing noise at >10kHz.
signal from my V2 setup, as in pic showed before, with 9028 dac.

well, k3 at -102dB , about 0,0008% , surprise me, because dac is in voltage mode out and this should be "bad". (but not too bad, eh..)
and same, "paused", dig.zero data playing.

ok.
1kHz file, i found on my PC, (made it 2003 ! ) is 1.1kHz 44k1/16b , with noise shaping and dither, so has good mid band resolution, but increasing noise at >10kHz.
signal from my V2 setup, as in pic showed before, with 9028 dac.

well, k3 at -102dB , about 0,0008% , surprise me, because dac is in voltage mode out and this should be "bad". (but not too bad, eh..)
and same, "paused", dig.zero data playing.

ok.
Last edited:
well, its probably about 15-20dB worse than it could be, so about as 'bad' as would be expected. Not as terrible as some of the Ebay dacs that murder this chip, but passable.
ok, right. as in datasheet - but now test with ES9038q2m shows a lot of noise, white noise, so seem intentional...or i have a bad chip.
i wrote to ESS - we will see, what they can tell me or will they answer at all.
now testing ES9018 - ok, this is working, as it should do, from datasheet.
set to NOS , dig filter off , gives :

is NOS , see images at 44k +/- 1k , sound is very "natural" , remember me to the good old vinyl-days 😉
i wrote to ESS - we will see, what they can tell me or will they answer at all.
now testing ES9018 - ok, this is working, as it should do, from datasheet.
set to NOS , dig filter off , gives :

is NOS , see images at 44k +/- 1k , sound is very "natural" , remember me to the good old vinyl-days 😉
Last edited:
It would help to see schematics and or pics of boards you are working with. Almost everything can have some influence on the sound that can be heard with a high enough quality reproduction system. The two things that seems to help most to start with are output stages and AVCC voltage regulation. Clocks and other dac chip power rails can eventually matter too. So can setting DPLL_Bandwidth to the lower stable value (as ESS recommends).
actually I was underestimating the difference as you arent including noise. probably closer to 30db improvement could be possible. just how much worse did you expect it to be? is 30db acceptable to you? as for any kind of constructive feedback, Mark is correct we dont have much to go on and I would not expect a useful reply from ESS. They need to pay their staff; what benefits them in answering your questions given you didnt even design the dac? I would avoid mentioning you are running in NOS mode and listening to it ... the main reason they give you the ability to turn it off, is so a more advanced external digital filter can be used. It is not intended to be used without a filter.
30db improvement ?? from ES9018k2m max. -120 dB is possible (in current mode) ; i am at about -110dB - so maybe 10dB more is possible, then distortion is below noise level (and i could not prove it anyway, because i have no ADC with lower THD ) .
what i found with ES9038 is totally different, the "produced" noise is about 20dB higher and scales with volume setting (on chip) , giving about 15 bits resolution + dither. thats why i tried to ask ESS, this cannot be, except my 9038 is bad or i program something wrong. But i see no "dither-setting" or so in the 9038 registers and 9018 and 9028 chips behave correct (as expected from ds and my cheap boards with voltage mode out).
And the NOS setting is just for fun, to see, whats coming out without os-8x-filter .
what i found with ES9038 is totally different, the "produced" noise is about 20dB higher and scales with volume setting (on chip) , giving about 15 bits resolution + dither. thats why i tried to ask ESS, this cannot be, except my 9038 is bad or i program something wrong. But i see no "dither-setting" or so in the 9038 registers and 9018 and 9028 chips behave correct (as expected from ds and my cheap boards with voltage mode out).
And the NOS setting is just for fun, to see, whats coming out without os-8x-filter .
Regarding routing of I2S signals from a USB board to a dac, the pics shown earlier in this thread don't look ideal. A somewhat better approach might include separate ground wires for each I2S signal, and some attempt to route signals so as to help reduce unwanted crosstalk. Pic below may be better than nothing. Please be aware there are series damping resistors on the USB board and on the dac board. Also, the USB board in the pic is I2SoverUSB which has pretty decent clocks for most purposes, along with some other useful features. http://jlsounds.com/i2soverusb.html
Attachments
of straight hd. your measurements above state -102dB of H3 that i'm referring to be able to improve on and what you said you were 'shocked' by. I would expect to be able to get as good as -125-130dB of HD3. Your measurement capabilities and their limits really have nothing to do with it. My apologies though, I was referencing 9038q2m and your image quotes its from 9028. so which is it, 9018k2m, es9028xxx, or 9038q2m? With a long FFT you can of course measure better straight HD than your ADC is capable of in realtime anyway.
Last edited:
yes, i think the same - until now, only automatic answer ("thank you for contacting ESS...").re ESS, I would be surprised if you get a meaningful answer.
all 3. first pics with 9028 , the "NOS" with 9018. and 9038 had this strange "added" noise, i show a pic (it is on the labtop, i made the analysis with).so which is it, 9018k2m, es9028xxx, or 9038q2m?
to be true: the ES9038 should be more new + better, the first with "Hyper stream II " DAC , so my measurement with too much noise could also come from something around the DAC; the 100MHz clock i checked with scope, can see no big jitter (as far, as my scope can show jitter); so the clock seem ok and not creating noise issue.
+
yes, i know. 🙄 on signal lines are damping resistors and i set the switching speed from STM32F411 I2S port as low as possible, to avoid reflections.routing of I2S signals from a USB board to a dac, the pics shown earlier in this thread don't look ideal
this giving I2S connection without any problems - as long, as the SD-card is not to close. Data transfer on SD-card is producing surprising high levels of RF radiation (up to 1 GHz or so - maybe, i take it to work and make EMI measurement, just out of interest ) .
now 9038 - with "high" white noise

and volume -30dB down:

both , 9018 and 9028, dont show this strange noise behavior
Last edited:
When noise floor on an FFT changes with signal level, some people call that effect 'noise floor modulation.' It is known that some dac modulator designs can produce that effect, although Hyperstream II was designed to keep the effect down to a very low level. Other than that, RF noise can sometimes get into opamps, get demodulated in input stage junctions or by ESD protection diodes. The same noise or its demodulated form can also be intermodulated with signal to produce a signal-correlated noise variation also seen as noise floor modulation. One other effect I can think of at the moment is that some modulators can produce idle tones that can sweep across the audio band. If a long FFT is taken and any signal is time-variant during the acquisition time then it can get smeared out across bins, possibly looking more like noise. Given that the dac in question is presumably a real ES9038, probably the noise floor is not being modulated much in the dac, especially not in the audio band. Could be if the I/V opamp were LME49720 (or equivalent) or something like that, then RF demodulation could be a problem. Some of the newer opamps are much more tolerant of dac RF, say, maybe OPA1612.
EDIT: Of possible interest: https://www.yumpu.com/en/document/read/23182504/noise-shaping-sigma-delta-dacs-ess-technology-inc
Also: https://6moons.com/audioreviews2/resonessence/2.html
EDIT: Of possible interest: https://www.yumpu.com/en/document/read/23182504/noise-shaping-sigma-delta-dacs-ess-technology-inc
Also: https://6moons.com/audioreviews2/resonessence/2.html
Last edited:
Thanks alot, Mark, this is the point:
so my ES9038q2m is not "bad" or fake, it is just intentionally adding dither noise , probably same as "the new ESS9028 Pro" (in your 6moons link).
+ opamp i put in is OPA1612 (just because i had the impression of slightly better sound , compared to NE5532 or NJM4580 );
this is the ES9038 test board (from Ali..):

i removed the PIC12F629 , to control I2C lines with my F411 cpu.
It matches with my measurements : DAC artifacts at -130dB level are covered with dither at about -120dB , if signal level is more than -30dBFS .Quantizer improvement via additional dither. This 'scrambles' any artifacts the quantizer may add. These artifacts are very low indeed (somewhere below 130dB) but experience shows that perceived sound is better when the artifacts are not related to the sound signal being processed. Adding dither causes the human hearing process to 'de-correlate' the artifacts from the sound.
so my ES9038q2m is not "bad" or fake, it is just intentionally adding dither noise , probably same as "the new ESS9028 Pro" (in your 6moons link).
+ opamp i put in is OPA1612 (just because i had the impression of slightly better sound , compared to NE5532 or NJM4580 );
this is the ES9038 test board (from Ali..):

i removed the PIC12F629 , to control I2C lines with my F411 cpu.
- Home
- Source & Line
- Digital Source
- Purists Audio Player with ES9038 DAC - plays from SD-card and USB , or SPDIF input