You are here


Woolly Boomboxes: a spotters guide to break-dancing mammoths*

Please Note: The peak to peak figures used in these posts should not be taken as absolute, real world values.
The values are intended to show the relative differences that result from configuration changes under simulated conditions.

One of the reasons I've been very keen on flat impedance and flat peak-to-peak voltage variation across frequency is that I have a sneaking suspicion that regions of higher peak-to-peak variation result in "enhancement" of the frequency range it occurs in.

The peak-to-peak plots I've been posting are inidicative of the amount of variation from a centre level. Ideally the voltage should have zero variation around 4.000000V, but that does not occur in any of the Vref mods. The original buffer is possibly closest in terms of varying around 4V, but there are difficulties correctly compensating for load resistance which makes it less than ideal. Lowering output impedance reduces the shift significantly, but having a signfincant roll-off in outpt impedance means the amount of shift under load drops as impedance decrease resulting in a frequency dependant variation in Vref. 

So all of these variables point to an optimal Vref having very low output impedance, with minimal roll-off due to RC filtering.


Over at DIYAudio TNT has observed that his modified board with 3300uF sounds woolly. From the photo TNT has posted of his board, it appears he's jumpered the series resistor, and compensation cap.  As observed in my last Vref diatribe the feedback loop compensates for the trace resistance up to the series resistor, so effectively this configuration has no series resistance before the buffer output cap. While this config has 2mOhm output impedance at low frequency there is a 24mOhm peak around 10KHz.

While some contributors have suggested peaking is good providing impedance is low elsewhere I think there is evidence to suggest that is not the case.

Using my test loads from previous post I've simulated the way TNT's jumpered series resistor mod + 3300uF will behave.

100Hz - 50uV peak - peak.  Ringing and overshoot on load step edges are apparent. Once the ringing settles the behaviour is good.


1KHz load - 51uV peak-peak.  The instability in response to load steps at this frequency is obvious. The step response even looks woolly.

At 7.5KHz, 112uV peak-peak, but a clean response to load stepping.

If the Vref configuration was altered by replacing the series resistor jumper with  0.01R - to alter the config to a "LowRes" mod rather than "NoRes" mod.

100Hz - 49uV peak-peak.  The obvious thing here is the lack of ringing, and very small overshoot but the settled step level is close to peak value.

1KHz 49uV peak -peak.  Clean step response with no ringing and minimal overshoot.

7.5KHz 41uV peak-peak.  Lack of output impedance peaking results in significant reduction in peak-peak variance. 

The main here difference is TNT's Vref config is significantly under-damped whereas the LowRes Mod is slightly under-damped.


Bambadoo's experience is also enlightening...

His inital mod was 0R/0.1R/449R - Soren's original suggestion for the Vref.  With 4000uF capcitance it behaves like this:

100Hz 408uV peak to peak.  Nice and clean, but significant peak to peak variation.

1Khz 218uV peak - peak.  Nice and clean, perhaps over-damped, but still high peak - peak variation. Note that the variation is highest at low frequency and Bambadoo reported boosted bass. Coincidence?

7.5Khz, 31uV peak-peak.  Clean, low level variation.  But does the fact that the load variation at 100Hz is 380uV higher than at 7.5KHz enough to create a sense of boosted bass?

Applying the LowRes mod to Bambadoo's 4000uF config (0.01R replaces 0.1R)

100Hz 48uV p-p.  Significant improvement in peak to peak variation...

1KHz 48uV p-p.  Peak-peak variaiton is virtually the same as at 100Hz.

7.5KHz 35uV p-p, slight roll-off in impedance and reduction peak-peak variation starting to appear.

Vref Tuning 

Taking the idea of tuning the capacitance and Vref a step further I've suggested a further tweak - but it is heavily capacitance dependant.

From the sims I've found there is an ideal capactiance//output impedance balance. The general trend seems to be that the lower the output impedance, the more capcitance that is required to eliminate output impedance peaking.

As an example, Bambadoo's 4000uF per VRef is slightly over damping the "LowRes" Mod.  It's not practical to source 0.008R resistors to tweak output impedance but there are otherways to solve.
As mentioned in a previous post the balance of the "compensation cap" resistor and "feedback resistor" determines the portion of voltage from each sense point, and as a result the amount of compensation for the output impedance of the Vref.

By increasing the portion taken from the remote sense point it's possible to adjust the overall output impedance of the Vref buffer to suit the capacitance.

The way I've been modelling this is to set the series resistor to 0.1R, the compensation cap resistor to 499R, and then adjusting the feedback resistor.  With Bambadoo's 4000uF I've simmed a 40R value for the feedback resistor is close to optimal.  The 499:40 ratio means that 92% of the feedback comes from the remote sense point, and effectively reduces the output impedance to 8% of the value of the series resistor, giving the equivalent of a 0.008R series resistor.

