ES9038 controller ...

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I'm sorry, but I do not offer such services for money. If I had time to spare I would do it for free, but I'm afraid that I just can't right now.

Hi Dimitris!

I have a dual mono es-9038 arrangement with 2 acko boards and I do struggle to find a proper controller with remote and display.
My boards have the gain calibration resistor and I will happily be your hands in testing the code.
If you are OK with the proposal I can start assembling the controller waiting for you to have some spare time to do the code.

Thanks!
Daniil
 
Member
Joined 2007
Paid Member
I just came across this thread...

I have for years used a 6-channel system of 3 stereo DACs fed by a typical Twisted Pear setup with a Beaglebone Black. All of the equipment is in cabinets - not meant to display information or be accessed by touch for control. My early efforts in DAC control focused on combining crossover filtering by the BBB with optimal DAC parameters for each channel. First using ES9018s and now using ES9028s, I control most parameters via wifi through to I2C. The Beaglebone runs python code to interface with my iOS devices (iPhone, iPad) which control the system via TCP text signals. While the ES9018 performed beautifully under I2C control, I'm finding that the 9028s, with their many additional configuration options, can change their output based on very minor disturbances to the system - usually noise/spikes in the mains AC. So my Python code for I2C control of the 9028 has morphed somewhat to be more conservative and I would say that I have never considered it 'really done'. In the beginning of that project I kept a thread here on DIYaudio to share successes, failures, and developments: Control of BBB-based audio appliances

The wifi TCP controller system for iOS (and Android) is old now will soon loose support by its originator (NetIO) so I am now working on a new control interface plus a new design for an audio player incorporating an XMOS USB interface to both older 9018 and ESS-Pro DACs. The new software interface will be a bootstrap-type HTML web page served by Apache on the player computer. The new players I am building (for myself and family) use an RPi, which is enough similar to the BBB that it makes sense to re-use much of the old Python code from the BBB. The first objective will be to accommodate the registers for ES9018s. When that's done I will use the basic structure to run 9028s and 9038s. Of course the code will be on GitHub when it seems ready. However, I am only a hobby programmer and the code will only be safe to use within a well-secured network environment. One feature that I will be very interested in exploring is the 2nd and 3rd-order harmonic control - something that to my knowledge has not been used by DIYers.

I am happy to participate in this discussion, though my own design priorities may not be widely shared. I made an isolated RPi interface simply for control purposes, and it is proving to be quite reliable and easy to work with (photo). It does not touch any music signal, it is strictly for control. But at the moment I'm fighting with Javascript, Ajax, and HTML to move my project along. Thus, I have not a lot of time to help others until some basic network functions are working well in the control system...

Cheers,

Frank
 

Attachments

  • RPi_isolator.jpg
    RPi_isolator.jpg
    628.2 KB · Views: 204
Member
Joined 2007
Paid Member
Did you notice a difference between using the BBB and the RPi?

I was always interested if Twisted Pair's decision to go down the BBB route made a noticeable difference.

Greetings Greg,

I believe that a major difference between RPi and BBB back when the latter was adopted for a custom kernel was the number of multi-channel audio serial ports, which made the BBB capable of 8 PCM output channels. In my current project, the RPi doesn't render I2S. Any music it plays is exported asynchronously via USB to a I2SoverUSB board (JLSounds) that isolates and reclocks the I2S/DSD stream. Because half of the I2S renderer and DAC are best isolated from the RPi, the control interface board also has 'clean' and 'dirty' power supplies - the 'clean' side includes I2C out to the DAC.

In terms of the control code, it can be a challenge to make it execute some system commands - on either platform. With the RPi I'm finding it easiest to start and stop various ALSA sources using systemd by defining them as services. On the BBB you could more easily emulate command-line input. ALSA management itself (asound.conf) is way easier when the output is only 2 channel (and asynch).

Best,

Frank
 
Last edited:
Frank,
A few people around the forum have used the harmonic compensation registers before. John Westlake, a designer of a number of commercial dacs and a forum member, opined that the compensation registers seemed to hurt the sound somewhat. He preferred not to use them. What they are supposed to be for is to help compensate for output stage nonlinearity due to layout and or component mismatch/selection issues.
 
Member
Joined 2007
Paid Member
Frank,
A few people around the forum have used the harmonic compensation registers before..

Thanks for the lead, @Markw4. Russ White obliquely said the same.

When I get my RPi-USB-DAC hardware project done I will turn my attention to a new distortion analyzer that is waiting to be fired up. I think it only goes down to about -95 dB, but that should be enough sensitivity so I can knowledgeably correlate what I hear to a visible distortion profile.

...got my controller web page data refresh function working last night... Every little step... ;)

Frank
 
Member
Joined 2002
Paid Member
Greetings Greg,

I believe that a major difference between RPi and BBB back when the latter was adopted for a custom kernel was the number of multi-channel audio serial ports, which made the BBB capable of 8 PCM output channels. In my current project, the RPi doesn't render I2S. Any music it plays is exported asynchronously via USB to a I2SoverUSB board (JLSounds) that isolates and reclocks the I2S/DSD stream. Because half of the I2S renderer and DAC are best isolated from the RPi, the control interface board also has 'clean' and 'dirty' power supplies - the 'clean' side includes I2C out to the DAC.

In terms of the control code, it can be a challenge to make it execute some system commands - on either platform. With the RPi I'm finding it easiest to start and stop various ALSA sources using systemd by defining them as services. On the BBB you could more easily emulate command-line input. ALSA management itself (asound.conf) is way easier when the output is only 2 channel (and asynch).

Best,

Frank

Thanks Frank.

Sounds like it is more a differences in the OS rather than hardware.

regards
 
Member
Joined 2007
Paid Member
Thanks Frank.

Sounds like it is more a differences in the OS rather than hardware.

regards

Correct. Going forward I will adapt the BBB code to use a web control source, which will mostly affect how DAC register states are reported.

Big picture re: my efforts...

a) Python is fairly readable and therefore accessible for non-programmers to modify.
b) Any Debian-based OS on most of the SBCs should work with my code.
c) Galvanic isolation of GPIO controls is not required, though optimal.
d) My general-purpose GPIO isolator board will power any SBC with RPi pin definitions.
e) I’m happy to make the unpopulated isolator boards available to DIYers - all ICs and passives are surface mount.
f) As my hardware project winds down I’ll start a new blog-style thread on browser-based DAC controls for sharing and idea interchange.

Cheers,

Frank
 
Last edited:
Back to topic, do you guys know that our Tweak9038 Android app($9.99, THD compensation for 3 volume zones, selectable MCLK and interpolation filters for each audio format, presets, actually we can add more registers control but many of them may simply off the sound and a normal user can be frustrated) will work with any CT7601+ES9038Q2M system? My FW for CT7601 is available on my website. I don't let to use this commercially but DIY no problem, and super easy(FW flashing and app control via USB).
Tweak9038 - Apps on Google Play
E1DA TWEAK App THD Demo - YouTube
 
Member
Joined 2007
Paid Member
will work with any CT7601+ES9038Q2M system? My FW for CT7601 is available on my website. I don't let to use this commercially but DIY no problem

I enjoyed both reading the Audio Science Review of the E1DA and your linked YouTube with live harmonics measurements. My questions are: 1) what range of values in those registers produced the harmonics displayed in the analyzer? [Or in other words, what do you suggest as a starting range to replicate the controls you showed?] and 2) you reference your website... URL?

Best,

Frank
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.