ES9038 controller ...

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Member
Joined 2007
Paid Member
Hi all :wave2:

I have decided to build a DAC based on the ES9038 and to this end would like a very simple controller to set the DAC's various options.

Dimdim's software & overall solution appears to be quite attractive:

Universal Signal Isolator shield for the Arduino DUE | Dimdim's Blog

... however, since I probably will be using a remote control for the PC's audio software anyway it would make things a bit simpler if the ES9038 could be set via something like what TPA has done with their new Buffalo, i.e. using switches:

The Buffalo-IIIse Pro (Stereo Edition) 2-Channel DAC

Also, it might (just might) be relevant for me to be able to run the ES9038 as a dual mono and to my knowledge Dimdim's software cannot set this option ... But this is optional.

Anyway, I have been searching for a simple controller for the ES9038 yet have not found any ... Might one of you know of one that is also not that expensive?

Cheers & thanks for any help here ;)

Jesper
 
Hi there Jesper!

Dual mono support is not difficult to implement in my code, it's just that I have no way of testing it since I only have a single 9028-based dac.

I could take a crack at it if someone possessing the necessary hardware were to volunteer as an alpha & beta tester.

If you were to go the "maximally minimal" way, it's possible that my code could be adapted / cut-down to fit in a Nano (assuming there is no need for an IR remote, display, etc.). But that is a bit of work, including some hw design to support the dip switches.

AFAIK there exist just two open source 9028/9038 controllers out there: the one I've put out and TPA's code.
 
Member
Joined 2007
Paid Member
Γεια σας Dimdim ... and many thanks for your reply ;-)

AFAIK there exist just two open source 9028/9038 controllers out there: the one I've put out and TPA's code.

As it is that is also in agreement with what I've found out myself searching the internet. So, seldomly, it also means that there are only a few options to evaluate ... ;-) I'll just think about what would be a feasible way to progress ...

Dual mono support is not difficult to implement in my code, it's just that I have no way of testing it since I only have a single 9028-based dac.

I could take a crack at it if someone possessing the necessary hardware were to volunteer as an alpha & beta tester.

That sounds very interesting indeed - & thanks for being open to this possibility ... In order to learn about the ES9038 I will start out with a normal stereo version, however, if the possibility of having a dual mono setting available is there I will seriously consider it. And be very pleased to be able to test your code.

... BTW - entirely off topic - I happened to see a TV programme (Rick Stein's long weekends) yesterday, and in this episode he visited Thessaloniki. Not knowing anything about this city it was inspiring to learn a bit about Thessaloniki and not least get a glimpse of the varied cuisine that is available here ... Inspiration for yesterday evening's dinner :p

Cheers,

Jesper
 
Καλημέρα Jesper!

A "proper" dual-mono supporting 9028/9038 board will include a precision resistor, used by the 9028/9038 to determine its analog output level and subsequently use that reading to match the level of the other channel / board. IIRC it's relatively simple to enable that functionality in the controller's code.

Re. your comment about Thessaloniki, the "natives" of that region of Greece are well known for boasting about their (allegedly) "world-class beaches, definitely the best beaches Greece has to offer". It's a humbling moment for the rest of us when we realize that they're in fact right.
 
Member
Joined 2007
Paid Member
Καλημέρα to you as well Dimdim!

A "proper" dual-mono supporting 9028/9038 board will include a precision resistor, used by the 9028/9038 to determine its analog output level and subsequently use that reading to match the level of the other channel / board. IIRC it's relatively simple to enable that functionality in the controller's code.

I've read a bit into the controller setup for this (not being a programmer, though, as I think I have mentioned before ... ?) and there's an auto-calibration feature for a dual mono setup (begins on p.10 of the datasheet). It requires a precision resistor of a known value and then an output from the DAC is sampled by an internal ADC to set the required calibration value.

I cannot see, however, which value the resistor should be nor the precise sequence of this auto-calibration process .. (?) But maybe this has to do with my not having a "programmer's eye" to look at this ... Might you see how it is done in practice?

Re. your comment about Thessaloniki, the "natives" of that region of Greece are well known for boasting about their (allegedly) "world-class beaches, definitely the best beaches Greece has to offer". It's a humbling moment for the rest of us when we realize that they're in fact right.

Hmm ... :) As it is I have never been to Greece so I have not had the opportunity to get an impression of your beaches ... But looking at your coast lines I reckon there would be MANY beaches, and so, if Thessaloniki is considered to have the best of these beaches that may be no small feat ...