At 100Hz for example this has the effect of dropping the peak to peak variation to 41uV from 48uV.

1Khz 41uV p-p variation

So the basic effect of this tweak is to reduce the P-P variation at lower frequencies, but doesn't lower p-p variation at say 7.5Khz which remains at 35uV in the sims.  The advantage of this is that the variation between 100Hz and 7.5Khz  is reduced from 13uV with the LowRes Mod, to 6uV with tweaked configuration. A "First world problem" at this level, but a worthwhile goal I think.

* A play on "Ignoring the elephant in the room"


Buffer mods

This originally started out as a post intended to show how great the composite buffer mod measured but I've been mugged by reality, or at least the sim results.

While the composite buffer I was looking at showed reduced harmonic distortion in the simulations, I've found that the noise level was different between postive and negative phases of the balanced output. as shown in the plot below.

In contrast the stock buffer configuration with LME49710 has an output noise level that is the same on both phases. 


You can see clearly that the output noise of the best performing phase of the compostite buffer mod is significantly better than the stock buffer, the worst performing phase is significantly worse. The output noise of the stock buffer lies between the two extremes.

The fourier series analysis of the two configurations suggests that stock buffer has harmonic distortion of 0.03813% with a 1.4V RMS 1KHz sine input, whereas the composite buffer has 0.02056% harmonic distortion on both phases. That seems to be a significant improvement despite the differing levels of output noise.

Checking transient response to a single sample impulse there is nothing that suggests the composite buffer suffers from the uneven noise.  It will require real world testing to verify the performance differences.

Improving the stock buffer?

It turns out that much of the reduction in harmonic distortion comes from removing or reducing the value of the filter caps on the differential amp. After a lot of playing with various configurations and component values in TI-TINA I've come up with a combination that looks to give lowest harmonic distortion and a reasonable compromise on output noise.

I have too much gain from the balanced outputs, so I'm proposing to alter the differential amp to unity gain.  This means rather than 4Vrms from the balanced outs the post mod output should be 2 x 1.41Vrms or 2.82Vrms.

To do this the gain set resistors for the LME49724 need to be changed from 825R and 1.24K to 2K and 2K.  The gain set resistors for the LME49710 should be lowered from 1.24K to 1K. The final tweak is to remove the compensation caps in the feedback loop of the LME49724 differential amp.

harmonic distortion: 0.03818% (1KHz Sine)
output noise at 0.1Hz: 106.15nV/Hz1/2
output noise at 1Hz: 12.82nV/Hz1/2

harmonic distortion: 0.020029% (1KHz Sine)
output noise at 0.1Hz: 66.36nV/Hz1/2
output noise at 1Khz: 12.05nV/Hz1/2

Simply removing the compensation caps should drop the harmonic distortion to 0.020771% with the LME49710.

A word of caution if you are swapping op-amps in the buffer.  The LME49710 doesn't seem to be influenced by the feedback resistor values. The OPA627 on the other hand is super sensitive to the resistors selected.  The optimum value for the OPA627 seems to be 2.065K and 2.065K - once you move away from this value the harmonic distortion appears to climb significantly.

Effect of the buffer compensation cap

To illustrate the effect of the compensation cap on the buffer performance I've simulated the response to a 2.834 microsecond pulse.
This is roughly the length of a single sample impulse at 352.8KHz sampling rate.

Blue: generated pulse.
Red: impluse after the 1.2nF filter cap at the ladder output. This is how the impulse would look at the unbuffered outputs.
Green: postive output of the buffer
Olive: negative output of the buffer

First the stock buffer configuration:

Stock buffer with the caps removed from the LME49724 feedback loop.

And unity gain buffer with tweaked component values:

The values that Søren has selected for the caps in the feedback path create an active first order low pass filter with a corner frequency of 273KHz.

The output impedance of the R2R ladder and the 1.2nF filter cap also create an RC filter with a corner frequency of 212KHz, so you'd think that a filter at 273KHZ would have little influence, but as can be seen above, there simulations show a fairly profound alteration to the shape of the impulse.  It would seem that limiting the bandwidth of the feedback loop in this way impacts the ability of the buffer to track fast transients. I found that lowering the value of the compensation cap in the feedback loop to 12pF gave a result very similar to removing the cap (in the simulation at least). The combination of 12pF and 1.24Kohm gives a filter corner frequency of around 10.6MHz.  For the mod using 2K ohm resistors either 8pF would seem to be a good choice if you didn't want full unity gain bandwidth of circa 50Mhz.

The two caps circled in red are the LME49724 feedback loop caps.  If you plan on using the onboard buffers removing these caps is a "must do". I did this mod on the first board I had and the improvement was quite noticable.

