Build thread for Diyinhk ES9018 DAC on Ebay

Status
Not open for further replies.
Figured this out myself, adding the answer here for reference: It turns out that you have to choose the smart wiring as described in https://hifiduino.wordpress.com/2012/11/15/buffalo-iii-smart-stereo-input-configuration/ and also set the register 14 (0x0E) accordingly (to a value greater than 0xF0)...

I therefore cut the traces connecting D2-D5 and soldered some wires to reflect the smart wiring requirements. Registers were set using the integrated i2c interface of the amanero and now I have perfect stereo for both i2s and dsd...

Many thanks to this great community and the huge amount of valuable information available here and in glt's blog!
 
Playing around with Lundhals LL1571 I had laying around,and it plays music,maybee a to little bas but i have eq...
I have a little scraping sound in one channel when silence between songs..
Anyone else got it?
Is there a way to disconnect the soft muting?

IMG_1450_zpsl1mgfcy4.jpg

Since I cannot get read of the crackling sound I wanna try the I2s input,do I have to conncet anything to get the I2s working??
 
Possible Damage?

Hi everyone,

I believe I may have damaged the ES9018S chip on my DIYHK kit. The possible damage occurred when I was installing 4.7kohm pull-up resistors on the I2C SDA and SCL lines where I accidentally connected the I2C pins directly to +3.3V...That kill's people Carl!

Now the question you're probably asking is "Why install the pull-up resistors?", well good question. I was using a TI ISO1540 I2C isolator to separate the DAC and Arduino uC grounds but couldn't get the uC and DAC to communicate when using the isolator chip, while direct connection worked perfectly. After reading the ISO1540 data sheet and trouble shooting I found that the ES9018S probably doesn't have internal pull-up resistors and the DIYHK board also doesn't have pads for installing external pull-up resistors...So I decided to put the pull-up resistors on the DAC side of the isolator board. And as if by magic, the DAC and uC started communicating! We have lift off! But...I did this with some Pomona minigrabbers and 1/4w resistors...Needless to say the connections were a bit haphazards and I managed to bump the mess of wires into bridging the I2C pins directly into the +3.3V power...One of those moments where you triumphantly fix a problem and despite all odds create a new one.

The DAC still appears to work in hardware mode, but will lockup and need reseting when connecting or resetting the microcontroller and will go in and out of lock 3 or 4 times in quick succession when first connecting a signal through I2S, both with and without the microcontroller connected and with or without the isolator. However, when the DAC is reset with the I2S signal already locked it regains lock immediately with out the odd behavior. From what I remember, neither problem existed before I goofed up the I2C pins.

So my questions to the esteemed diyAudio crowd, has anyone experienced locking up of the DAC when the uC is reset? I could swear it never did this before my escapades in attempting to waterboard the DAC with 3.3V strait into the I2C pins... And does anyone else observe multiple lock/unlock/lock cycles when connecting an I2S signal for the first time? Basically the lock oscillation issue is seen when I unplug the USB cable and plug it back in, or power cycle the DAC, regardless of whether the uC is connected or not and if the isolator is used or not.

Also where do I buy an new ES9018S chip? Can I get one from DIYHK, or somewhere else? And how impossible would it be to use some chipquick and a hotair rework to swap it out. I may not have the steadiest hands around, but I don't think it should be all that hard to do.
 
Pics

Here're some pictures of my build for those who are interested.

Picture Gallery

I went with all through hole parts on top and all surface mount parts on the bottom. Which I believe makes the build look nice and clean. There will be no messy circuits under my watch! Well, aside from prototyping and trouble shooting...

Supply filter caps were FP series HF low Z aluminum polymer, which are much better at supply filtering than "audio" capacitors. Ironically these caps are about twice as expensive as the audio grade equivalents, but importantly these are smaller and have better characteristics for the intended application. If I were to build again I would use all NPO surface mount caps for the opamp section as they are equally as good for signal use, cheaper, and they free up room around the now claustrophobic opamps. Supply bypass caps are X7R ceramics. All caps are rated for at least double the expected supply voltage for maximum operating life.

"Important" resistors were KOA Speer or TE Connectivity thin film 1206/0805 RN73/H series with 10ppm TCR, once again cheaper and much better than the weird hireliability/military resistors people seem to like. Resistors with 1210, 1206 or 0805 foot prints will work with the solder pads for the opamps, but the 1210s are a bit wide for the 100ohm/680ohm resistors, they might touch.

LED resistors are 1.3k 0805 thick film, using 270ohm would have been ridiculously bright...Note that this resistor value is application specific, use a 3.3v powersupply hooked up to a pot with the LED in series and dial in your preferred brightness, then measure the pot and buy the closest E-24 value that matches your reading. Remember, fancy (i.e. expensive) resistors for LEDs and pull up resistors are for fancy pants who got holes to burn in their fancy pockets. For everyone else use thick film 1% parts.

