Hackaday Prize Entry: Dr. DAC

The theme of this year’s Hackaday Prize is. ‘build something that matters.’ A noble goal, but there’s also a second prize – the Best Product prize – that is giving $100k to one lucky team who can appeal to people with open jaws and wallets. It’s a fabulous prize that also includes a six month residency at the Hackaday Design Lab, but right now there aren’t many contenders for this part of The Hackaday Prize.

[drewrisinger]’s DrDAC USB Audio DAC is one of those project that’s in the running for the Best Product prize. He’s solving the problem of terrible low-quality built-in soundcards that seem to be everywhere. Yes, it’s a simple idea, but the execution is great.

The electronics for DrDAC are pretty much what you would expect for a DIY audio sound card; A PCM2706 takes USB audio and sends it out over I2S. A PCM1794 converts the I2S to analog audio, and an OPA2836  amplifies it and sends everything out through a 1/8″ jack or a pair of RCA plugs.

[drewrisinger] started DrDAC as a school project, and after receiving the PCBs, he noticed a problem. MultiSim’s footprint for a TQFP-32 package was too small, meaning the IC simply wouldn’t fit on the board. It was too late in the semester to order a new board, meaning some sort of rework needed to happen. [drew] fixed this problem by soldering jumper wires between the pads to the leads of the chip. Yes, it looks crazy, but apparently it works. You can check out a video of that whole process below.


The 2015 Hackaday Prize is sponsored by:

https://www.youtube.com/watch?v=nQStPyqFPLY

