Balanced Volume Controller / Line Stage

Member
Joined 2009
Paid Member
This is a series of high performance balanced active volume controls with differential input, ground-sensing output (goodbye cross-channel ground loops!), and a choice of analog or digital volume controls (sample Arduino sketches for the latter are included):
All versions feature:
  • Balanced differential input with excellent common mode rejection - works very well with single ended sources, too!
  • Output stage that can be configured as balanced (best for downstream stages with differential input) or ground sensing / ground cancelling (best if followed by a single-ended input referenced to its local ground - the vast majority of audio power amps are configured this way).
  • Compact (2.9x2.6in or 74x66mm) two layer PCB, all though hole parts (except WM8816/MAS6116 and MUSES72320, which only come in surface mount packages)
  • Can be part of an integrated amplifier (great with LM3886 or similar chipamp based power stages); an output stage of a DAC to form a "digital preamp"; with an input selector, a high performance balanced line stage / minimalist analog preamp.
The schematic is based on Bruno Putzey's Purist Balanced Preamp (aka BPPBP) from his article "The G Word, or How to Get Your Audio off the Ground", originally published in Linear Audio Vol.5. PCB design also follows Mr. Putzeys' method.

Attached are the schematic and measurements for the analog pot version. My soundcard (E-MU 0204) is not good enough to measure the distortion of this thing at 0.0005% at 1kHz - please look at the baseline plots of the soundcard with its input connect directly to its output. Also, note the difference in PSRR between NE5532 and LM4562.

The last plot is one ground referenced channel of a stereo LM3886 amplifier (with one power transformer and one power supply shared by both channels and the line stage) driven by this line stage in its ground sensing configuration. I used my own LM3886 PCBs.

UPDATE: boards are available at HiFiOcean.com.

UPDATE2: a single-ended volume control based on DS1882 is added - it includes a Firstwatt B1-style JFET buffer and a low-noise regulated power supply, all on 1.1x1.1in (28x28mm) board.

UPDATE3: Sample Arduino sketches to control any of the above mentioned digital volume controls are now available on GitHub.
 

Attachments

  • avc+s sch left ch.png
    avc+s sch left ch.png
    24 KB · Views: 6,499
  • SC loopback.png
    SC loopback.png
    37.2 KB · Views: 6,285
  • AVC balanced.png
    AVC balanced.png
    37.2 KB · Views: 5,540
  • thd+n 1kHz avc LM4562.png
    thd+n 1kHz avc LM4562.png
    37.4 KB · Views: 5,440
  • thd+n sc only.png
    thd+n sc only.png
    23.5 KB · Views: 5,412
  • thd+n avc.png
    thd+n avc.png
    22.9 KB · Views: 1,009
  • thd+n avc lm4562.png
    thd+n avc lm4562.png
    23.1 KB · Views: 920
  • AVC+LM3886 ground sensing.png
    AVC+LM3886 ground sensing.png
    39.1 KB · Views: 1,101
  • IMG_0737.JPG
    IMG_0737.JPG
    86.9 KB · Views: 2,471
  • IMG_0732.JPG
    IMG_0732.JPG
    102.5 KB · Views: 2,944
Last edited:
  • Like
Reactions: 1 user
Member
Joined 2009
Paid Member
WM8816 Based Balanced Volume Controller / Line Stage