Connectors are JST-XH with the tinned pins swapped out with gold ones from my junk box. Should help against oxidation of the interface pins. I quite like these connectors, since I have oodles of cables that use them in my junk

Crystal is a 100MHz Crytek CCHD-950 that is probably overkill for this application, but what's more "HiFi" than over spec'd parts? Ironic right? I say not to use expensive resistors but then buy the most expensive crystal possible. Nothing like the human capacity for justification and ability to coexist with their own idealogical paradoxes.

Ahem...Moving on, the rest pin was fitted with a push button switch from my junk box rather than 2.54mm pins. Somehow it seemed easier to push a button for resetting the DAC than fiddling around with a jumper...

Opamps are the "standard" AD797 as per ESS' data sheet that the DAC board's output was built around. Of course, you could swap them out for more cost effective parts, as these little buggers are not cheap by any stretch of the imagination.

Header pins were standard 2.54mm with gold platting. Two male pins were used to tap 3.3V and GND off of the external crystal supply (to power the TOSLNK connector) and four male pins for the full I2C header as we will need all of them to power the I2C isolator board. Four more male pins on the digital inputs (D7,D8) to accommodate both the TOSLNK connector and a future Blutooth input. I may need to modify this in the future for "smart wiring," but it works at the moment. The I2S input used two 10pin female headers mounted on the SMT side of the board so as to mate with the USB-I2S board with out invoking jumper wire madness.

Power inputs are fed by some small gauge twisted pairs pushed through a common mode ferrite tube for good measure. I'd have used two ferrite, one on each end, but couldn't find any more in my scrap box. Power draw under basic 44kHz PCM via I2S operation with all the jibblets and some headphones hooked up was less than 200mA for all three 3.3V rails combined and less than 100mA for the +-12V rail (I was driving the headphones at 00dB output from the DAC: you wouldn't
t want to put them on your head loud). Opamp idle dissipation is quite high (~60mA => 240mW), but I suppose that's normal?

The output connector uses some thin 75ohm coax to shield the signal and minimize parasitic capacitance of the interconnect to the crossover board.
 
Last edited:
I forgot to mention in the previous post that the enable header, used to turn the external clock on and off, is pointless to install if you use the Crytek CCHD-950 as it doesn't use that feature. If I had read the data sheet pin out for the CCHD-950 before I installed the pin headers, which I didn't do until after, I certainly would have left it off, while pointless it doesn't hurt to have it there.

Also I recommend adding the free DIYINHK Amanero isolator board to your cart when buying the ES9018 DAC. It comes with two PCBs that you need to populate yourself, so you can also isolate the DAC from both the microcontroller and USB grounds, if using a nonisolated USB-I2S board like the Amanero. Remember to install pull up resistors on the DAC side of the I2C bus. You can solder them in at either the isolator or the DAC: 4.7kohm 0.125W to 0.100W leaded resistors should work fine. Pull ups could also be added to the uC side to speed up the signal, but they didn't seem to be needed with my set up.

As for uC code, I've made some minor mods to the hifiduino code that uses the Adafruit_CharacterOLED library to work with New Haven 4X20 OLED displays and removed the the arguably unnecessary "heart beat" blinky thing and start up text, as well as incorporated the code changes "BuffaloDac" made to correct the display flicker introduced via forced refreshing of the screen when no new data needs to be displayed.

I also plan to overhaul the rotary encoder code as it wreaks havoc with my optical encoder and do some assimilation of the menu and real time clock features used in the CE644 code, but these features will have to wait for a while.

Back to the display hardware, I plan to get the "bit-bang" serial operation of the display tested, which promises to free up pins on the uC. Currently the code is set for 4-bit parallel which requires RS, R/W, E, and DB4-7, that adds up to 7 digital pins on the uC. The bit-bang operation uses CS, SD, and SCLK which frees up four pins, but we'll see if it works out.
 
False alarm! It's working again!

Well I've got some good news and some bad news. First the DAC appears to work fine after testing it with a spare microcontroller. No more lock oscillations and locking up of the DAC when the uC is connected or reset. Yay! The bad news is that I did indeed damage the uC and the isolator chip. But, it better a few dollars wasted on a new uC and isolator chip than $100+ on the fixing/replacing the DAC board.

I should point out that since I2C lines are open drains/collectors they can indeed be damaged by DIRECT connection to the high side potential (3.3V or 5V, or whatever be the case) since they will draw enough current to burn themselves out when there is nothing to limit their current draw when turned on. While shorting them to ground is harmless. Sometimes you have to blow things up to learn what not to do.
 
Status
Not open for further replies.