• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Recomendations for sub $1000 8 channel DAC: Motu, DIYinHK or other options

jtatknox

Member
Joined
Sep 7, 2021
Messages
70
Likes
56
There's a fraction more about it in the other multichannel dac thread and the follow up post - you need something like a USB to 4 x spdif output so that the spdif clock rates will be the same. The nanoDIGI 2x8 would have been ideal for DSP, but is no longer in production. The U-DIO8 could do it, but is rather expensive, as is the RME digiface USB which would also need toslink to coax adapters.

The photo seems pretty self explanatory - a pair of barrel sockets take 12V power and 12V trigger, leading to a relay switched by the 12V trigger. The relay switches the power to the 4 12V to 5V DC-DC converters which in turn power the Tone Boards.
This is correct. The SPDIF signals MUST come from a clock synced source, whatever that may be (in my case miniDSP DDRC-88D). This is not a design suitable for USB input.

BOM:

4x KTB – $
Middle Atlantic CH1 1 SPACE 1 3/4in CHASSIS – $119
standoffs - https://www.amazon.com/gp/product/B00R4ZT1FY/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
board - https://www.amazon.com/gp/product/B082KY5Y5Z/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
3.5 mm jack - https://www.amazon.com/gp/product/B07JNR4PXN/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1
barrel jack - https://www.amazon.com/gp/product/B07XCNSM81/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1
relay - https://www.amazon.com/gp/product/B00LW15D1M/ref=ppx_yo_dt_b_asin_title_o04_s01?ie=UTF8&psc=1
brick - https://www.amazon.com/gp/product/B073WSWT34/ref=ppx_yo_dt_b_asin_title_o04_s01?ie=UTF8&psc=1
power modules - Mean Well SCWN03A-05 – $7 from Jameco

The thing that ultimately made me sad is that I could never figure out a way for the boards to send 12V triggers when SPDIF signal detected. Lots of people tried to help me figure it out, even going as far as microcontroller, but so far I can't find anyone who had a solution that would work. Seems simple but turns out to be pretty tough.
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,762
Likes
3,070
The thing that ultimately made me sad is that I could never figure out a way for the boards to send 12V triggers when SPDIF signal detected. Lots of people tried to help me figure it out, even going as far as microcontroller, but so far I can't find anyone who had a solution that would work. Seems simple but turns out to be pretty tough.
What were they doing? Using the I2C to read ESS register 96 spdif_valid and set the trigger accordingly? I've only got the datasheet to go on, and I gather it isn't necessarily reliable with ESS...
 

jtatknox

Member
Joined
Sep 7, 2021
Messages
70
Likes
56
What were they doing? Using the I2C to read ESS register 96 spdif_valid and set the trigger accordingly? I've only got the datasheet to go on, and I gather it isn't necessarily reliable with ESS...
To summarize:

1) some folks suggested trying to either read the data stream from SPDIF to look for lots of 0's (silence) or to use a some kind of circuit filter to trigger for lots of 0s (high pass filter?). Using an arduino I could measure pulse frequency and width, but it did not change when music was playing or not, maybe because there are clocks on a single line with SPDIF.

2) some folks suggested reading I2S directly using an arduino. Unfortunately, that's not possible because from what I can tell the I2S output only works when the source is USB audio. I could read the I2S clocks, but not the actual data streams.

Your idea if tapping right off the ESS DAC would be great, I just don't know if there is a solder pad I could access and I'm not that good at bit banging.
 
Last edited:

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,762
Likes
3,070
According to the schematic the I2C bus is also on the '8 channels ext' connector, going to both the XMOS and the ESS. I think that's what people have used when connecting the Ian Canada display to the TB - as I understand it that also reads the ESS status registers too, so I guess the code on the XMOS is multi-master capable. Check the arduino docs for multimaster - IIRC it used to work for most of them, but not the 32bit models or something.
 

jtatknox

Member
Joined
Sep 7, 2021
Messages
70
Likes
56
I have accessed that connector and it actually only has 6 channels on top of the 2 channels that go to the stereo DAC chip (8 total) that only go active when USB is connected. From what I can tell, there is no data coming from the I2S but I am super interested in whether I can talk to the DAC through this connector. I know that the Ian Canada DAC controller connects as follows:

KTB1 8ch ext. pin 1,2,3 +5v -> ESS controller board +5v
KTB1 8ch ext. pin 4,5,6 GND -> ESS controller board GND
KTB1 8ch ext. pin 21 LRCK -> ESS controller board LRCK input
KTB1 8ch ext. pin 23 BCLK -> ESS controller board SCK input

But it seems like that would not give access to the ESS DAC directly. However, Khadas did update their XMOS firmware recently to allow volume up/down and mute function through this same connector.

I am probably understanding this wrong because the documentation is a zoo and I am not the sharpest.
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,762
Likes
3,070
Rechecking the schematic I see I misremembered the I2S connection - I thought the '8 channel ext' only went to the XMOS, but LRCK, BCLK and SIN0 do also go to the ESS so see data when the USB is active. You've missed the ESS controller board's I2C DA and I2C CL connections - I assume they're not mentioned in the khadas forum thread because the meaning was obvious while the difference in I2S terminology was more confusing. I'm fairly sure the I2C is needed for the register setting and reading status that it can't pull from the I2S data, but I'm just working from the docs.
 
Top Bottom