My humble Discrete DAC

Hi,

Sharing my humble "minimalist" DIY R2R DAC. Finally I retired my TDA1541 DAC.
Had been listen to it for the past few months and am happy with it.

R2R-24bit-PCBjpg.jpg




Audiophile Diyer - MY DIY AUDIO PROJECTS
 
  • Like
Reactions: 1 user
hi, do you mean "monotonicity" ?sorry english is not my native language

It basically means, that any input code increment, including LSB increments, produces only increases in the analog output signal level. In other words, no code increment produces an incorrectly decreased analog output signal level. By the way, an D/A converter can have an monotonic output, yet still not be highly linear. However, gross non-linearity can produce non-monotonic behavior.

It's not unusal for audio application D/A units to not be 100% monotonic. This parameter is more critical in industrial control system feedback loops, where any non-monotonic behavior can cause loss of control over the system. Effectively being an unexpected phase reversal in the feedback loop.
 
Last edited:
Op since you’ve already done resistor matching... have you considered the idea of “buffering” shift register outputs? I wrote a summary of the idea in the now closed Soekris thread.

Also, matched resistors if they have bad temp drift coefficient can still have glitches right?... have you considered digital compensation (as numerous people have request of Soekris products, in vain)? It should work out to be about the same as matching before installation but more flexibility in the long run as resistors drift over time.
 
I can only assume you’ve not heard of Soekris Engineering. Maybe read a bit of the dam1021 R2R thread in vendors bazaar forum. There might be lots of good ideas in Soren’s design that you can implement in your next version. It’s all legal.

You know much more about circuit design than I do so I’ll only try to offer high level suggestions. TNT asked about sign-magnitude because it prevents zero-crossing glitches and help maintain good performance at low levels. You’re using 2’s complement which will measure better overall but is probably not best for audio. PCM1704 uses sign-magnitude; more info and explanation in their data sheet. Also, 5R shift Vref impedance is too high... If you use the Infineon MOSFET unit I posted in Soekris thread, you can get maybe 8mR impedance with tracked dual-rail op-amp voltage regulators and enough capacitance. Does this make sense?

Finally, is there a chance that you might consider developing this project as DIY or open-hardware? I think the potential is huge and can benefit many many people. Thank you!

Edit: to get 7mR impedance (and also very low Vref ripple), you’ll need a shunt regulator supply. Try the UltraBiB - it’s probably one of the very best objectively and available as DIY. Maybe you might also want to consider working with Salas, designer of the UltraBiB and chief moderator of diyAudio. UltraBiB is a DIY solution and designed to be a mechanical drop in for the old shunt reg design, which makes it bigger than is absolutely necessary. If Salas agrees to work with you, you might be able to integrate it into your board and achieve a much more compact solution. Just an idea...

Edit2: I didn’t read your blog post carefully enough and overlooked the fact that you already compensated for the shift register impedance by shifting the resistor value accordingly... that might also be a good solution (though it doesn’t get rid of ripple right?) but hard to do in mass production...

Edit3: the shift register impedance problem is a bit more complex than I thought. Is it possible that it doesn’t actually matter for ripple since you can consider the Rds as a part of the statis resistor network? It’s confusing because in Soekris DAC, our measurements of ripple agrees with our simulations assuming that the shift register impedance contributes to ripple...

Edit4: the measurement might be showing power supply impedance from upstream as well so may not be as reliable as I thought. Maybe shift register impedance is equivalent to resistor error?... paralleling shift register might product extra jitter since each unit can vary in propagation delay/rise fall time
 
Last edited:
It basically means, that any input code increment, including LSB increments, produces only increases in the analog output signal level. In other words, no code increment produces an incorrectly decreased analog output signal level. By the way, an D/A converter can have an monotonic output, yet still not be highly linear. However, gross non-linearity can produce non-monotonic behavior.

It's not unusal for audio application D/A units to not be 100% monotonic. This parameter is more critical in industrial control system feedback loops, where any non-monotonic behavior can cause loss of control over the system. Effectively being an unexpected phase reversal in the feedback loop.

Hi, Thank you for your explanation. I'll read more about this, In fact, I'm still learning, I'm a vacuum tube guy for the past 30+years, Thanks!
 
He posted in the image gallery thread that he matched the resistors by hand using 6.5 digit DMM. Maybe that’s <0.01%? So more than 14 bits monotonic is my guess.

Edit: not sure how DMM count their digits but it’s probably way better than 0.01%...

True, thats why I also made some 16 bit and 18 bit version , I know people will ask this questions before this because I saw in previous forums members mentioned about this idea, and most of them give up because of this problem before actually building it. My friends warned me too, before I start building this, said I'm not going to success. Mr. Ale Moglia from Bartola Cartoon page using one, with similar concept, he used muchbetter resistors . I believe the design is from Sonic Illusion page. I give it a try because I want to experiment with this design and learn more about DAC.
Resistor matching actually a big problem for me. I matched with 6.5 digit meter, and then using bridge circuit to rematch the resistors for a few bits at MSB side. I can see slight fluctuation if i close my hand to the resistor caused by temperature, my resistor are 15ppm type. Since the fluctuation of ambient temperature around ladder's resistors are actually the same, 15ppm seems enough for this. In fact, my other version using through hole resistors sounds better. Sure this DAC ain't the best if compare to today's chip set , but I compared to my TDA1541 for months and decide to retired my TDA1541.
In fact, internal resistance of all digital switches are bigger problem I think. among the 8 channel of the 574 IC , they has different internal resistance, and paralleled AC574 are +- 0.5 ohm , its far lower than any others type of 574, HC, VLC, LS, etc are much higher , at around +- 3 ohm.
I built this DAC just to learn more about DAC design .
 
