USB Headphone Amplifier for the ObjectiveDAC


The Objective O2 amplifier and Objective DAC have generated a lot of interest recently, due to their excellent objective performance, and low cost. I built up a combined ODAC/O2, and was very happy with it. Unfortunately, the O2 requires an AC power supply at all time and bringing laptop, laptop power adaptor, the O2/ODAC, and it’s adapter leads to not a lot of space for anything else.

One of the main draws of the ODAC is its native 24-bit interface, which means that digital volume control doesn’t lead to reduced audio performance, as is the case with 16-bit audio. With this in mind, it should be possible to design a small board that is powered by USB without any need for a volume control onboard. Audio potentiometers are often quite large, expensive, and their tracking between channels isn’t particularly good. Also, the DAC used on the ODAC doesn’t have the output current capacity or voltage swing to drive headphones, and so a buffer (or buffer with gain) is required afterwards. I happened to have some of the excellent EL2002 buffers (sadly now no longer made) left over, although I will release a second board based on the O2’s driver chip, the NJM4556A. Continue reading


A relay attenuator preamplifier – bare bones

I recently acquired a second-hand Quad 306 power amplifier, which has notoriously high input sensitivity even after a couple of resistor changes to improve this (more on this another time). Having to keep the volume on the PC to about the 5th lowest increment did not leave a lot of room for volume alteration and kills the dynamic range achievable from the system. I had made up some boards a couple of years ago based on an excellent design by Jos van Eijnhoven, but had never got round to finishing either the boards themselves or the software for the control chip. Here, I would like to detail some of the features of this project.

Control board

All control of the inputs and attenuator (described below) are controlled by a PIC16F818 microcontroller, running at 4 MHz from the internal oscillator. The software is simple and loops through repeatedly to control the input selector and the attenuator. The code was written in Hi-Tech PICC 9.80, and it can be downloaded here. The only real point of interest is the code for the button to cycle through the inputs, which goes dead until it’s been sensed to be have been released. The value read from the ADC is shifted into the PORTB register directly. Also on board is a simple headphone amplifier based around TI’s TPA6120 chip. No input buffer is required for this as it will always be driven from a low-impedance source. This section will initially be left unpopulated as there’s a good chance I’ll put a better headphone amp in there at some point.


Although the majority of my listening is done through the PC these days, the flexibility to have another source or two connected was important. Thus, the design has inputs for 3 sources, with their respective grounds isolated. While this doubles the number of relays on board, it avoids any potential ground loop issues. The relays are driven by a ULN2003 transistor chip, in turn connected to and powered by the control board.

Inputs front

Relay attenuator board

Attenuation is provided using the design and values linked above, although on my own PCB. 6 relays (=6 bits) gives up to -64dB reduction across the range. The relays used are Omron G6K-2Ps, which are rather expensive but can often be found cheaply on eBay etc. Resistors are good quality Welwyn RC55s, available in all required values from Farnell. Again, the relays are driven by a ULN2003, all powered from the control board.


The buffer is there to change to the high impedance output from the attenuator board in to a low impedance output for use with a power amp, headphone amp etc. The design borrows heavily from the JISBOS (JFET input, Bipolar output) developed on Head-Fi, and subsequently maintained by Ti Kan (see refs at the bottom). I originally bought a pair of the boards, but it turns out the 1/8 W through-hole resistors are next to impossible to buy here any more. Additionally, I didn’t want too many holes in the chassis, so opted to design my own board using the original layout as a guide. Resistors are changed to SMD 0805 where appropriate, and the mounting holes are the same as for the attenuator board allowing them to be stacked. The output transistors hang out from the side, allowing them to be heatsunk.

Power supplies

As this is a digitally controlled system, two power supplies are required; one for the analog and one for the digital sections. The analog section is powered at ±13.5 V by a σ22, which while over-rated for this task gives a very clean tracking output. Due to the potentially quite high currents required in the digital section (up to 8 relays on at one time), a linear regulator to take the analog +13.5 V to +5 V was not ideal due to the heat sinking requirement. The digital section is powered by a very small switching power supply, which gives 2.1 A at 5 V and doesn’t need a transformer or any heat sinking which saves weight, space, and money.

References & Suppliers

I’ll put up a full selection of files after I’ve actually built it all up, but this is just an introduction to the project and I hope it’s useful for your own projects.

Relay attenuator design: Jos van Eijnhoven
σ22 power supply and maintainer of the JISBOS buffer project: Ti Kan (amb Labs)
Parts: Farnell, Rapid Electronics, Cricklewood Electronics
Case: AudioKit

The NoNe (Nothing New) DAC

A long time ago, I rather naively bought a Monica DAC from diyParadise. Looking at it now with more experience designing DACs and boards in general, it’s easy to see it’s an awfully badly designed board and the TDA1545 chip used should never be used unbuffered as it is. As the parts are fairly rare and of good reputation, I decided to put together a project that would hopefully take all the good bits of DAC designs available, and combine them into one board. The result is the Nothing New DAC (NoNe DAC). Just to quickly run through the design:

  • Differential S/PDIF input is taken through a transformer, and then buffered using Jocko Homo’s input design
  • S/PDIF decoding chip is a CS8412, with improved PLL filter design (I’m afraid I’ve lost the link)
  • DAC chip is a Philips TDA1545 non-oversampling continuous calibration DAC
  • Active I/V is taken from rbroer’s simple single rail discrete design
  • Output capacitors were (eventually) taken off-board due to the large size of decent polypropylene caps

On board power is first smoothed by a CRC Π-filter, and then split to two separate LM317 linear regulators; one is for the low voltage IC section (10 V), and one is for the higher voltage I/V stage (15 V). Both can easily be bypassed if a decent off-board regulator is used. The IC voltage is then further regulated by 3 separate TL431 shunt regulators, which power the digital and analog sections on the CS8412 and the TDA1545. Each current source delivers 100 mA, which leaves ample headroom for the chips.

Compared to a very old Nokia Phone

Bare NoNe DAC board

A board was ordered from BatchPCB (in 2009!) and you can see it above, with my rather old Nokia there for scale. It looked good, but I ran out of time/motivation to actually build it up. So, this year I’ve finally got round to making it up. It’s a mixture of PTH and SMD, so the build was fairly straight forward, with only a few niggles regarding component placements.

Two big problems, however, were significant. The 74HCU04 used for the input buffer had its inputs on one side wired back to front, which was easily fixed with some jumper wire. There seemed to be a problem with the board manufacture, as it’s not connected to the receiver chip in any way. As the trace responsible is under the chip, this required some more drastic surgery. The other problem was the connection to FSYNC (WS) and SCK (BCK) – they were the wrong way around too.

Given the above problems, the files won’t be uploaded as it’ll take some fairly major changes to fix. The board has been re-done, and I’ll post the results up in the next post with a full write up.