46 thoughts on “Hackaday Prize Entry: Dr. DAC

  1. This neet DAC is definitely good for DIY
    but being a product will face to a handful of competitors
    PCM1794 is Ti’s TOP DAC but pair with a out-dated USB to I2S PCM2706
    which does not support async usb audio.
    not to mention the output stage OPA.

    So this product is nor top-end or entry-level.

    Ti recently has release a smartphone high-end DAC platform, which made from PCM5242 plus TPA6120A2
    I think that is much better choice for this product.just need to add a async audio IC.

    if you want to go for entry-level, PCM2706 alone is a good choice, take care of the power and you can have a
    MUCH better audio then many PC/notebook .

  2. > terrible low-quality built-in soundcards that seem to be everywhere

    He seems to be 10 years late. Nowadays buildin cards are absolutely FINE. incidentally PCM2706 is what we used >10 years ago.
    Not to mention people that care plug hdmi cables directly into their audio system, no more analog rubbish on the way.

    Good product if you have a time machine, or a fetish for outdated computers.

      1. Even if you go for (serious) headphones digital amps are the way to go. Or are you going to use your high end headphones on a crappy power supply with lots of interfering signals from you computer?
        I am not proclaiming esoteric use of cables or caps or whatsoever. But a good amp with a beefy (non switching) power supply will definitely produce better sound than a laptop or desktop.

      2. Digital amplifiers? So your one becomes a ONE and your zero a ZERO – amplification and transducers are analogue and at some point there is a DAC in the chain, where in the chain does mater, as well as the quality of the DAC – but there is no digital amplifier folks.

        1. I use those 3-6 Gbps “eye opener” to improve eye diagram for high speed SERDES signals due to high frequency losses for long tracks on PCB. Essentially they are high gain high slew rates (repeater) amplifiers that clips the signals to make the edges really fast/clean. That’s as close to a digital amplifier as the way you are talking about.

          I don’t think it is anything but a marketing term for audio.

          1. In theory you could run a 24 bit 48k bitstream into a high speed amplifier swinging 30 volt rails and hook it up to a super tweeter but you wouldn’t be able to hear it so what’s the point, piss off alot of dogs though! To hear digital audio you have to go through a DAC and then amplify the DAC output, the digital signal is not audio, just a series of 1’s and 0’s that represent a snapshot of the amplitude at the sample point of the analogue waveform.

          2. Miles, you know what a Class D amp is, right? The “DAC” in that, if anything, is basically a capacitor. Or looking at it another way, the mass of the speaker cone. It’s basically just high-power PWM, and is really power efficient, lots of portable audio these days uses it. In a related way, CD players have been using “1-bit” DACs for decades.

        2. Digital amplifiers work by converting PCM to PWM/PDM and then low pass filtering. For that reason, they’re sometimes called “power DACs”. They don’t use DACs in the traditional sense, but it can be helpful to think of the Delta Sigma modulator as one half and the output filter the other half.

          1. Class D amps have an analogue input, there is no math to convert a digital audio signal into something recognizable as sound, we are at apples and oranges here. There is some overlap in the terms for digital audio signals and what is going on with a Class D amp but a digital audio signal needs to be decoded before it can be amplified as audio, that is what a DAC does.

    1. I would have thought so too. I had quite a few laptops and desktops that I used over the years and audio was fine. But now, my new work computer(some fancy and expensive ultrabook) has so much white noise hiss from the sound card that even at medium levels i can clearly hear it over the music. The 3 EUR usb sound card that I plugged in is so much better.

    2. DAC’s on modern PCs aren’t that great. I’m no audiophile, but I can tell the difference between the audio output from the headphone jack on my PC and the audio out from the USB soundcard I plug into it; it’s not an old PC either, nor an expensive DAC.
      Also, I’ve never come across people plugging HDMI outputs direct into their hi-fi, and a lot of people still use older hifi kit; it’s cheaper than buying new, and often still has a good quality output. I use an old armstrong amp from 1970, and it sounds a lot better than anything else I could get for the price.
      And, anyhow; This is Hackaday. Most people on here will have some sort of fetish for outdated computers. It goes with the territory. However, I suspect most would not consider anything that’s got a USB port an outdated machine.

  3. Always check your footprints before ordering a PCB *especially when you didn’t make one. I have see way too many open source ones that are bad.
    – completely wrong pin out – USB connector number was reverse and that’s rev 3 f library! Datasheet was available.
    – wrong holes locations or pads location – the person can’t bother to use correct units to make footprint – just fudge numbers, make bigger holes for the mechanical alignment pins for a connector. Well those pins are also for mechanical support and you would want them to be exact so that stress not on solder connection. Datasheet was available.
    – wrong component size for the right part – too large. Ironically it was also TQFP-32 for a TI part.
    – silk screen on SMT pads. That’s not good for manufacturing.

    and then there are ones that have insufficient/incorrect info on mechanical drawing from vendors… Be sure to compare 3D models/measure actual part first before ordering PCB. I have a good reason for making this list for the readers. I now do 3D modeling for Eagle CAD whenever possible. Have independent source to check footprint and verify fit from 3D is worth the trouble.

    1. I usually print my pcb on paper as a final step, placing the actual chips on them if I have them. Otherwise manually measuring and comparing to the datasheet for a fresh eyes check. In a situation like this, I would not have attempted to correct it with the blue wires, I’d just order another PCB.

      1. Those are definitely great recommendations for PCB designs in general. This was for a PCB class, and was my first board design ever. I learned a lot doing this that will carry over to future projects (and redesigns of this same board).
        Unfortunately, it was a difference of 7mm chip vs 9mm chip, which even if you print it off is hard to catch. Especially because the way the class was structured we didn’t receive the parts until after we ordered the board. Our professor also just didn’t mention to us the possibility of printing a board out at 100%, so I’d never heard of the idea. I’ve since started doing that for all my layouts, definitely saves a lot of time and hassle.

        Also, I just simply didn’t have the lead time to order a new board. I had a week from the time that I started soldering the board till it was due, and I also had a full course schedule and end-of-semester projects, so there was simply no time to redesign and reorder.

    2. Most of the stuff I am working on now is outside what I can do at home – I work on dense layouts, I need finer tracks/separations, vias, soldermask. They are mostly 0402 or smaller parts, QFN, DFN. I could do 10/10 or even 7/7 toner transfer on a good day, but not on a large area or reproducible. PCB lead time is 2+ weeks from China. So a few extra days is worth the effort. I try very hard to get most thing right on my first rev proto. The last thing I want to to fight a bad footprint instead of working on more difficult/interesting issues.

      Like I said, I came across mechanical drawing with critical missing or incorrect dimensions which are insufficient to make correct footprints. They do however have 3D models as that’s what they are designing with. It is like the 2D CAD drawings are just there to get you off their back.

  4. If you are making “top quality” digital audio product, watch out for good signal integrity in your layout. Any signal reflections, undershoot/overshoot would cause jitters/noise in your audio
    – Impedance mismatch on digital tracks (hard to achieve 50 ohms for double side PCB), could be sort of compensated with series terminations.
    – Watch when you route. For a double side board, essentially you really only have a single side for routing. When you run a track on the ground plane side, you are splitting it. It you also have digital signals running across the gap without stitching it, you now have a discontinuity.
    – stubs cause reflection. test points are good idea, but not if they add stubs…
    – your oscillator should have series termination and no stubs. reflections causes jitters

    Schematic drawing – this is general comment for your benefit. When drawing them and releasing to public, make sure that they are readable and follow conventions. It tells me whether or not you pay attention to what you do. When you don’t bother, then I won’t bother with your design.

    A certain person who has an interview here has really unreadable schematic – oh the irony for interviewing/front page of a certain book that have an appendix for how to draw schematic correctly.

    – e.g. component values or net names etc do not overlap on tracks/symbols
    – no 4 way connections, use T junction

        1. So you mean that an overshoot of the digital signal would increase the noise in the analog section in any significant way? The digital noise coupling can’t be that much worse if the digital signal swings -0.5 .. 5.5 volts instead of 0..5volts. The input protection diodes in anything that is both digital and analog should be connected only to d-vss and dvdd and hopefully the pcb designer have layouted the board with separate grounds and power, anything else if just to ask for shitty performance.

          If this is not the case then please elaborate….

        2. To put it mildly, let’s say the layout is far from the separate digital vs analog ground that you described. Or I won’t be picking on it in the first place.

          If you don’t pay attention to easily *preventable* noise/layout issues, you really aren’t making “top” quality audio.

  5. The bad audio I have run into has been with the line in, not the line-headphone out. Whining bleeding digital.
    I have had no problems with the venerable Soundblaster Live cards on XP32.

    1. Ah…. the Soundblaster Live! The pinnacle of audio and a card that appeared in every desktop I built after its introduction until I was forced to go the dreaded laptop way…

      In all the years I used Soundblasters, I never had the audio problems I run into now sans SBL. Skipping audio. Feedback loops. Bad audio curve. It’s like we’ve been knocked back twenty years with crappy audio and black Voodoo “audiophile” crap muddying the waters even further doesn’t help.

  6. You need really good ears to hear the difference between even a low end embedded sound card, and a high end sound card, that, and really good headphones.

    Now for audio in, that is an entirely different animal. Poor sampling rates, unbalanced audio, poor filtering, noise, poor amplification, you name it.

  7. Cut the guy some slack… he’s got to start somewhere. This was that somewhere.

    That said, I’m hopeful that V.2 will be significantly improved, based on the useful feedback scattered throughout the comment section.

    1. Good point. On a bad day (boss yelling, kids screaming) I’ve been known to make a rookie mistake. And this guy IS a rookie. Everything he does is a “valuable learning experience”. Otherwise it would be straight from the womb to the workforce.

  8. There are dozens of topics about the PCM2707 in the diyaudio foruns, from layouts, to tweaks to discussing what might be audiophoolerie, to the discover of burning the chip when externally powered, it needs a pull-up in the USB data line(i think its the DP one).

    I always research a bit when using an old chip to search for gotchas..

  9. I needed one of these for my project and ordered this from ebay for $14:
    http://www.ebay.com/itm/PCM2704-USB-to-S-PDIF-USB-Sound-Card-analog-output-digital-SPDIF-output-/110931383424?pt=LH_DefaultDomain_0&hash=item19d4069480
    For this project:
    https://hackaday.io/project/4927-hydra-multi-os-gaming-console-controller

    The Nvidia Quadro FX3800 has no built in sound card like is commonly found on AMD video cards. It does have a S/PDIF in. So I used this DACs S/PDIF out to connect to the FX-3800 video card. I am getting digital audio out from the monitor over HDMI in Win7 and SteamOS. I am not getting digital audio with this thing in Android x86 KitKat. I am getting the analog though….

    During my research I looked at the TI datasheet, and the 2706 & 2704 seem to both do digital. Why isn’t it on this board? I would suggest to add it. Google seems to take me to Car Audio forums where they are using these PCM2704 boards connected to USB OTG on an Android tablet, just to deliver better audio than from the jack. So I would also (selfishly) suggest making sure this works on Android, it seems to be a very popular use for these USB DACs.

    Still researching, I think I need more than the rudimentary driver to output digital in Android.

  10. I’m honored to make the front page of Hackaday. Thank you all for your input. I appreciate it, and will take it into consideration for future revisions.
    I’d like to take to thank my professors, lab techs, and friends who put time into this and helped me make it into a better project than it had any right to be.
    I would also like to thank cobaltmute & Tomb of DIYForums.org for their reference schematic and design work. I essentially reused and revised their work in designing this board.
    Since this was my first board layout, there is obviously a lot of room for improvement. Please keep in mind that this was a project for a college class, and there are bound to be many mistakes and opening for revisions. My hope was that some people could at least learn from my mistakes, and I appreciate the chance to learn from all of your expertise in some of these matters. That said, I look forward to fixing as many of these mistakes in the future, and continuing to improve the design.

Leave a Reply to 黃偉峻Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.