I've just finished designing my own laboratory power supply unit. At first I wanted it to be 0-3A current limited, ~1-30V, but I've changed my mind about it - I think I might need more acuracy in the lower current levels instead of higher currents. For ease of design I decided that it'll be powered from a laptop charger. The choice of charger and LT3080 for current precision made it 0-1A, 1-20V. The whole thing is monitored and controlled by microcontroller.

About the whole project idea: this is a hobby project. I know that one can buy better bench PSU cheaper, but beside having a power supply I want to build it.

I have some concerns about parts of the circuit, namely:

  1. Does the control of the ST1S14 look right? I found this kind of voltage controlled dc-dc converter somewhere on the Internet and I think I understand how it works, but I've never built anything like it - will it really work? I'm aware that there will be some offset from the set voltage and thats ok in this application, since this is just a preregulator (or there's an option to overcome this in software). Also is the BCR169 a good transistor here? I used it just because it's cheap and seems to be fast enough.
  2. For the current limitting there are 2 digipots - 5k and 50k. This gives 0-1A regulation with theoretical resolution of \$1A \frac{\frac{5k\Omega}{256}}{50k\Omega}\approx0.4mA\$ (plus errors, plus wipers resistance offset). Could current limiting be done better without digipots, but using DAC and some opamps?
  3. Finally the programming port. There's USBasp connector on sheet 3 and I want to use it while the board is powered externally, is it enough to connect all pins but vcc?

Is there anything else you see here that doesn't seem right? Are there any flaws with the schematic readability (there are everywhere, but how can I improve it)?

Here is the schematic:

sheet 1 - input to output enter image description here

sheet 2 - additional supplies enter image description here

sheet 3 - MCU and peripherials enter image description here

Update - fixed ADC buffering opamps. Changed them to MCP6001 running from VREF(reference 3V). Changed shunt resistors to single 1W 500m\$\Omega\$ resistor.

Update - I've rethinked preregulator control part and came up with a way to drive it with analog feedback. This makes things a bit less complicated. I tested it in LTspice (with some LT dc-dc ICs) and it apears to be working.

  • 2
    \$\begingroup\$ Frankly, for a home-brew bench supply I'd suggest you start with a linear supply. It will be bigger and heavier, but that's not a problem with a bench unit. Switching supplies have a potential drawback over linear - switching noise. Trying to get the output quiet is certainly possible, but it requires some expertise, which a complete beginner (and a fair number of more-experienced) lacks. High-frequency noise is insidious, it can get everywhere. Just my two cents worth. \$\endgroup\$ Dec 3, 2017 at 21:19
  • \$\begingroup\$ I'm trying to make a piece of equipment that just works. It doesn't necessarily have to be completely noise-free, or really precise. Will this design be able to do that much? Beside I've already built really simple linear supply, I wanted to try something new here. \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 21:24
  • 2
    \$\begingroup\$ Just works, meaning wont oscillate at light loads and stays within 1% under load steps?.. Have you ever read lab power supply specs and decided to make your own specs even if looser. How will you ever know if it works without an acceptance criteria? BTW shunt resistors are usually selected for 75mV or 100mV max. \$\endgroup\$ Dec 4, 2017 at 0:37
  • 1
    \$\begingroup\$ My point is a vague spec often leads to too many things overlooked. The LT3080 datasheet examples use 100mV max. The reason is heat loss is excessive and voltage gain is easy. \$\endgroup\$ Dec 4, 2017 at 1:43
  • 1
    \$\begingroup\$ Also the design is overly complicated with a programmable SMPS feeding a servo controlled 1.1A LDO feeding a 3A LDO also SPI servo controlled. when the Voltage and current feedback could be combined. \$\endgroup\$ Dec 4, 2017 at 1:54

2 Answers 2


LT3080 is not a great choice for a postregulator. It has maybe 30 dB of ripple rejection at 850 kHz, where the ST1S14 switches:

enter image description here

It's also usually a mistake (if you care about accuracy) to use a digital pot as a rheostat. This is because both the overall resistance and the wiper resistance are not well-controlled and vary with temperature. This doesn't matter when connected as a potentiometer, but both will cause errors when connected as a rheostat.

Be aware that LM358-type of opamps output voltage won't go closer than 1.5V to the positive supply rail. Make sure IC1_2/2 goes high enough.

You can probably replace IC8, IC9, IC2.2, and IC10 with a single INA219. Current measurement is compromised at that location by the extra load of the voltage dividers and IC12

Why follow a 1.1A regulator with a 3A one?

The LM334Z works to 1V, so don't expect this circuit to regulate below 1V because the LT3083 won't have its minimum load current.

Consider the circuit behavior at 20V, 1A setting. When you short the output, IC5 will dissipate 20W. Unless you put the microcontroller inside the control loop, but then you will have compromised the transient response when the load is removed from the output.

You have two MCP47x6 DACs on the same I2C bus. You will have to be careful to order them with different I2C addresses. Why not replace them with a dual DAC and spare yourself the hassle? Same goes for the different MCP3021 on the same bus.

IC2_1/2 and IC2_2/2 are not connected correctly. I assume the (-) input is meant to be connected to the output. As it is now, the op-amps will saturate to their positive rails, possibly damaging the ADCs.

Whenever there is an op-amp driving an ADC, I like to power the op-amp from the same-voltage supply as the ADC, so the ADC will never have its absmax input voltage exceeded. This may require the use of rail-to-rail opamps.

  • 2
    \$\begingroup\$ Thanks for taking your time for thorough examination. About a digital pot as rheostat - is there any way to connect it as true potentiometer in this application? Opamps - I'll have to replace these. Current measurment - I'm aware about the inacuracy, I picked this point for measurement, because there is a shunt resistor there. The measurement can't be moved further to the output or it will degrade the voltage controll. INA129 - nice IC, but I don't have access to it. \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 23:41
  • \$\begingroup\$ About LT3083 for voltage step - I originally intended to use two LT3083s and ordered sample of those, but for current regulation precision I had to replace the current controlling one with 3080 for lower SET pin current. Both 3080 are ok for voltage step, but I already have 3083. I'm aware that this circuit won't provide voltages below 1V. I do want to control the preregulator from the microcontroller based on current current and voltage, I'm not bothered by transient response of this device. I have no problem with addressing issue. \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 23:42

Rshunt is 2 ohms, not 0.5 ohms. It would take twenty 10 ohm resistors in parallel to equal 0.5 ohm.

  • \$\begingroup\$ Well, thanks I was messing with it couple of times. Isn't 20 resistors overkill for 1 Amp? I intend to use 0603 resistors. \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 21:59
  • \$\begingroup\$ Isn't it better idea to put two groups in series of 4 1Ohm in parallel? \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 22:08
  • 2
    \$\begingroup\$ Why not use a proper shunt resistor? \$\endgroup\$
    – Wesley Lee
    Dec 3, 2017 at 22:38
  • \$\begingroup\$ I guess you're right. I thought these are more expensive or harder to get, but it turns out I was mistaken \$\endgroup\$
    – ja2142
    Dec 3, 2017 at 22:59
  • 1
    \$\begingroup\$ I'm not saying to use 20 resistors. I'm saying that if you have only 10 ohm resistors and you want a combined value of 0.5 ohm, you need 20 of them, not 5 as indicated on the schematic. Another approach is to look up the max power dissipation of the resistors you have, cut that in half for margin, and then see how many of them it takes to handle 0.5 W. \$\endgroup\$
    – AnalogKid
    Dec 4, 2017 at 5:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.