Low power current drive headphone amp design

This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
First of all, happy new year everyone! 🎄🎉

Not too long ago I became interested in current drive amplifiers (I'm not suggesting to discuss pros and cons here!) and also I was looking for a hobby project, so for the sake of curiosity I decided to design a low power current drive headphone amplifier. Normally I don't do electronic design, therefore it took some time to come up with a circuit that satisfies my wishes. It still is a virtual thing and I'd appreciate any feedback from you guys on whether it's a sensible design.

Some goals and restrictions are:
  • the amp should drive my ATH-M50X headphones well (which is easy with their 38 Ω flat impedance characteristic and high efficiency of 99 dB SPL at 1 mW [or sensitivity of about 113 dB at 1 V RMS])
  • THD under 0.01% or -80 dB
  • can use SMT components, but only with pitch of at least 1.27 mm

Please find attached the schematic circuit I came up with, as well as the LTspice project archive.

The two frequency response graphs are for C4 absent and present (input / voltage gain stage bandwidth limiting). Phase near 20 kHz is better without it and its efficiency is doubtful with the gain of 3 or even 1.5 (depending on whether R3A or R3B is used, which are for 1 V RMS sources and 2 V RMS sources correspondingly). I guess, I'll keep a place for it on a PCB (which is not designed yet), but won't put the capacitor initially.

The output impedance graph shows a quite even line at over 145 kΩ over the whole frequency range. I guess, this is very high for an audio amplifier.

THD at full power with 38 Ω load (28 mW) is under 0.02%, which is higher than the goal of 0.01%, but it goes much lower at lower power and there is enough headroom for ATH-M50X (which require only 12.5 mW to reach 110 dB SPL).

A few words about the design.

The input / voltage gain stage is as typical as possible, no comments.

The output stage is the defining part of the amplifier. It consists of two improved Wilson current mirrors (with emitter degeneration resistors) forming a bidirectional current source, which is driven by a class AB bidirectional current sink (with diode biasing) built around U2 and Q1.1–Q2.2. All the transistors are matched pairs of the same type, and U1–U2 can be a single OPA1642 (or with some range checks and adjustments OPA1656 or virtually anything else).

The improved Wilson current mirror has the least distortion of all BJT current mirrors I tried, but the emitter degeneration resistors are still preferred as they lower it even further. The booster after U2 is built in class AB to minimize distortion comparing to a class B booster or a whole op amp powered by the current mirrors.

Are you interested and/or have questions? What do you think about such an amplifier?

2020-01-02 update

Perhaps, it makes sense to clarify the limits of the "low power". The design demonstrates reasonable distortion level (less than 0.05%) at maximum power (remember, it declines with output power / volume) providing up to about 40 mA (with Rref = 100 Ω) into up to about 70 Ω load (lower impedance load will stress the output stage less, so the distortion will be less).


  • Circuit.jpg
    257.6 KB · Views: 322
  • Freq resp (no lim).png
    Freq resp (no lim).png
    437.1 KB · Views: 317
  • Freq resp (lim).png
    Freq resp (lim).png
    437.3 KB · Views: 276
  • Zout.png
    356.4 KB · Views: 279
  • headamp_mirror.zip
    12.3 KB · Views: 23
Last edited:
I'm moving slowly with this project, everything takes weeks. By now I prepared a circuit version and a PCB I'm going to build as a prototype.

I had to correct some mistakes in the circuit published in the first post. In particular, I had to rework the input / voltage gain stage, because my understanding of the line level was incorrect (no voltage gain from the line level is in fact required for this circuit).

The output / transconductance stage has been reworked significantly. The Wilson current mirrors with degeneration are not used anymore, because of poor losses vs. linearity trade-off. Instead, op amp based current mirrors are now used, which allows for current gain with good linearity. That in turn allows to significantly improve the transconductance stage efficiency. The reference current sink (the class AB cascade) has also been reworked.

I'm concerned about the mid- to long-term output DC offset stability. Will test it on the prototype when it's ready. Checked if I can use a DC offset servo here, but the standard circuits ruin the output impedance. Something with a second-order attenuation characteristic might still work.

Attached are some screenshots from LTspice and KiCAD, as well as the LTspice project for those willing to play with the simulation.


  • mirror-op-v0.2.1-ltspice.zip
    16.4 KB · Views: 28
  • mirror-v0.2.1-pcb.jpg
    320.1 KB · Views: 125
  • mirror-v0.2.1-circuit-kicad.png
    154.7 KB · Views: 129
  • mirror-v0.2.1-circuit-ltspice.png
    879 KB · Views: 220
Post 1 seemed unnecessarily complex, with all those current sources. But then Mark Levinson made a lot of money building things too complex.
Great intellectual exercise, but a simpler design would run one op amp into two transistors as current increasers, and be done with it. Or a LM386 or LM1875, which are no-brainers. Although LM1875 has proved by experiment to be unsuitable for point-to-point builds, of which mine motorboated inexorably. If you can do circuit boards without the city environmental department hanging you from a flagpole over the ferric chloride waste, have at it.
Current sources are great for making class A input stages and VAS stages reject power supply ripple, but I find the wire count is a lot lower to build a non-hum power supply with a double pi hum filter followed by a voltage regulator. 1 to 10 ohms between the two filter capacitors after the bridge rectifiers, depending on the load. I use 5 W zeners as regulator for something this low power. that won't get HD below 0.01 % but personally I don't care below .1%. My passionate white whale is hum below 50 mv (on 8 ohms) with all input sources turned off.
Capacitor coupler to the headphone would eliminate all worry about the DC output. With a 38 ohm speaker the value would be low enough polyprophylene could be used instead of electrolytic. Although you could handle Dc nulling of a direct coupled amp with a single op amp like a 5534, such things controlled by pots tend to go haywire after a few years as the pot wipers oxidize and open up.
Last edited:
@indianajo, your reply suggests you are looking at my design as at a classical voltage driven voltage source. It's not. It's a voltage driven current source also known as the current drive. Glance over Current-Drive - The Natural Way of Loudspeaker Operation or search for "current drive" on this forum to get an impression.

DC coupling of the load is required with current drive. Current sources (the mirrors) at the output do drive load, not just bias something.
Well, from someone who 'normally I don't do electronic design' this is pretty sophisticated.

It's not that I have never learned anything about electronics, but I never practiced it, even at an amateur level. Maybe, it's time.

The DC offset *could* be an issue, but you could always use some DC-only feedback from the output.

If you mean a DC offset servo, I tried to model one (as on the picture attached; I understand the op amp in the circuit may not be suited for a DC servo, but I believe for the purpose of a virtual demonstration it's fine). A typical 20 dB/dec slope DC servo kills the output impedance of the amplifier (see another picture), because it introduces a slightest amount of negative voltage feedback, which lowers the output impedance. But I still can try a DC servo with 40 dB/dec or higher attenuation, which might work.

Edit: am I right that this circuit is inverting input-to-output?

No, it actually preserves the phase (see one of the pictures).


  • mirror-op-v0.2.1-dc-servo.png
    963 KB · Views: 102
  • z-out.png
    879.2 KB · Views: 92
  • tran-in-out.jpg
    313.5 KB · Views: 51
Prototyped 🎉

Fast forwarding a few month right till this moment: I've prototyped a single channel of my current drive headphone amplifier.

Surprisingly, the DC offset at the output seems to be very stable. After the initial adjustment to a fraction of a millivolt, it stayed at almost exactly the set level after a few hours of work, so that's a win.

One nasty thing is the circuit is unstable with zero input signal and no load attached: it generates at 58.8 kHz. The generation stops immediately when a load is attached or some non-zero input is applied. Unfortunately, I haven't been able to replicate this behavior in the model (in LTspice) so far, which would help me developing a countermeasure. LTspice only indicates instability somewhere above 8 MHz, which doesn't correspond to the physical reality.

I've tried listening some music (in mono, obviously; headphones in parallel) and it sounds good, as far as I can tell. I even think it plays bass sharper than my Topping NX4 (which is, sort of, to be expected from a current drive / VCCS amp).

The pictures attached are of the prototype, the PCB is homemade (positive photoresist). Had some issues with drilling (I don't have a drill press or stand) and "manual" tinning doesn't look superb. The resolution is really good [by my standards], I could go down to 0.2 mm traces for sure. Perhaps, if I applied a mask layer instead of tinning everything, the result could look better. Chemical tinning would be cool as well, but the solution is quite expensive.

If some of you, guys, have an advice on how to approach the no-load-no-input instability issue in this peculiar circuit, I'd be glad to hear from you 🙂
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.