The parts marked in orange and apple green are the gain set resistors for the LME49724 diff amp.
The resistors marked in pale green at the top of the image are the gain set resistors for the LME49710.

For those interested in "real world" differences, there is a comparision of the SE unbuffered and SE buffered impulse response with the 470pF caps removed from the LME49724 feedback loop here: DAM1021 Modifications    

As actually modified...

Another real-world point of reference showing the response of the output buffer modified with 1K ohm 0.05% gain set resistors around the LME49724 differential amp. This gives unity gain from the buffer so both + and - outs are the same level as the unbuffered R2R ladder output.  The 470pF caps have been removed from the feedback loop. The green trace is the the unbuffered output. Orange is buffered.  The test signal is a single sample full scale impulse in a 352.8KHz sample rate .wav. I figure this is as short a signal as you are likely to see at the output without getting into single coefficent NOS testing filters.

This was measured using a Bitscope Micro operating in macro mode (12 bit rather than 8 bit) which uses a reduced bandwidth as indicated by the FS=889kHz.

And yes there are two traces in that capture.

For sake of comparision, and simulation verification, the following shows simulated transient response to the same stimulus from the unity gain buffer.  The plot shows the response at the 1.2nF cap, and the response at the buffer output overlaid.

The "lop-side" ringing on the impulse is a result of the 1.2n output cap on the R2R ladder. Altering the ladder filter cap to 470pF looks like it will come close to eleminating this "lop-sided" behaviour.


DAM1021 Buffer Mod

While I've been fairly happy with the buffered balanced output I did have a play around with tweaking the buffer on the first DAM1021 I fried. With the my third board currently in transit and due for delivery mid-week I've been considering what to do to the buffer this time around.

With the first board I swapped out the LME49710's for LME49990's. The change over was a bit a non-event and I didn't hear any obvious benefit from the different op-amp.

When I started looking at a single-end to differential buffer design published on the Analog Devices website (PDF) I realised that the LME49990 was too fast to be stable without compensation in the modified configuration. The stock LME49710 are also a bit too fast and will result in instability in the buffer.

In order for the composite buffer to be unconditionally stable the open loop gain of the opamp has to be less than the closed loop gain of the differential amp (according to the article). With both opamps at unity gain this convienently translates to the GBWP spec (as I understand it). The LME49724 has a GBWP = 50MHz (typ) and 35MHz (minimum), so to be safe the opamp needs to have a bandwidth of less than 35MHz.

The LME49990 has a GBWP of 110MHz typical, and the LME49710 is specified at 55MHz typical, 45MHz minimum. So both require compensation if used in a composite buffer. Adding compensation isn't a huge drama but will require a little bit of fudging to make work. If the compensation network can be avoided it is possible to rework the stock layout with the addition of one short jumper. 

Why bother?

The advantage of the composite buffer configuration proposed in the Analog Devices design note  is that the op-amp corrects for noise and error of the LME49724 differential amp. 

This feedback arrangement suppresses the errors of the [differential op-amp] , including noise, distortion, offset, and offset drift, by placing the [differential op-amp]  inside the [input] op amp’s feedback loop, with the op amp’s large open-loop gain preceding it 

While the design note uses different Analog Devices op-amps the brief listen I had using the TI op-amps suggested the improvement was worth the small amount of effort involved.

The following image shows the circuit proposed in the EDN article.

The DAM1021 factory buffer is a simple single ended to differential converter with the LME49710 acting as a unity gain buffer, and LME49724 differential op-amp performing SE -> Balanced conversion.

It's effective, but you get additive noise/distortion/etc/etc from both devices. The composite buffer should reduce the noise/distortion of the differential amp by the open loop gain of the op-amp - something in the range of 100-120dB. 

Converting the DAM1021 factory buffer to the Composite configuration is suprisingly straightforward and doesn't involve any surgery on the board.

One of the key points to observe is the requirement that the 



Soldering VREF components

As a lot of people are discovering on DIYAudio soldering 0603 sized components for the vref mod can be a bit of a challenge.

What I've found is that stacking parts is more difficult to do cleanly than removing the existing part and soldering in the replacement.

It's not strictly necessary but I use a product called ChipQuik to aid removal. ChipQuik is a combination of rework flux and a very low melting point solder. The solder has a melting point of 58°C/156°F and combines with the solder holding the component in place. Initially you need to apply sufficent heat to melt the solder on the board, but once this occurs the chip quik//solder combination stays liquid for far longer.  It's this property that makes damage to the pads far less likely.  I'm able to remove components like the STM32 uController without any difficulty using a hand iron and ChipQuik for example.


Something that really helps is a pair of smd tweezers to hold the part in place.  The pair I have a probably a bit over sized for the 0603 parts but works well enough. The tip of the tweezers has small flats rather than a sharp point, and this seems to prevent the part spinning around quite as much.