Anyway, right now just thinking about a (reasonably) warm beach is an attractive thought ... Denmark is quite cold at the moment and when adding humidity and wind - I live by the western shores - I think it gets really cold.

BTW one of the other DIYA members made me aware of another available controller for the ES9038:

Control Remote Es9038pro

So now three controllers available (although I think this one is not open source as such). Yet, if possible, I would prefer yours due to the "display aesthetics" ...

Cheers,

Jesper
 
Hi gentlevoice,

I'll be watching your project with interest, I've been chewing this 'control' idea since I pressed the button to purchase one of those ready assembled (I'm lazy) Chinese ES9038pro DAC's with multiple inputs.

The display is a 'old hat' in this day and age of TFT displays, thought about a colour upgrade, did a little research, good - there are projects, then a thought struck me, yes I can select all the options via the remote control from my listening position, but I'd need opera glasses to see the display :(

The long and short of it is, the direction I've decided to 'try' and go in is a simple old school button/led front panel (tastefully done) for the main functions, add the Raspberry Pi 'server' to control all the DAC functions (including everything else - music server, internet etc) and the Pi controlled from a small tablet via wifi... I wonder if app's are easy to write

If someone wants to beat me to it and do the work... err have the fun, I'm happy to beta test it :D
 
May I ask if you know how ESSTech feels about that? A lot of register and other info is now exposed publicly, although the data sheet remains under NDA. You just do it and wait to see if they lower the boom, or is it done with permission?

I have no feedback from ESS regarding this matter.

All the info I've used to write my code I have found on the web, I have not signed any NDAs.

I'm not really worried, since source code to control the ESS chips has been public on the web almost forever, since HiFiDuino published his work about 4 years back. And TPA has also open sourced their code, and I assume that if they have done so, it's OK to do so (they definitely have a close working relationship with ESS).

I wouldn't be surprised if ESS -unofficially- even encouraged such projects.
 
Hello, maybe someone can help me to made a software control for es9038 diyinhk board?
I need filters control with indication and switch bitween spdif and i2s inputs.

I am find dimdim project - its wonderfull but it is only for Universal Signal Isolator shield.

It can be simple arduino one project with encoder and little oled i2c display.

758387c418f2.jpg
 
Last edited:
svadim79,

Do you have a datasheet for the part? Do you know how to do programming? Do you have a scope? In other words, what point are you starting from? What do you know how to do, and what do you think you might need to learn and or to acquire?

Also, I am very sorry to advise you that IMHO the board you have there is not all that well designed. Its a two layer board, for one thing. It might be good for learning and experimenting, but it will probably not achieve the best audible nor measured performance.
 
Last edited:
Thanks for the link. Looks like they have a newer version board than the one I saw close up.

I am not aware of any Arduino file with a complete user interface and also with unobscured direct access to the dac registers for the dac chip you are using. That being the case, you might want to start with Dimdim's code that includes a user interface and use your own low level I2C library calls to implement register programming. If you don't know how to use Arduino I2C library calls to talk to any I2C device then maybe of interest: There is some general level discussion about using Arduino for dac (and other I2C device) programming in another thread: ES9038Q2M Board ...some posts around (a little before and after) #5981 might help in an introductory way. There is a bit more in some later posts too.
 
Καλημέρα Jesper!
Re. your comment about Thessaloniki, the "natives" of that region of Greece are well known for boasting about their (allegedly) "world-class beaches, definitely the best beaches Greece has to offer". It's a humbling moment for the rest of us when we realize that they're in fact right.
 

Attachments

  • IMG_0149.JPG
    IMG_0149.JPG
    36.9 KB · Views: 176
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.