In my previous post, I showed my design of a dual tracking ±30V linear power supply. My goal was to use the transformer (28V+28V, center tapped) from an old Deltron W127G open-frame power supply and build a lab supply that can be digitally adjusted in both constant voltage and constant current modes. I also wanted each of the channels to be able to deliver up to 10 Amps of current so that I could fully utilize the 540VA transfomer from the W127G.

The following is the finalized schematic for the positive power supply portion (pretty much identical to the schematic I used in my simulations earlier). Here, I used four TIP35C‘s in parallel as the NPN transistor in the Sziklai pair. Because the input voltage is fixed at roughly 30V under maximum load, in a dead short scenario the power dissipated in the pass transistors is at least 300W and thus four transistors are needed to be able to share this worst case load. If you are building a power supply that is rated for just a couple of Amps, you can use just a single power transistor. I also added a buffer between the DAC and the voltage control loop OpAmp (IC1A) to improve stability. Because the digital/analog converter is not isolated, using a buffer between the DAC and the control point can greatly reduce the risk of damaging the DAC or the MCU should one of the OpAmps fail during operation. Similarly, a voltage follower was also added to buffer the current setting output from IC1B. The protection diodes were included to protect the inputs of the OpAmps during large voltage swings in transient events (such as power on).


The temperature stability of the regulated output voltage is largely dependent on the temperature coefficients of the resistor divider R10 and R11. As I explained previously, the output voltage is determined by:

\[V_o = \frac{R_{10} + R_{11}}{R_{11}}V_{Ctrl}\]

So using resistors with similar tempco characteristics and low tempcos is preferred if low output drift is desired. Similarly, the resistors used in the current amplifier (R14-R16) along with the current shunt resistor R13 need to be high accuracy and low tempco reistors as well if precise constant current setting is required.

The schematic for the negative power supply portion is shown below. Again, the main differences between this finalized schematic and the one I used in simulation previously are the paralleled pass transistors and the buffered tracking output. As I mentioned before, for accurate tracking performance we only require that R10 and R11 to be equal in value. And as long as they are chosen from the same batch (i.e. same tempco) their temperature drifts can be largely canceled out when they are thermally coupled (e.g. placed side by side). The negative portion of the circuit does not have the current setting capability for reasons I explained earlier, rather the maximum supply current is limited by the Vbe of T7 and the value of R13. For the values given, the current limiter starts to kick in when the load current reaches around 7A. The load current will continue to increase slowly if the load is increased after this point and will plateau at around 10A when the load is completely shorted.

Most modern power supplies utilize two separate transformer windings for the two output channels and the circuits for each channel (except for the tracking portion) are made identical. This would be the preferred approach as the characteristics of the two channels can be made near identical. But here I am limited by the center-tapped transformer I’ve got.


I used two MCP4821‘s to drive the voltage control OpAmp and the current control OpAmp since I’ve got quite of few of these single 12-bit DAC’s. Of course you should consider using a single two channel DAC such as MCP4822 (see my code examples) if you are buying new parts, using a single two channel chip can free up a pin for the chip select and you can use it for other purposes. Voltage and current limit adjustments are achieved via two encoders. The encoders I used also have buttons built in, so as with my electronic load design, by pressing the buttons you can change the adjustment ranges between fine and coarse (x1, x10 and x100 per step).


Here are the auxiliary power supply circuits. The ±12V rails are used for the OpAmps and the +5V rail is used for the MCU and DAC. The diodes are needed to drop the input voltages that go into the three terminal regulators to be within the maximum allowed voltage (~37V).



Here are a couple of pictures of the MCU/DAC board. The microcontroller I used is an ATmega328P and the pin designations shown below are compatible to the standard Arduino pinout. The full code listing can be downloaded towards the end:

ps_mcu1 ps_mcu2

And here is a picture showing the overall layout of the power supply. The transistors for the positive channel are mounted towards the upper edge and the transistors for the negative channel are mounted towards the bottom. The two regulators for the ±12V voltages are located towards the center left (I used LM317/LM337 instead of 7812/7912 since I have plenty of them) and the 5V regulator is mounted on the other end of the board (hidden under the MCU board assembly).