The final thing that I couldn't manage without is a magnifier.  I'm using a cheap and nasty job that no-longer illuminates, but the x5 magnification is a life saver.
They are fairly ubiquitious but I just picked up one from my local electronics barn:
No recommendation of that particular item is implied!

The procedure I use is:

  1. Apply rework flux
  2. Apply a small amount fo ChipQuik solder to each pin of the part to be removed. With IC's you need to flood the pins for best results.
  3. Heat pins until solder and chipquik combine
  4. Evenly heat all pins until ChipQuik//solder is "molten"
  5. Gently nudge the part off the pads
  6. Clean up ChipQuik from board with solderwick
  7. Clean board with Isopropyl alcohol

This gives you clean pads to solder replacement parts to.


Keepin' it Real - or locating and rectifying PSU problems...

Update:I'm still trying to get on top of what is causing the [apparent] low level mains harmonics in the SSR04.

My initial diagnosis of a small non-shorting solder bridge between 18VAC and the ground plane has proved to be incorrect, and performance issues remain.
Troubleshooting so far includes reworking all solder joints on the positive side of the regulator and temporarily swapping out the rectifier bridge, none of which has had any significant impact.

I spent some time looking at the LNMP and have found that it actually has a far higher clipping point than suggested. Tangent has indicated 1mV max input on the 60dB setting with battery at minimum, which is probably accurate. At full charge the LNMP seems quite happy with a 10mV input at 60dB gain.

One of the big issues with the LNMP is low input impedance of 100ohms, which means unless source impedance is below 1ohm there is a significant voltage divider effect from the impedance interaction. Both my signal sources have 100ohm output impedance which will have the effect of reducing the amplitude of the signal by 50%. In the end I measured gain between the input and output pins of the two op-amps, and calibrated for x100 across the two gain stages. Switching in the gain on the line driver brought this up to x1000 without any issues. Based on this I feel reasonably confident that the LNMP is providing very close to advertised gain, but I need to take into account that accuracy is heavily influenced by source impedance.

Note: As Søren has pointed out, these graphs do not show the output of the DAM, despite the plot being presented in a way that is more familiar as audio frequency response. The vref (and other voltage supplies) plots show the degree of deviation from a pure DC voltage vs frequency. The lower the level the smaller the deviation under load. As with my problem power supply there is an element of noise in the plots...

Let me start by saying doing low level measurements is a nightmare.!

The setup is ultra touchy and tiny details matter. In the end I was having to unplug not just my laptop from the power adapter but also remove the power brick and any other switching supplies from the same power board to help clean up environmental junk. I'm still stuck with low level 50Hz harmonics splattered across tests, but realistically they are about the level of the harmonics peaking out from the noise floor of zfe's white noise tests.

Following zfe's comments about "real world" behaviour of the Vref supplies, I decided it was about time I got my Tangent Low Noise Measurement Preamp up and running. The LNMP is loosely based on a design described in a Linear Technology app note authored by Jim Williams discussing performance verification of low noise voltage regulators, so perfect for the task at hand. The LNMP has two AD797 based gain stages followed by a LT1206 line driver. The preamp is specified for a noise level of -72dBFS on the 60dB gain setting. At 60dB gain the maximum input voltage is 1mV which gives a 1V output. Noise floor should be -72dB below the amplified 1V signal.

The noise on the DAM1021 rails is currently peaking at 1.2-1.5mV which has required the use of 40dB gain setting, which accepts a maximum input of 10mV. This setting doesn't perform quiet as well (I'm assuming noise level degrades by 20dBFS) but drags the Vref signal out of the noise floor of my sound card by a healthy amount.

The other advantage is that the LNMP uses a 4 pole high pass filter to block DC, with a corner frequency at 5Hz. You can see the effect of this in the plots with the noise floor clearly rolling off at 10Hz due to the HPF.

Tests were initially done with Bitscope Micro + "HammerHead" adapter but on the Scope the output was very clearly dominated by a low level 50Hz ripple of around 1.5mV -p-p which made it difficult to get a sense of what was going on.

Following zfe's path I then tried hooking up via my sound interface. It's not quite to the same performance specs as zfe's gear - it uses the same JetPLL jitter reduction but as lower performance grade ADC from the same manufacturer (AKM) and the line inputs are not as clean (-108dB RMS vs -110dB RMS), and have 6 dB lower maximum headroom ( +13dBU at 0dBFS vs +19dBU at 0dBFS). Previous tests have shown the noise floor in our tests has the same rising noise floor profile about 30KHz which is doubtless related to the shared ADC manufacturer.

The weak point in this testing was that I didn't have a suitable bnc to 1/4" Jack adapter to allow fully shielded hook up, so there is a rather convoluted path of shielded cables and two short unshielded jumpers which may be problematic. I'm aiming to rectify situation this before next test session. I'm not entirely convinced this is effecting the results because, as noted above, I see the same 50Hz harmonics peaking above the noise floor in zfe's tests. There is compilation of zfe's results on glt's HiFiduino blog in the Vref Modding thread: direct link . As a side note, the annotation that the Stock+2700uF removes the peaking is at odds with what the tests show. The peaking is reduced, but still present, as apparent in the rising noise floor on the trace indicated.

The tests below do not have a direct reference point with zfe's tests. The best I can find is that the 1KHz peak for Stock+1000uF tests has the same relationship to the 50Hz harmonics as as I'm seeing in my tests. My simulations suggest that the 1KHz ripple levels for the Stock+1000uF and Low Res Mod + 470uF should be very close, so this is perhaps a reasonable datum. If this is the case, my measurements have approximately 30dB gain over zfe's results.

44.1KHz sampling rate, 0dB White Noise, 40dB gain via Tangent LNMP, EQHQv2r1 filter unless otherwise stated.

1) Low Res Mod, 1 x 470uF polymer

Note the 50Hz harmonics up to 1Khz @ -100dB. The same spacing and relationship of harmonics can be seen in zfe's white noise tests peaking at just under -130dB.
My board is powered from a Sjöstrom Audio SSR04 power supply, so I would have expected better rejection of 50Hz noise. The 50Hz fundamental is definitely lower in my testing so this is a likely factor. I'll err on the side of conservatism and stick with the 30dB gain difference.

2) Low Res Mod, 2 x 470uF polymer

Note the roll-off in the noise between 5 and 20KHz compared with the single 470uF cap.

3) Low Res Mod, 2 x 470uF polymer, NewNOS filter

4) Low Res Mod, White Noise, 352.8KHz

It's slightly frightening to see the filter shape replicated in the Vref supply...

5) Vref ouput - Playing digital silence

The peaks are all 50Hz fundamental and harmonics at 150, 250, 350, 450, etc. etc...

6) 1KHz sine 0dB, 1x470uF Polymer

Note that -115dB is roughly equivalent to -145dB on zfe's tests and below the noise floor.

You can see the 50Hz fundamental and harmonics breaking through between 50Hz and 7Khz in all the above.

The odd thing is the supply junk is most apparent at the output of the Mravica LDO I have powering the 3.3V:

I'm not sure if this is simply because the LDO is a clean supply and is showing noise on the ground plane, or if the regulator is the issue. All the supply's are effected to some extent, so noise may well be entering via GND. Needs more investigation to get to the bottom of this one. Other option is that it is environmental - I can't remember if I had the compact fluro above the table turned on or off. I seem to recall I had issues with interference from lights when I was building 66dB gain microphone preamps and trying to measure performance.

Output of the SSR04 measured at the main power connector of the DAM1021.

And a final plot for reference - the sound interface noise floor with LNPM connected but powered off.

Transformer Powered:

White Noise 44.1kHz, 1 x 470uF polymer, 0.01R series resistor.

1KHz, 44.1KHz, 1 x 470uF, 0.01R series resistor.


Tangent LNMP

One of the biggest hurdles to testing the Vref mods is that voltages involved are getting toward the limits of my test gear.

My vintage 50MHz analog scope displays 2mV per Div at the most sensitive setting. Better than the 10mV per Div of my Bitscope Micro by far, but it's still pushing the boundaries when we are talking about noise/ripple of hopefully less than 0.5mV peak to peak.

A few years ago I built a Tangent Low Noise Measurement Preamp ( ), but had never been able to get a sensible measurement from it. In hindsight I think I might have been overloading the inputs with the signals I was trying to test.

Anyway with the motivation of being able to test the Vref voltages, rather than looking at the noise floor of the Bitscope I decided to have a debug session this afternoon - what better way to spend a cold Sunday afternoon? As it turns out, the biggest issue is that the battery pack seems to be discharging very quickly to very, very low levels which suggests there is at least one faulty cell. Initially I thought I was see the AD797 oscillating but after swapping in some spare NE5534's to verify the preamp was stable, then swapping back the AD797's one at a time, it seems that everything was operating correctly. After a while the waveform on the output just collapses into to noise and measuring the battery voltage gave a reading of 5V or so, instead of the 10.6V I see with the pack apparently charged.

This screen dump was taken in Bitscope just as the battery voltage was starting to collapse so the waveform is looking a bit worse for wear...


The above image shows the output of the Bitscope's wave form generator.

This is supposed to be a 10mV p-p 2kHz Square wave, but loaded with a probe its actually much lower, possibly 1mV, and 2-3mV at most. The bitscope is set to 10mV per Div for this input (green trace) and running in enhanced resolution "macro mode". You can kind of make out the high and low phases of the signal in the noise. The orange trace is the same signal amplified by the Tangent LNMP and into the Bitscope. This trace is displayed at 200mV per Div and measures just under 1V peak to peak.

Tangent LNMP hooked up to Bitscope Micro ( )via a Bitscope Micro Port 1 ( ).


More Vref musings - Part 3

Tales of Buffers on the Verge of Instability

While Søren has said that the stock buffer is stable with any capacitance you can throw at it, the Brown Burr app notes suggest this is not the case, and the big cap mods to the stock buffer push firmly into the realm of "potential instability issues"...

To illustrate what this potentially means for the vref buffer, I've simulated a short 20 cycle burst of a 6mA Sine load applied to the stock Vref with 1340uF of capacitance.

First at 100Hz (38.6uV p-p ripple):

then 1KHz (247.6uV p-p ripple):

and 10KHz (249uV p-p ripple):

You can see in the above the ringing on initial transients and post ringing as the load is removed.
Consider that we don't listen to steady sine tones or white noise, and the vref will be responding to pulsed loads in response to musical elements.

The potential issue here is that non-steady state loads will provoke load dependant instability in the vref supply. White noise and steady test tones seem to allow the vref to stabilise and therefore may give us a deceptively "rosy" view of the performance.

Using "stable" values with the 1340uF cap loading - 270nF compensation cap, 0.1R series resistor, and 1K feedback resistor, gives very different results with the same 20 cycle 6mA loading as above.

100Hz (216.1uV p-p ripple):

1KHz 1.202mV p-p ripple):

and 10KHz (197uV p-p ripple):

There is a difference in the level of peak to peak ripple, with the stable implementation having higher levels of ripple.
The question is do you opt for very low ripple with ringing and "verging on instability" or low ripple with stability...

470uF "stable" buffer
This basically the setup I have on my DAM1021 at the moment. The mod really needs a 220nF cap to be fully stable, but I've had to use stacked 100nF caps until I put in another order.
Modeled config: 470uF/16V Panasonic Polymer, 0.1R series resistor, 499R feedback resistor, 200nF compensation resistor.

100Hz (86.6uV p-p ripple):

1KHz (765.6uV p-p ripple):

10KHz (469uV p-p ripple):

Factory Mod
Looking at Søren's factory mod, it seems the overall level of ripple is the only real draw back. Otherwise it is a thing of beauty, that is mirrored across the entire audio band.

10KHz (1.142mV p-p ripple):

Missing the obvious...
The "obvious" that has remained unobserved is that the plots in "Part 2" effectively show peak deviation from 4.0V in dB.
So the plots indicate a) the level of ripple, and b) the amount of variation in the level of ripple vs frequency.

For example the "Factory Mod" has very little variation in ripple between 100Hz and 20KHz. In other words there is little frequency dependent variation to the overall level of Vref.
The "big cap" mods have spectacularly low levels of ripple at some points but the peaking introduces a level of frequency dependant variation in vref, which is less attractive.

In searching for the "ideal" vref mod it may be that we need to strike a balance between overall ripple level, and the stability of ripple across the audio band, to minimise frequency dependant variations.

1000uF cap variants
Just to show different behaviour of various buffer configs...
These plots are all at the same voltage and time scale.

Stock + 1000uF, 20KHz sine load:

Factory Mod + 1000uF, 20KHz sine load:

Factory Mod + 1000uF + 0.01R , 20KHz sine load:

While not of the above configs this should give an idea of how a factory mod/940uF/0.01R combination stacks up against a stock+1000uF combination.
The +940/0.01R basically matches a +470uF/0.01R config up to 5KHz at which point the extra capacitance gives additional ripple reduction.

The main point of interest is the behaviour of the 0.01R resistor replacement of the 0.1R. As zfe points out this is getting close to trace resistance, so it may be possible to simply jumper across the existing resistor.
position. I've got some 0.01R on order so I'll give them a try to start with.

The 0.01R + 470/940uF drops the 100Hz noise by 20dB compared with the standard "factory mod". At 20KHz the roll off of the RC filter is the main determinant to ripple level, but you loose a little LF attenuation as you push the caps value up. It's not apparent with 1000uF, but very obvious effect with 2000uF in the simulations.


More Vref musings - Part 2

Note: The -XXdB figures in this post are taken from analysis of LTSpice simulations, not "Real World" measurements.
They should be reasonably indicative of levels of difference between options, but cannot be directly translated into "at the output jacks" values.

Despite all the modding I'm still none the wiser as to exactly which aspect is responsible for the improved behaviour. It's tempting to say that the added capacitance is the primary reason, yet Søren's "factory mod" substantially reduces "hash" with an additional 47uF. This suggests that bulk capacitance is only part of the solution.

Based on the testing I have done with 4 variants (stock + 3 mods) of the vref I'd rank the mods from worst to best:

- factory mod
- factory mod + 470uF
- stock + 470uF

The factory mod alone is a significant improvement over the stock vref but doesn't reach the same level of improvement as the stock + 470uF.
Adding extra capacitance to the "factory mod" almost closes the gap with stock+470uF but not completely.

In an attempt to shed some light I decided to sim the various configurations and measure the peak level of the transient response FFT at a selection of frequencies.

Comparing the original Vref and "factory mod", it's apparent that there is virtually no change in the peak level across the range of 100Hz to 20Kz with the factory mod. This configs Søren's statement that there is no peaking in the "factory" mod. In contrast the stock vref the peak levels starts low but climbs as frequency increases.

The factory mod is a huge improvement over stock, so it would appear that the majority of the improvement comes from reducing peak ripple above 5KHz.

So lets look at the other mods I've tested in the real world.

Adding 470uF to the Factory Mod clearly doesn't alter the attenuation at 100Hz but rolls off progressively through the audio band. This is pretty nice, but as we've seen doesn't really clean up like adding a big cap to the stock vref.
On the other hand adding 470uF to the stock Vref adds creates a pole in the feedback loop, resulting in a peak in noise gain.
This will happen with any bulk capacitance added to the stock vref, so don't think you'll dodge the bullet by stacking on the capacitors. Sorry guys...

Just for reference the sim indicates the following peak values:
330uF - 6.17KHz, -53dB peak
470uF - 5.288KHz, -55.3dB peak
1000uF - 3.67KHz, -58.17dB peak
2700uF - 2.245KHz, -62.6dB peak.
And remember that the peak ripple for the Factory Mod is between -70 and-67dB from 100Hz to 20KHz.
This means the big cap will have ripple at the noise peak that is at least twice the amplitude of the Factory Mod.

An alternative - perhaps
One possible alternative is to embrace the idea that the cap values have to meet the criteria laid out in the Brown Burr app note. This is said to ensure noise gain peaking is minimised.
What I've been trying out in LTSpice is using values based on this relationship, and it seems reasonably effective, if not spectacular.

The equation I've used is:
compensation cap (in mF) = ((2*series_resistor*(total_capacitance_mF/0.000001)/feedback_resistor)*0.000001)
Not all values are useful, and I'd suggest looking at using a series resistor = 0.1R to keep the value of the compensation cap value small. Well under 1uF is a good idea.

What I ended up as "worth trying" is 220nF compensation cap, 0.1R series resistor and 499R feedback resistor, with 22uF//47uF//470uF polymer cap per vref.

As can be seen from the above, the "FrankenMod" in orange is a bit of a mashup of the stock and "Factory Mod" in performance - head from one, part of the leg from the other...
While the low end attenuation is not as good as the stock filter, it's an obvious improvement on the "factory mod", and the performance above 3500kHz has the edge on the stock+470uF option.

From a quick test the 1KHz and JTEST performance is very close to that of the stock vref + 470uF. The harmonics are different as you'd expect and the noise floor is possibly a tiny bit cleaner, but nothing I couldn't put down to vagaries of my testing methods. The noise peaking is not entirely eliminated but occurs as a low "hump" at around 1.7KHz with a peak level of -67.85dB, which should be around 5dB lower than the 2700uF+stock peak. It's also substantially better than the -55.3dB peak level for the stock+470uF.

It's worth having a look at the pics of zfe's white noise tests posted to HiFi-Duino here:

"Correct" component selection
The idea for the above tweaks comes from the "Voltage Reference Filters" app note sbva002 which describes the theory of the filter Søren appears to have used for the vref buffer.

Note that:
- the series resistor and load capacitance form a RC filter with f-3dB = 1/(2 * π * series resistance * Load capacitance)
- to minimise noise gain peaking: feedback resistor * compensation cap = 2 * series resistor * load capacitance,
- to ensure stability: load capacitance * series resistance < 0.5 * feedback cap * compensation cap (app note formulation)
or as zfe points out: feedback resistor * compensation cap > 2 * series resistor * load capacitance
I'm sure that the they should be ≤ and ≥ respectively as it a bit nonsensical having an ideal condition that does not meet the stability condition.

Although the output impedance is low at both high frequencies and DC, it peaks at midband frequencies.

- a peak in output impedance of 0.7 * series resistance occurs near the corner frequency of the RC filter. Reduce series resistance and increase load capacitance to lower the mid-band impedance.


More Vref musings - Part 1

I've been spending a fair bit of time trying to understand what is influencing the VRef mods by simulating the circuit in LTSpice.

In the earlier posts on the topic it appeared that the stock filter was same design as described in two Brown Burr/TI application notes. The app notes suggest that while the circuit is stable with any capacitance, there is a relationship between the filter components that needs to be maintained to prevent a peak in noise gain occurring. This suggests that simply throwing bulk capacitance at the board may not the complete answer to instability in the VRef supply.

LTSpice Sim
The simulation circuit I've working with is very basic, and uses a model of the OPA365 from the TI website.

This screen grab shows the setup for simulating glt's 16-cap mod published on hifiduino blog.

Noise analysis is useful and quickly indicates the degree of peaking in each configuration.
Transient analysis is used to check waveform on the output of the Vref. I've settled on using a sine current load of 6mA, which might be a little low, and test the setups at several different frequencies.
Be warned, I'm a bit of hack with LTSpice so there is likely to be errors in my methodology.

Analysis example
I'm using the 16-Cap mod as an example, simply because it's typical of the straight stock+cap mod. It will sound far better than a stock, unmodified board.

First the noise analysis which clearly shows peaking. This is better than stock, which peaks at 25kHz/181nV in my sims, and with manual calculations.

Next step is transient analysis. This shows the "ramp up" when the cap is first loaded. From what I can determine the "ramp up" is directly related to the noise peaking. If I do fft analysis of only the steady state portion the "peak" disappears. In a real situation the load will not be a steady sine load, so the "ramp up" behaviour is likely to influence overall performance. The ripple in this example is about 3.15mV peak to peak.

FFT of the transient response
Next step is to perform an FFT on the transient response, to visualise the frequency components. In this case the test frequency matches the centre frequency of noise peaking.
The level of ripple is around 2-3 times worse than testing done away from the peak. With a 1kHz tone the peak level for this configuration is -85dB, which is a 25dB difference.

Transient response changes with frequency
As the frequency of the load on the VRef changes the transient response also alters. The big cap mods have relatively low levels of ripple - 0.45mV once the waveform settles - but the "ramp up" is slow, and messy. I'm not sure what impact this low level instability will have, if any.

The stock+1000uF mods behave in the same way, excepting that the peak occurs at a slightly higher frequency. Increasing the capacitance moves the peak to a lower frequency and reduces the amplitude but does not eliminate the peaking.


Test tone quality, and Cap Mod verification

Parts came in for the "Factory Approved" cap mod a couple of days ago, and I've managed to do the upgrade.
I'm not a huge fan of stacking parts so I decided to remove the compensation cap and 10ohm resistor rather than just adding parts on top. I stacked the output cap as I though the additional capacitance would be beneficial.

The compensation cap has been replaced with a 0 ohm resistor, and the 10 ohm resistor changed to 0.1R as per Søren's recommendation.
Working with parts this small is a serious challenge for me, and it's getting close to the limits of my eyesight and equipment. The result isn't especially pretty but it works.

One of the "elephants in the room" with user testing is the quality of the test tone used.
I recently picked up a copy of the Denon Technical Audio CD thinking I would get a decent set of test ones and was surprised at just how bad the spectrum analysis of the DAM looked with the 1001Hz 0dB tones.
Looking at the spectrum of the original test tone made it clear that the DAM1021 was actually reproducing the test tone accurately, even if it wasn't quite what I'd expected.

Rather than dealing with this, I've made up some new test tracks using Faber Acoustics Signal Suite at 24bit, then dithered the result down to 16bit. Much nicer.

And testing the DAM1021 (0.2% version) using this file...

The DAM1021 volume was set to V-02 to avoid clipping the input of my audio interface. Peak level in the file is -1.1dB, and the 2nd harmonic is at -83.9dB, so -82.8dB relative to the 1kHz tone level.


Having gone back and compared the jitter tests I did with just the 470uF polymer caps added, I'm pretty disappointed at the outcome of the "factory" mods.
Immediately post "factory" mod I got the impression the sound quality had gone backwards, and the jitter test (above) points to Søren's suggestion not fully addressing the issue - artefacts are significantly reduced compared to stock but are not as clean as simply boosting capacitance.

Re-running the test with 470uF Polymers brings the spuriae levels almost back to where they were:

As a "reality check" this is the same test done on the unmodified board:

Update 2
I've had a look at simulation of the buffer in LTSpice using the correct model for the OPA365.
The sim shows around 5.8mv ripple in the original stock buffer with a load stepping from 0 to 15mA at 44.1kHz.
Adding 470uF to the stock buffer drops the ripple down to 0.4mV.
Søren's reconfigured buffer has around 1.2mV ripple (with stacked 22uF and 47uF caps) which is a substantial improvement over the previous stock version.
The reconfigured buffer plus 470uF polymer drops the (simulated) ripple to 0.25mV.

The revised buffer has the added benefit of eliminating noise peaking.

It appears there is still benefit from added capacitance. I'm tempted to play around with increasing the 0.1R resistor to 1R which will bring the corner frequency of the filter down to 300Hz from 3KHz. This should help filter reference noise, and the noise contribution of the op-amp.



Subscribe to RSS - mods