Last edited by a moderator:
I can only assume you’ve not heard of Soekris Engineering. Maybe read a bit of the dam1021 R2R thread in vendors bazaar forum. There might be lots of good ideas in Soren’s design that you can implement in your next version. It’s all legal.

You know much more about circuit design than I do so I’ll only try to offer high level suggestions. TNT asked about sign-magnitude because it prevents zero-crossing glitches and help maintain good performance at low levels. You’re using 2’s complement which will measure better overall but is probably not best for audio. PCM1704 uses sign-magnitude; more info and explanation in their data sheet. Also, 5R shift Vref impedance is too high... If you use the Infineon MOSFET unit I posted in Soekris thread, you can get maybe 8mR impedance with tracked dual-rail op-amp voltage regulators and enough capacitance. Does this make sense?

Finally, is there a chance that you might consider developing this project as DIY or open-hardware? I think the potential is huge and can benefit many many people. Thank you!

Edit: to get 7mR impedance (and also very low Vref ripple), you’ll need a shunt regulator supply. Try the UltraBiB - it’s probably one of the very best objectively and available as DIY. Maybe you might also want to consider working with Salas, designer of the UltraBiB and chief moderator of diyAudio. UltraBiB is a DIY solution and designed to be a mechanical drop in for the old shunt reg design, which makes it bigger than is absolutely necessary. If Salas agrees to work with you, you might be able to integrate it into your board and achieve a much more compact solution. Just an idea...

Edit2: I didn’t read your blog post carefully enough and overlooked the fact that you already compensated for the shift register impedance by shifting the resistor value accordingly... that might also be a good solution (though it doesn’t get rid of ripple right?) but hard to do in mass production...

Edit3: the shift register impedance problem is a bit more complex than I thought. Is it possible that it doesn’t actually matter for ripple since you can consider the Rds as a part of the statis resistor network? It’s confusing because in Soekris DAC, our measurements of ripple agrees with our simulations assuming that the shift register impedance contributes to ripple...

Edit4: the measurement might be showing power supply impedance from upstream as well so may not be as reliable as I thought. Maybe shift register impedance is equivalent to resistor error?... paralleling shift register might product extra jitter since each unit can vary in propagation delay/rise fall time

Hi, Yes I knew Soekris from day one. I also understand signed magnitude are more accurate compare to 2's complement. I do a lot of home work before start building this. Almost all R2R DACs are sign magnitude in the market, I build this is to experiment with it and learn more about basic R2R. I also designed a low noise shunt regulator for this DAC but its not shown in my article. I experiments a bunch of different type of regulators, I stick with a power regulator design which sounds the best for me.
paralleled shift register are indeed will create problems, and guess what, in real world, my paralleled version beats the single shift register version a lot, no matter how hard I try. weird. I saw a Japanese experiments with 4 shift register in paralleled, I contact him and mentioned the problem , he reply my email " please try it first before you give up the idea" . I'm glad I did , but only 2 in paralleled though.
Also , I connect two board together as push pull configuration with balanced output, the two board null out each other's distortion in some degree, sounds even better. I'm in the process of winding a pair of coupling transformer for this .
Feel free to build if you're interested but it will be a real pain to match those resistors, and try to get bigger SMD resistor ( larger than 0805 ) for easier matching and also better performance. My PCB layout are not final , I re-route a new PCB with 2 channel together, and also shunt regulator onboard.
 
Last edited by a moderator:
Member
Joined 2017
Paid Member
Nice job.:) I appreciate your original approach since it's unique.
I want to ask one question. Why do you use discrete R2R instead of monolithic one like TDA1541 ? If you have many troubles in selecting matched resistors, monolithic is a better solution.

I used to use pcm1704 for several years. After being obsolete, I needed to find an alternative chip or system. Discrete one was out of my sight because of difficulty to have well-matched resistors. Industrial DACs can have 16bit monotonicity ,e.g. ltc2642. I designed my R2R DAC with ltc2642. It was pretty good because I used it for two or three years. It sounded a little bit different from pcm1704 though I intended true copy sound of pcm1704. I still don't know the reason why. LTC2642 was brighter than pcm1704. I preferred a soft pcm1704 tone to ltc2642.

Is your decision based on listening(your ears) or measuring data? LTC2642 has better THD performance than pcm1704 but has a slight glitch. But glitch of ltc2642 is probably the lowest(0.5nVS) in audio application R2R DACs. I would say discrete one has a much large value at least 10 times. My hypothesis is that glitch can change sound color like enhancer in a video system. The more glitch, the more vivid. Some like sharp and clear sound while some like soft and warm one. I prefer the latter.