The picture on the left below is a closeup of the OpAmp board. Towards the back on the right you can see the aforementioned 5V regulator. The picture to the right is a closeup of the positive supply portion. Underneath the metal bar are the power pass transistors, you can infer their locations by the placements of the four 0.1 ohm resistors. The leftmost transistor is a TIP42 (T5). Technically speaking, it does not require heat sink. But it is convenient enough to put it along with all the other power transistors.

ps_ctrl1 ps_posrail

So, does it work? For those who are impatient, here’s a picture showing the power supply set for the maximum output voltage and maximum current limit:


In my next post I will take some measurements and take a look at the some specs of this power supply.


PJRC’s Encoder Library

Be Sociable, Share!

88 Thoughts on “A Digitally Controlled Dual Tracking Power Supply — II”

    • I didn’t specifically have that as part of my design parameters, but as with most linear power supplies, the PSRR largely depends upon the voltage reference quality and the error amplifier. I will do some measurements and report my findings next time.

  • Kerry, thanks for sharing your work. At the end you show the power supply delivering maximum power, but perhaps a more stressful test is to deliver maximum current at low voltage, as that is when the pass transistors of the linear regulator have to dissipate the most power. Also, some non-linearities which might not be obvious at higher voltages will show up when you drive the output voltage low.

    I found that out the first time I built a simple linear supply and watched my output voltage bounce up and down as the thermal cutout kicked in, cooled off the regulator, turned off, and the cycle repeated.

    All the same — great job!

  • I’m curious about R8/C3 on both schematics.

    It’s a resistor & capacitor straight from the op-amp output to ground. Since it’s within the op-amp feedback loop, it won’t affect the loop under normal circumstances, except to perhaps reduce the phase margin slightly.

    The only thing I can think of is it’s either related to dealing with turn-on transients, or you’re doing something clever with the op-amp’s internal output resistance (which is specified in the datasheet).

    What is the intension behind these parts?

      • It *is* doing something clever with the op-amp’s internal output resistance.

        Interesting. Have you tested the circuit without the snubber network? Considering that there is likely very little capacitive load on the op-amp output, I’d think it would be stable even without it, and you’ll probably somewhat better transient regulation.

        • During my simulation, the snubber network’s effect is pretty dramatic, without which the circuit would encounter some oscillation problems under certain current limiting conditions.

          But in practice, I started without using them but later added them in so that they match my simulation. I did not see any “noticeable” effects. But if the calculations were correct, they do improve phase margin somewhat making oscillation even less likely.

  • Hi,
    would it be possible to use your design’s positive part to make 0-30V power supply? Or I would need to make some modifications (aside from software)?

    • The circuit for the positive rail is fully independent of the tracking negative rail, so absolutely! You don’t even need to change the software as tracking is realized by IC1A, R10 and R11 on the negative side.

        • The reason for using a dual supply for the NE5532 OpAmp is that it is not a rail-to-rail OpAmp. So if you are going to use a single power supply (you will need to adjust the VGrnd reference for all the OpAmps), you will not be able to adjust the output voltage down to 0V.

  • Hi Kerry
    Thank you for sharing your designs with us. I am impressed with the simplicity of the tracking power supply. Just a question, what is the status of the supply when you switch on, does it indicate the same voltage as the time when you have switched it off or will it be a random value?
    Jan Heijnen

    • Hi Jan,

      The power-on values are set to 0V/0A in my implementation, but you can program it in EEPROM and recall the voltage if you’d like. Because the DAC is held in reset states during power on, the output transient is quite clean.

  • Hi Kerry !
    Nice work !! I’d like to build this PWS but only positive rail and only to 5A. So I assume I’ll need only two TIP35’s. Correct ? One more question. In your firmware you are using some libraries (arduino LiquidCrystal, SPI) but I could not find Encoder library. Is it some “custom” or not includeed in arduino ?


  • Hi
    Nice project! I am planing to build the PSU. I want to add the possibilities to read out the current consumption, both on the positive and negative rail. How easy can this be done and how?

    • Hi Rix,

      Measuring positive side is easy, you can simply measure the output voltage from LT1605 (pin 5) as it is proportional to the current passing through R13. Using the parameters given, the output voltage goes from 0 to 2V when the current changes from 0A to 10A. You could just use one of the remaining analog pins on the MCU to measure this voltage, but the resolution would be limited to at most 10bits.

      The negative side is a bit tricky if you do not want to use a separate power supply. As I explained in my post, the negative rail goes below the common input range for most current sensing opamps. But, if you have a separate power supply, you could easily monitor the current going through the 0.1 Ohm resistor on the negative rail using low side current sensing (treat the negative rail as ground and power your current sensing opamp independently). Hope this helps.

  • Hi,
    Thanks for sharing this PS project, it’s just what I’m looking for, high current but simple. I’m not sure if your aware that according to page 20 of the LT6105 datasheet it can be used to sense the negative current. If that’s right I assume the negative layout can be the same as the positive with the two limit inputs. Are the big 10 watt ceramic resistors, the 0.1 ohm current sense resistors, and are R1 to R4 higher wattage resistors as well.

    • Yes, I did see that.

      What’s tricky is that the common mode input is not symmetrical about V- (44V about to 0.3V below). This means you must power the V- from the negative input (after the rectified and filtered output) directly. Quoting from the datasheet:

      The only requirement for negative
      supply monitoring, in addition to the usual constraints of
      the absolute maximum ratings, is that the negative supply
      to that LT6105 be at least as negative as the supply it is

      Since the maximum allowed power supply range is 36V, you will not be able to use it since the input voltage is already at approximately 40V and you still need a V+ of 5V.

      That said, if your power supply design calls for an output voltage of ±20V (instead of ±30V or above like the one I had), then you could use LT6105 on both positive and negative side.

  • Ah, I see, so the problem is that the difference between V- and V+ exceeds 36V. I was intending to reduce the current as I was going to power op-amp circuits and so I could also reduce the voltage to ±20V and use the LT6105 and have a separate high current 30V variable supply as well. Does the input voltage to the regulator need to be a certain amount over the highest regulated output voltage as you need with standard to220 regulators.

    • Not only the difference between V+ and V- cannot exceed 36V. When you measure negative voltages, the negative voltage can not be more than 0.3V below V- (whereas when you measure positive side the voltage can be 44V higher than V+).

      Anyway, the minimum input/output difference (i.e. dropout voltage) is around 1V, but you should allow plenty of margin (i.e. 2V) to ensure proper regulation.

  • Hi Kwong,

    Nice project. Is there any current fold back implemented as well as overcurrent/overvoltage/thermal protection? Can it sink current?



    • Now, it doesn’t have current fold back, over voltage or thermal protection. It does have precision constant current capability. Like most power supplies, this one can only source current but not sink current.

      • Well, is there any protection at all? (like fuses)

        For me, it would be a nice feature to monitor temperature and/or current state by time to implement a protection when not in constant current mode. (Like shutdown when trip_current is valid for >= $time)

        Anyway, great project.



  • Hey Kwong,

    Now, I am finish with build the PSU, but i have oscillation problems. I are using LF353 as op-amps, and i have placed the caps very close to the op-amps. What could be the problem?


    • Hi Rix,

      As a first try, could you disconnect D1 to isolate the current limiting portion of the circuit and see if it oscillate? If it still oscillates, temporarily disconnect C3,C4,R8,R12 from IC1A and observe the output and add back the feedback to see if the oscillation still persist.

      Because the open loop gain of the opamp is high and combining with the none-linearity of T6, it can easily lead to oscillation if the values of the feedback network/snubber network did not match the oscillation frequency.

      Also, you could try increase C1 to 10uF to see if the oscillation stops.

    • Spec wise, yes, LT6105 operates over a wider Vcc range and has better accuracy. But both are adequate. Just make sure that you don’t exceed the maximum supply voltage (36V for 6105 and 28V for 4375).

  • Hello Kwong. Great project, thank you for publishing it. I only have doubts about the resistors wattage. R1, R2, R3,and R4 0.1 ohms resistors appear to be just about 1 watt on the images, is this correct? How is it possible if each can carry as much as 2.5 amps? Or am I confusing the resistors? Also R13 is also 0.1 ohms.
    What wattage are this 5 resistors on your prototype or what wattage should I use? Your help is greatly appreciated, thanks!


    • The power dissipation in these resistors are P = i^2*R. So for the four current sharing resistors, if the maximum current is 2.5A the power dissipation is only 0.625W which well within the 1W.

      As for the main current sensing reistor (R13), I used a 10W resistor which is just enough to handle the maximum current. It would be ideal if you can use a 20W one, it will run a lot cooler when at the maximum current and the current measurement will be more accurate (since the resistance of these resistors are more or less temperature dependent).

  • Sorry Kerry, one more question.
    If I use an additional 1K resistor out of pin 5 of the LT6105 so I can connect an ADC to measure the actual power I’m using do you think this would affect the precision of the power limiting section of the supply?


    • Not sure how you are planning to do this, but the maximum output current of LT6105 is only 1mA, so 1K would be to low as the output voltage could be as high as 1.5V.

      • Thank you for your reply Kerry.
        I was planning on using an ADC from a PIC to read the voltage out of the LT6105 and calculate the actual amperage being used. I think the resistor could be as high as 2.5k but not more. The NE5532 datasheet states the inputs need a max of 1000 nA, so do you think I could get away with using the 2.5k resistor? At 1.5v it would be 0.0006 amp right?
        Or any other ideas of where I could make this measurment?



          • Yes, I think that would be R16? But I was thinking of using an additional resistor, leave your design as is and add another resistor so I can connect to the PIC, so there would be 2 resistors at the LT6105 output pin, the original 2k to ground and a 2.5k to the ADC input on the PIC.
            Can R16 be a higher value?

            Sorry for all the questions and thanks for your help!


          • Now I understand what you are trying to do. Basically, you just wanted to measure the output voltage from LT6105. In this case, you can use a wide range of resistor values. So 1K to 10K all look reasonable. And 2.5K will definitely work.

            Depending on the ADC implementation, the input may or may not be buffered. but the input impedance of the ADC will be high enough not to have a significant loading effect out LT6105.

  • Hello Kerry.
    I think I just made a big mess of my project, or my brain just shrank or something, really confused here lol.
    I have a toroid transformer with 3 secondaries, two 25v 8A and one 25v 1.5A center tapped. So I decided to make 2 identical power supplies with the 2 large secondaries and use the smaller one for the control board voltages and stuff them on a case I have, if I ever needed a +/- supply I could always connect the + of one supply to the ground of the other supply, right? That’s how it’s done with dual supplies as far as I understand.
    But since both supplies are controlled by a single microcontroller and a single 4 output DAC then all grounds are connected together, so I would be actually shorting the supply I connect to the ground of the other supply right?
    Am I missing something here? How do they do it on commercial dual supplies? They also use 2 identical supply boards and are also controlled by a single board.
    Really confused, any light on this will be appreciated!

    • Hi Rogerio,

      Well, many commercial dual supplies actually utilize identical channels (i.e. individually controlled) so you can use two channels independently, use them in series or in parallel. In that case the “ground”‘s of each channel are actually separated and are connected together via relay only in parallel mode. In this design, I got away with using just one control because the negative control voltage is exactly opposite to the positive control voltage.

  • Hello Kevin.

    Reading the LT6105 datasheet it states “…can operate from an independent power supply of 2.85V to 36V”. So does this mean that it would be ok to use the positive 12v supply for the opamps to feed the LT6105 and it should still work as you show it here? (Gain wise, etc.)


    • It’s not critical, a typical rectifier diode (e.g. 1N4001) or small signal diode (e.g. 1N4148) will be adequate for voltage clamping purpose.

  • Hi Kerry, I was looking for such kind of psu for long time to build it. I am better in programming than in analog tech, so I am not sure with one thing. I would like to make it powered from standard laptop supply, about 19 volts / 3,5 amps, and use it for positive supply to about 15 volts only. So I will not be able to use any negative voltage. I can use dcdc converter for this, but I think it is not necessary. If I will use rail to rail opamps, like TL1013, it should work when they will be powered from gnd and +12V. Maybe I will have to put a small zener diode ( or single diode ) in series of R6, to get base of T6 a little higher above ground for sure ( and maybe cca 10k resistor from emiter of T5 to emiter of T6 to keep the diode in better working area ) . Is this correct ?

    • Hi Milos,

      Without a negative supply you won’t be able to adjust the output all the way down to 0 because the output from the OpAmp won’t be able to go negative. Other than that, yes everything else can stay pretty much the same.

      • Hi Kerry, thanks for a quick repply. But I do not understand to why negative is necessary. To get 0V on output, it is enough to close all the output transistors. And this can be done by closing T6 – and this should be simply done by moving B-E voltage of T6 to 0V. So why negative ?

  • OK, I will give it a try.

    Btw – should not be better to measure current directly at output ( right before voltage measurement resistor divider ), this should avoid error caused by current flow through T6. And since the current measure IC is able to work down to zero, it should be able to measure without a problem when output voltage drops down to 0V. Or you see any problem with it ? e.g. nonstability of current limit loop ?

    • Yes, you can move the current sense pins (1,8) to the output side right before the output voltage divider and keep the supply pins at the input. It will probably give you better accuracy in current measurement.

  • Hello Kerry. Nice project, thanks for posting it!
    I simulated it on the Ltspice and have a problem with the TIP42 (T5). You say it technically does not need a heat sink, but driving just one 2N3055 it shows almost 500 mA going through it. If I add a second 2N3055 it’s almost an amp, so in 4 it would be 2 amps at 36 volts, that’s a lot of watts!
    Or is Ltspice missing something? Or maybe I don’t see something?
    Would it be ok to plan for a heat sink less supply on the TIP42?

    Thanks again for posting, and thank you for your help!


    • Hi Galen,

      Thanks for your comments. In my project the TIP42 was mounted on the same heat sink as the rest of the power transistors. That said, if you add additional pass transistors the current passing through Q1 (T5) shouldn’t increase much (you can simulate this).

      That said, it’s probably a good idea to mount it on a heat sink as it’s power dissipation would be a few watts when the power supply is fully loaded.

      • You are right Kerry, I added 2 more TIP35’s and the current through the TIP42 hardly changed, the same current as before was shared.
        One more question, does the current limit part on this supply work as constant current? Or it just dissables the PSU?

        Thanks, Galen

  • Hi Kerry – great write-up. Would it be “better” to move the R13 sense resistor to between the ballast resistors (R1/2/3/4) and the top of R10? The way you have it drawn, the current sense does not include the base current into the pass transistors (I think). Since the LT6105 common mode includes ground, in theory, it could be placed on the output side and would still handle a shorted output to ground – and would be more precise. Am I on the right track or is there a reason why it is better to sense at the input side as you have shown in the schematic?


  • I Hate to bother you again but i have A few questions
    1) Vin is 40 volts how is the 40 Volts created if im using a 24v transformer
    2) How is the Negative 40 Volts Created?
    3) On the positive schematic is Vin raw from the transformer or does it go throw a bridge rectifier
    4) On the AUX power supply circuit is 40volts needed? or can i use a different transformer with on out put of say 12v and ditch all the Diodes?

    • So, with a 24V transformer, Vin wouldn’t be 40V, it would roughly be 34V (24*1.414). This will limit your adjustable range to be up to around 24, 25V.

      If you look at the last schematics (click to see a higher res version), the transformer is center tapped. so it’s essentially a 2x24V transformer.

      Vin’s come from the bridge rectifier, again you can see this in the last picture. If you are using a separate transformer for the 12V and 5V than yes you can use a 12V transformer. The reason I used those diodes was because I was using the same transformer to power the opamps and the digital logic and the drop diodes are needed since the maximum inputs to LM317 cannot exceed 37V.

      • Okay!! Thanks! So The Negative -40 comes from the negative leg on the bridge rectifier? Or is there something that im missing? The negative voltage is really screwing me up. Also I Noticed that on the schematics there is only one Pot? But you have two to control the Voltage and Current. Where are those? I am sorry for all the questions i am a high school student with a passion for electronics, Thank you for your quick responses

  • Hello again, I am a very simple question but i cant seem to figure it out. On the AUX power circuit you have Ground. but what is ground connecting to Because it seems to be that it can not connect to the negative side of the bridge rectifier.

  • You must hate me by now with all these questions but i must say you have been very helpful :) But On the NE5532N You have to diodes arranged in a way it looks like it would short out or at least thats what i am seeing it as I Drew an enlarged Picture of what i think is happening can you tell me if i am correct? And What is the point of this set up. Here is the Picture

    • Hi Joseph,

      These back to back diodes are used to protect the differential inputs of the opamp as in negative feedback mode (e.g. as an amplifier) the voltage on these two inputs should be nearly identical and in normal operations the diodes are open. But in the event that the inputs are driven to significantly different voltages, these diodes will conduct and clamping the input to the forward voltage drop of the diode and protect the opamp inputs.

      • Ahh Okay that Makes sense, i am sorry for all the questions. I am still learning alot. Since this is a ± 30V Power supply how are you controlling to negative voltage? Also i see You have a -Vout But on your pictures you have only one binding post?

  • Hi Kerry

    Im currently studying electronics and im very interested in trying to make a PSU like this, I understand in part what is happening in this circuit, however I really want to better understand what is going on in the circuit, I would like to see the various calculations done, especially surrounding the OP Amps, IC1A etc, if you still have them written down somewhere :)

    Best Regards


  • Hi

    I am recently building a power supply with keypad entry.I just want to know what is the purpose of R5,R6 & R7 and how the values can be calculated??

  • Hello,

    This looks like a great design! I’m gathering parts in order to build it. I have only one concern – the main supply voltage to this circuit is 40V, but the datasheet says that the maximum supply voltage of the LT6105 is 36V. I assume just to be on a safe side that I could simply power it from the +12V regulator that is there for all the opamps anyway?

    • Looking at the datasheet, there will be no problem if I run it from the mentioned +12V it seems. I asked because I have a bargain on a 30V 15A transformer, 32.6V idle voltage, so that will be about 46V after being rectified. Now that completely exceeds the limits of the LT6105 so I have to supply it from a different source. The voltage going into the voltage opamp through resistor divider will still be okay I think.

      After powering the LT6105 from an external 12V source the +Vin should be good for up to about 50V, depending on the series pass transistors used. Is that correct?

  • Hi, I know it’s an old design / old post, Just wanted to say that I recently built this circuit and if you add a capacitor bigger than a few hundred nF (either as a load or as a filter) it will oscillate. also at low voltages (lower than 1V) it also was oscillating and the output was unstable.

    Today I had my head scratching so understand why on earth this happens, and guess what; the main transistor needed biasianing.
    A 220 ohm base-emitter resistor solved the problem and I couldn’t be happier.

    A few notes for those who want to build this circuit:

    Increase C4 to 2.2nF.
    R8 and C3 are not doing much there and can be removed.
    Clamping diodes are not needed (NE5532 have it built in).
    Add a 10-22uF output capacitor.
    Place the current shunt resistor and circuitry after the main transistor(s).
    Add a reverse diode from T5 base to ground to prevent the base voltage going negative.

    I haven’t built the constant current part yet, probably more compensation is needed for better stability.

    Thanks Kerry.

Leave a Reply

Your email address will not be published.