The same line stage with the pot replaced by a WM8816, controlled here by a rotary encoder and an Arduino. The measured performance (with NE5532's) is very similar to that with the pot.
 

Attachments

  • avc+s_8816 sch left.png
    avc+s_8816 sch left.png
    24.7 KB · Views: 2,452
  • IMG_0739.JPG
    IMG_0739.JPG
    96.4 KB · Views: 2,172
  • IMG_0741.JPG
    IMG_0741.JPG
    94.1 KB · Views: 1,449
  • WM8816+NE5532 1kHz THD+N.png
    WM8816+NE5532 1kHz THD+N.png
    38 KB · Views: 1,202
  • avc+s_8816 bottom copper.png
    avc+s_8816 bottom copper.png
    18.7 KB · Views: 1,421
Member
Joined 2009
Paid Member
The same line stage with the pot replaced by a PGA2310, controlled here by a rotary encoder and an Arduino (with a different sketch, of course). The measured performance (with NE5532's) is even better than with the pot.
 

Attachments

  • PGA2310+NE5532 1kHz THD+N.png
    PGA2310+NE5532 1kHz THD+N.png
    37.9 KB · Views: 1,371
  • IMG_0742.JPG
    IMG_0742.JPG
    80.3 KB · Views: 1,395
An output stage is added that can be configured as either a balanced output or as a ground sensing (a.k.a. ground cancelling) output. This should help solve the so called "cross channel ground loop" problem, which is simply two power amplifiers having inputs with different references ("signal grounds").

I'm only of basic electronics knowledge here (so forgive me..). Is this part kind of ignoring the concepts of "The G-word" when applied to the following power amplifier stage? Following those concepts, cross-channel grounds loops would be avoided wouldn't they? Or is the ground sensing confiuration just there for compatability?

Did you find through-hole to be any less accurate than the original SMD in terms of matching in the balanced circuits? I guess the answer is no, looking at the distortion graphs...

Good work by the way..
 
Member
Joined 2009
Paid Member
Thank you for positive replies!

Is this part kind of ignoring the concepts of "The G-word" when applied to the following power amplifier stage? Following those concepts, cross-channel grounds loops would be avoided wouldn't they? Or is the ground sensing confiuration just there for compatability?

Yes - cross channel ground loops would be significantly reduced.

My thinking was that not every power amplifier out there has a differential input allowing a balanced connection. There may be good reasons for this - for example, a power amp may be unstable with its "negative" or "cold" input floating, and it is safer to ground it. This, however, presents two problems:
  • Connecting a power amp with a ground referenced output to a line stage is not trivial, because the reference point for the single ended intput is somewhere inside the power amp board, not inside the line stage. Ground loops may add noise and hum, but the problem is deeper. Simply connecting the two reference points with a wire sort of works at DC, but leads to higher distortion levels at high frequencies and may lead to unpleasant, irritating sound. This is how cables affect the sound!
  • In a stereo or multichannel setup, the same effects creates to the "cross channel ground loop" effect. I once tried to power two channels of Zen V4 from one power supply - it was humming until I installed input transformers, making inputs differential. Another way of dealing with this one is a "dual mono" setup with separate, isolated from each other power supplies for each channels.
Attached is a little simulation of four different ways of dealing with the difference in the signal references ("signal grounds") between a line stage and a power amp. The balanced connection is the best, but a ground cancelling/sensing approach works well, better than the often used "ground loop breaking resistor".
 

Attachments

  • ground sensing simulation.png
    ground sensing simulation.png
    33.5 KB · Views: 2,003
  • ground sensing sim results.png
    ground sensing sim results.png
    21.8 KB · Views: 1,810
  • ground sensing.asc
    16.5 KB · Views: 216
Last edited:

PRR

Member
Joined 2003
Paid Member
...kind of ignoring the concepts of "The G-word"....

You should probably re-read Putzeys' paper cited in the first post.

Ground over here is not ground over there!!

Let's instead say "the G pin". And also the H pin, center of an RCA interconnect.

What matters is not the voltage on the H pin, but the voltage *difference* between the H and G pins.

Say the G pin is not your ideal "ground". It never is.

If the source can sense *both* the H and the G pins at the destination, and adjust its output so the H-G difference IS the desired voltage, then signal delivery is perfect.

Ground-cancelling schemes don't just nail the RCA shell to the preamp chassis. They leave it somewhat floating, detect any stray voltage on the G, and adjust the H voltage so the H-G result is perfect.

I first saw this on dBx studio gear, aimed for a transformer-balanced world, but the builders wished to avoid transformers. The implementation served me well in a variety of situations, unbalanced, balanced, and floating. (You did have to wire it correctly when driving grounded unbalanced links.)
 
Member
Joined 2009
Paid Member
If the source can sense *both* the H and the G pins at the destination, and adjust its output so the H-G difference IS the desired voltage, then signal delivery is perfect.
Thank you - I have though about this one, too. I agree that conceptually, differential sensing would be closer to perfection. In my simulations, though, differential sensing didn't massively improve the results versus single ended. Intuitively, you cannot (or it is difficult) to get perfect cancellation across audio spectrum, esp. when longish runs of cable are involved.
Ground-cancelling schemes don't just nail the RCA shell to the preamp chassis. They leave it somewhat floating, detect any stray voltage on the G, and adjust the H voltage so the H-G result is perfect.
This floating arrangement looked hairy to me. The signal and sense are two single ended connections, but what are the reference points for them? This is where differential sensing comes to mind. In the end, however, I made a decision to keep it single ended for a specific situation where I have a power amp with its input hard referenced to its local ground, and there is no alternative. Seems to work well on my bench. Should I need to run a cable from one box to another, I'd use a balanced pair.
 
Interesting stuff, thx. I was just wondering: why not go quasi-floating for the output ? Then you can have balanced and ground cancelling with just a change of cable (xlr-xlr, xlr-rca).

In the sims, shouldn't R32 be connected to the top of R33 ? Btw, what did you plot in the .asc exactly ? This look like an ac analysis but I see no source for it.
 
Last edited:
Member
Joined 2009
Paid Member
I was just wondering: why not go quasi-floating for the output ? Then you can have balanced and ground cancelling with just a change of cable (xlr-xlr, xlr-rca).
Quasi-floating is a strange creature - it doesn't balance voltages but instead makes sure that the currents via the hot and cold wires cancel each other, like in GFCI breaker. When you load it with perfectly matched resistors, you can get symmetrical voltages - if you need them. Anyways, it doesn't work as well for my purpose here, see the attached sim. One can always stick in a DRV134 if need be.
In the sims, shouldn't R32 be connected to the top of R33 ?
The results would be marginally worse if you did it that way, as if would throw away all CMRR from the opamp.
This look like an ac analysis but I see no source for it.
It is an FFT of waveforms generated in transient simulation.
 

Attachments

  • qb simulation.png
    qb simulation.png
    72 KB · Views: 2,095
  • qb sim results (FFT).png
    qb sim results (FFT).png
    61.6 KB · Views: 2,039
  • ground sensing.asc
    27.4 KB · Views: 188
Thx.

- I was curious about the quasi floating as Self suggests it for its ground cancelling abilities. BTW, it might not matter in sims but it absolutely needs the inverting stage to work properly IRL.
- yes but that's how a hum breaking resistor would be connected in practice. Another ground loop breaking resistor would then be connected from the power gnd to earth.
- dumb me... Didn't recognize the windowing.

Edit: silly me again. My basis for the gnd breaking resistor was based on a conventional non inverting amp. It doesn't seem to quite work that way.
 
Last edited:
Member
Joined 2009
Paid Member
yes but that's how a hum breaking resistor would be connected in practice. Another ground loop breaking resistor would then be connected from the power gnd to earth.

Edit: silly me again. My basis for the gnd breaking resistor was based on a conventional non inverting amp. It doesn't seem to quite work that way.
You're right - in a non-inverting amp, stacking R32 on top of R33 is a conceptually better way. R32 forms a divider with the output impedance of the line stage (R31 in the simulation), which feeds the non-inverting input of the power amp with a mix of the signal and the noise from the ground loop. If you stack R32 on top of R33, you feed that divider with attenuated noise from another divider formed by R33 and Rwire6. In my simulation, there is no appreciable difference unless R32 becomes comparable to the output impedance of the line stage.

Other than that, all conclusions hold for the non-inverting power stage. As no true differential input is possible, ground sensing is the best performer.

Thinking about it, a non-inverting power amplifier stage is an example of a circuit that has a single reference node which it uses for input and output. This node must be used for all “GND” connections of the power stage, i.e. the signal ground, the grounded end of the feedback network, and the output ground. The output of the line stage must be referenced to that point, too. Ground sensing is one practical way to do it.

On the other hand, two additional small resistors in the power stage, shown in the simulations above, allow separating the signal refererence and the output reference from each other and everything else. Why anyone would be interested in the non-inverting configuration?
 
Because it's common practice in most commercial stuff? It has the major advantage of high input impedance in a situation where all kind of gear could be connected. And the difference in practice might not be that big. Plenty of non inverting stuff measuring and sounding great.
 
Member
Joined 2009
Paid Member
I totally agree that one can build an amp in the non-inverting configuration that measures and sounds great. There are plenty of examples, both commercial and DIY, that are praised for objective and subjective qualities.

Building such an amp requires making careful compromises, as your thread on "The dozens schemes to wire an amp..." illustrates. The ability to successfully break ground loops :wiz: makes one a guru!

Using such an amp requires optimizing its sound (actually noise and distortion) by painstakingly selecting associated equipment and interconnect cables and teaching oneself to love the resulting sound during long break-ins :Ohno:. Have you read the 2001 Stereophile review of the original 47 Laboratory 4706 Gaincard? An interesting reading in this context. To quote Nelson Pass, "This being the entertainment industry, I hope everyone is having a good time".

I was frustrated with those choices and compromises :irked: until I learned that by rearranging resistors and tracing the signals on the PCB in a particular way, a large part of the need to compromise goes away in a puff. The input impedance is not bad for the solid state, at 21kohm. Alas, it takes the entertainment away...
 
Last edited:
Member
Joined 2009
Paid Member
Now with the MUSES72320

But I deviated from my topic.

Here is the latest addition to the family - a balanced volume controlled / line stage based on the MUSES72320. Same form factor, same great performance.

The PCB took a bit more of the redesign compared to the WM8816 and PGA2310 versions, as the datasheet for the MUSES72320 specifies relatively large electrolytic capacitors (four larger green caps on the photo), and I had to move other parts around to make room. Still, the only SMT part is the MUSES72320 itself. The rest is through hole, easily soldered by hand.

The control of the MUSES72320 is via an encoder attached to an Arduino compatible board running an appropriate sketch.

I attach a couple of photos of the assembled board, the schematic and a FFT of the board running 1kHz at 0dB gain.

The use of OPA2134 instead of an LM4562 as U6 seems to be affecting PSRR in a way similar to that of NE5532s above. Otherwise, I believe the performance measurements are limited by my soundcard - compare the attached spectrum to those in post #1.
 

Attachments

  • avc+s_muses bottom.png
    avc+s_muses bottom.png
    88.7 KB · Views: 877
  • avc+s_muses top silk.png
    avc+s_muses top silk.png
    76.7 KB · Views: 1,199
  • avc+s_muses sch_Page_2.png
    avc+s_muses sch_Page_2.png
    24.8 KB · Views: 1,370
  • avc+s_muses sch_Page_1.png
    avc+s_muses sch_Page_1.png
    25.7 KB · Views: 2,326
  • IMG_0751.png
    IMG_0751.png
    710.4 KB · Views: 2,079
  • IMG_0752.png
    IMG_0752.png
    679.9 KB · Views: 2,179
  • MUSES27320 1kHz 0dB gain.png
    MUSES27320 1kHz 0dB gain.png
    49.4 KB · Views: 973
Member
Joined 2009
Paid Member
My goal was to build as much a drop-in line stage, complete with input and output circuitry, as a volume controller. I used an Arduino and an encoder laying around - they work just fine :)

There are many other ways to control volume, and there's no wrong way to eat a Reese's. Maybe it makes sense to put together a list of various ways to control volume with links to original sources and/or particularly nice implementations.

Pot based
  • Regular log potentiometers used as voltage dividers.
  • Linear pots used in in the Baxandall configuration, as in my board described in the first post. These have advantages over log pots, as discussed e.g. in Bruno Putzey's article I referred to above.
  • Motorized pots - usually the log voltage divider variety - there was a nice implementation published in Australia's Silicon Chip in November 2002 (subscription is required to access).
Switch based
  • Stepped attenuators (e.g. goldpoint) - I heard these can be motorized, too, but I've never come across one.
  • Tapped transformer volume controls.
Relay based (seem to be popular despite the relays' audible clicking)
Analog electronic controls
  • LDR (resistive optocouplers) based, e.g. Lightspeed
  • Using BJTs or FETs as analog control elements (I believe these are mostly used in dynamic range compressors, etc., not volume controls)
  • Analog multipliers
Digital electronic controls
  • Multiplying DACs (maxw's reference above or e.g. AD7112)
  • Digital potentiometers, e.g. the DS1882 used in PassLabs' integrated amplifiers, and digital pot based volume control chips, e.g. CS3310, PGA2310, WM8816, MUSES72320 - see my three boards above.
  • The somewhat mysterious bipolar switch based X volume control from PassLabs - see also here.
 
Last edited: