Build an Advanecd, Universal Benchtop Power Supply!

by CHWTT in Circuits > Arduino

118 Views, 2 Favorites, 0 Comments

Build an Advanecd, Universal Benchtop Power Supply!

Screenshot 2026-05-20 at 11.02.14 AM.png

Hello there and welcome to my Instructable. In this Instructable, I'll be showing you how to build a device that can take any old power brick you have laying around from an old laptop or something, and that turns it into an adjustable benchtop power supply with an adjustable output that ranges from 1.25-30VDC and up to around 4-5A, a second, fixed output that can supply 5V at 500mA, an easily configured current limit through its internal dummy load, active cooling, and a responsive voltage and current readout display.


Now, a note about this project: This is the bigger, more complicated and of course more well-featured version of a very similar project that I've released alongside this one. If you're just looking for a compact box that can turn a power brick into an adjustable power supply, and don't care about having that responsive a display, easy current limit setting, a standalone 5V rail, active cooling, etc, then check out the other Instructable on my page for the much simpler, more compact, and cheaper version. But, if this is the one you want, keep reading to see how to build it!

Supplies

Electronic Components:

1x Buck Boost Converter

1x 5.5x2.5mm Barrel Jack Input

4x Small Toggle Switch

4x Binding Post (two negative, one 5v positive one adjustable output positive)

1x 16x2 I2C LCD

2x 200k Potentiometer with Knob

1x 80mm Cooling Fan

1x ACS712 Current Sensor Module

1x ADS1115 ADC Module

1x Arduino Nano

1x L7812 12V Linear Regulator

1x L7805 5V Linear Regulator

2x Omron G2RL-1A-E Relay

3x 1N4007 Diode

1x 1N5408 Diode

3x 2N3904 NPN Transistor

1x 470uF 35V Electrolytic Capacitor

4x 100nF (0.1uF) Ceramic Capacitor

2x 100k Resistor

2x 12k Resistor

1x 10k Resistor

3x 330 Ohm Resistor

3x 1 Ohm 5W Cement Resistor

5x PCB Screw Terminal Blocks

Male and Female 2.54mm Headers

DuPont Wires

Hookup Wire (16 Guage)

Heat Shrink Tubing


Mechanical Parts:

1x Heatsink

10x M3x6 Socket Head Screws

4x M3x8 Socket Head Screws

4x M3x12 Socket Head Screws

4x M3 Nuts

4x PC Fan Screws (Should already be included with fan linked above)


Custom Manufactured Parts:

1x Custom PCB - This link takes you to a PCBWay shared project, where you can either get the gerber files for the board, or use the button on the page to place an order through PCBWay for these boards directly. I strongly recommend PCBWay's services, just keep in mind that they are my YouTube sponsor and that if you purchase the boards using the button to order them on this page, I will get a small kickback from that purchase that supports the channel and my future projects.

1x 3D Printed Main Chassis - STL files provided at the bottom of this section. I recommend printing this part in a decently temperature resistant filament like PETG (No PLA). If you don't have a 3D printer, check out PCBWay (My YouTube Sponsor)'s 3D Printing service.

1x 3D Printed Chassis Lid - STL files provided at the bottom of this section. I recommend printing this part in a decently temperature resistant filament like PETG (No PLA). If you don't have a 3D printer, check out PCBWay (My YouTube Sponsor)'s 3D Printing service.

Watch the YouTube Video!

Make an Adjustable Bench Power Supply from an Old Laptop Charger and 25 Dollars!

Check out the video I made on this project! It gives you a great idea of the though process behind it, and what you'll be getting into should you choose to build it. This video covers two versions of this project, and the version that this Instructable is on is the second one showcased.

Solder the PCB Together

Screenshot 2026-05-20 233920.png
Screenshot 2026-05-20 233855.png

The first part of this project is, probably as one would expect, soldering the motherboard together. This involves soldering all of the components to the motherboard, making use of male headers on all of the connection points marked on the board's silkscreen and my personal recommendation of socketing the Arduino with some female headers so it's easy to remove for programming.


Now, while you could solder everything to the board at once at this point, I very strongly recommend against soldering R6, R7, R12 and R13 to the PCB yet. These four resistors make up voltage dividers that will allow the display to show the output voltage, and you need do some things with them before soldering them in place, but we'll cover that in Step 2. Also, my PCB says 20k for some of the resistors, yours will say 12k, just ignore this. I had to change that resistor value after ordering my boards.


Schematic attached if it helps for reference :)

Downloads

Measure the Voltage Divider Resistors and Record Their Values

Screenshot 2026-05-20 234911.png
Screenshot 2026-05-20 234753.png

For R6, R7, R12, and R13, use a multimeter to measure the exact resistance of each resistor that goes into each spot. This is critical for accuracy, as even the difference in resistance across resistors with a 1% tolerance will throw off the voltage measurement dramatically. Write these values down and save them for later because we'll punch them into the code before programming the board.

Mark and Drill Holes in Heatsink

Screenshot 2026-05-21 005401.png

Next, grab your heatsink and mark the two holes you will need to drill in it to screw it to your two linear voltage regulators. My heatsink looks different than the one that I linked to in the materials section, as I chose to reuse a random one I had on hand as opposed to buying a new one, but this process should be the same. Another thigs to keep in mind when marking the holes to drill and when mounting the heatsink is that the fins should run vertically, so perpendicular to the PCB itself (aka the opposite direction of the fins on my heatsink).

Prep the New Potentiometers

Screenshot 2026-05-21 011804.png

Since our buck-boost converter uses small trimmer potentiometers for its voltage and current adjustments, we'll need to replace them with something easier to adjust by hand from the front panel. So, we'll be removing the trimmers and replacing them with two 200k ohm potentiometers, which we'll prep now by adding a total of 6 ~3 inch lengths of hookup wire and 6 pieces of heat shrink to them, one connected to each pin. At this stage, all you're going to do is solder one wire to each pin and then isolate the connections with some heat shrink while leaving the other end of each wire unconnected. Set these two potentiometer assemblies aside, as we'll use them a little later.

Mount and Connect the Barrel Jack and Main Switch

Screenshot 2026-05-21 012156.png

Next up, we'll grab the main chassis 3D print as well as one of the small toggle switches and a barrel jack. We'll mount the barrel jack and switch to their respective holes in the back of the chassis, and pay attention to the orientation of the switch when mounting it, as I think it's best to place the switch so that it's ON when flipped upwards and OFF when flipped downwards. Then, use a piece of hookup wire and some heat shrink to connect the center (positive) terminal of the barrel jack to one of the terminals of the switch. Then, connect some lengths of wire to the negative terminal of the barrel jack and the other contact of the switch. I chose to attach relatively long lengths of wire here (~8in), and trimmed them later, but you could probably get away with 5in lengths.

Desolder the Old Trimmer Pots From the Converter

Screenshot 2026-05-21 233555.png

Next, desolder the two trimmer pots from the converter module. This can be done pretty easily by adding a lot of fresh solder to the three solder joints holding each trimmer in and then moving your soldering iron between all 3 joints quickly to melt them all at once. Once they're all liquid, the trimmer should just fall out.

Solder the New Pots to the Converter

Screenshot 2026-05-21 233838.png

Next up, connect the new pots to the pads where the trimmers were previously. I've found that for these modules, the correct way to connect the new potentiometers to ensure that they rotate the correct way (clockwise increases voltage/current value) is to connect pin 1 (leftmost) on the potentiometer to pin 3 (rightmost) on the buck-boost converter (if you orient it so the output terminal block is facing you). Then, middle pin goes to middle pin, and pin 3 (rightmost) of the new pot goes to pin 1 (leftmost) of the old pot.

Mount the Converter and Its Pots in the Chassis

Screenshot 2026-05-21 234146.png

Using four M3x6 screws and the included hardware for the potentiometers, mount the buck-boost converter in the chassis and mount the pots to the front panel. The converter should be oriented so that the connection points on it where we just soldered the new pots to are on the end closer to the pots, and you can choose to place the current and voltage pots in whatever order you'd like (current on left, voltage on right, OR voltage on right, current on left - the latter is what I did).

Upload the Code to the Arduino

Screenshot 2026-05-22 002544.png

Before mounting the mainboard in the chassis, plug your Arduino nano into a computer and upload the code provided on this step to the board AFTER opening the code up and entering your resistor values into the correct fields!


Also, read through the comments at the top of the code if you reach the end and find that a certain part of the device isn't working. You may have to change things like the I2C addresses for the ADS1115 or the LCD or even change the conversion factor for the ACS712 sensor, and you may also have to install some libraries. These sections are commented so you can fix these issues easily, should they show up.

Mount the Main Board to the Chassis

Screenshot 2026-05-21 234323.png

On a similar note to the buck-boost converter, using four more M3x6 screws, mount the main PCB into the chassis as well. Orient the board so that the heatsink attached to the voltage regulators lines up decently well with the vent holes in the back of the chassis.

Connect Power Input Wires

Screenshot 2026-05-21 234502.png

This being the first of many wiring steps, connect the wires coming from the input barrel jack and switch assembly to the "Barrel Jack IN" screw terminal on the main board - Ensure positive (The wire that went through the switch) goes to positive, and negative goes to negative, or you just may fry everything.

Connect the Buck Boost Input

Screenshot 2026-05-21 234640.png

Now, connect the buck-boost converter's input terminals to the "TO Buck Boost Converter" screw terminal on the main PCB using two small lengths of hookup wire.

Mount and Connect the LCD

Screenshot 2026-05-21 234941.png
Screenshot 2026-05-21 234911.png
Screenshot 2026-05-21 234846.png

Using four M3x12 screws and matching M3 nuts, screw the LCD display to the front panel. Then, using four female-to-female DuPont cables, connect the LCD to the header labeled for it on the PCB. You may have to bend the pins on the LCD module a little to fit the cables, but this won't negatively affect performance at all.

Mount and Connect the CC Set Switch and 5V Binding Posts

Screenshot 2026-05-21 235537.png
Screenshot 2026-05-21 235406.png

Next, take another one of the small toggle switches and mount it to the hole right next to the leftmost potentiometer. This switch will put the power supply into current limit set mode, which allows you to make use of the internal dummy load to draw a bunch of current so that you can clamp it with the current limit dial. This will in turn set your output current limit and is a lot easier than finding some other load laying around every time you want to change the current limit. After it's mounted to the front panel (oriented correctly - up = ON, down = OFF), connect it to its respective header on the PCB. I found this to be super cramped, and honestly easiest to do by using some old resistor legs as little jumpers between the male header pins on the PCB and the contacts on the switch.


While you're working in this area, you should also mount the 5V output's binding posts. Note for reference: My color coding is weird across this whole project, so just know that the green binding posts are negative, and the other color (in the case of the 5V output, blue) is positive.

Mount the 5V Output Toggle Switch and Wire It Up

Screenshot 2026-05-21 235805.png
Screenshot 2026-05-21 235737.png

Take another one of the small toggle switches and mount it into the hole right above the two 5V binding posts. This will be the toggle switch for this output, and now we can wire this part of the output up.


Run a wire directly from the negative binding post to the negative terminal on the "5V OUT" screw terminal on the main PCB. Then, run another wire from the positive binding post to one contact of the switch, and from the other contact of the switch, run a final cable to the positive output terminal for the 5V output on the main board.

Add the 5V Sense Wire

Screenshot 2026-05-22 000207.png

Finally, for the 5V output section, run a small hookup wire (This one doesn't have to be 16 gauge) between the positive binding post for the 5V output, and the "5V Out Sens" connection point on the main PCB. This wire allows the mainboard to know when the 5V output is turned on, for the sake of controlling the fan speed and changing some stats on the LCD display. This feature does not provide voltage measurement; it's just assumed that the 5V output is solidly accurate due to its source being an L7805.

Mount Main Output Binding Posts and Switches

Screenshot 2026-05-22 000345.png
Screenshot 2026-05-22 000302.png

Now mount your second set of binding posts and final toggle switch in the main output section. Again, for reference, the green terminal in my build is the negative.

Wire the Main Output

Screenshot 2026-05-22 001010.png

Unlike the input section and other output section we've done so far, the wiring for this section is a little different (and I actually messed it up the first time myself because of this)! The main output section gets its positive and negative binding posts connected directly through to the positive and negative terminals on the main output screw block. Then, the two poles of the switch are wired through to a header for the main output switch on the PCB. This is because the board uses relays to control the main output instead of letting it be switched directly by the toggle switch. This allows the power supply to turn off the main output when being switched into CC Set mode even if the switch is set to have the output on.


Also, like on the 5V output, run a small piece of wire from the positive binding post to the "Output Voltage Meas" connection point. This will allow the PSU to switch its voltage probe location right to the output of the power supply when the output is turned on, for maximum accuracy.

Connect the Current Sensor and Buck Boost Converter

Screenshot 2026-05-22 001314.png

Now, take your ACS712 board and connect the positive output terminal of the buck boost converter to the positive input terminal on the ACS712, then connect the negative output of the ACS712 to the positive terminal on the "FROM Buck Boost Converter" connector on the motherboard. After that, connect a wire from the buck boost converter's negative output terminal straight through to the negative terminal on the from buck boost converter connection block. Finally, hot glue the ACS712 somewhere in the case and use three female-to-female DuPont cables to connect it to the header for it on the motherboard.

Get the Fan Set Up

Screenshot 2026-05-22 001830.png
Screenshot 2026-05-22 002024.png
Screenshot 2026-05-22 002007.png

One of the very last steps of this project is to get the fan set up. This involves a few steps, though all are quite simple:

First, mount the fan to the lid with the four PC fan screws.

Second, find the positive and negative wires of the fan and plug them in to the fan output header on the PCB (ensure polarity is correct or the fan will not spin).

Third, possibly use side cutters to cut a small portion of the frame so it clears the 5V output switch (this may or may not be needed, and shouldn't negatively affect the fan).

Close the Lid

Screenshot 2026-05-22 002143.png

Finally, using four M3x8 screws, close the lid!

How to Use It/The Features

Screenshot 2026-05-22 004211.png

You made it! Here's how it works and all of its general features.

Features:

  1. Toggleable main power, output power for both outputs, and CC Set mode
  2. 15V-30V input voltage range (what can be fed to the barrel jack)
  3. 1.25-30V output voltage range
  4. ~4-5A max output current
  5. "CC Set" mode to help with setting a current limit
  6. Additional 5V 500mA fixed channel for powering auxiliary peripherals alongside higher power parts of your circuit
  7. Active cooling with speed-controlled fan so high output powers for extended durations won't risk overheating

How to use it/How the features work:

  1. To use the adjustable output:
  2. Plug in a power brick in the accepted voltage range (make sure it's center positive so you don't reverse-voltage your input)
  3. Turn on the main power (switch at back)
  4. Set voltage with voltage knob
  5. Ensure current limit knob isn't at minimum, or it'll cause your voltage to collapse the moment any load is applied
  6. Connect a load to the rightmost set of binding posts (variable output)
  7. Turn the output on with the switch located above these binding posts
  8. When the output is on, the voltage display will switch from displaying "SET" voltage to "OUT" voltage - this corresponds with the measurement point changing from the output of the buck-boost converter to allow you to see the voltage before the output is on to a probe placed right on the output binding post that will give the most accurate final voltage readout.
  9. Note that the fan will increase in speed as more current is drawn from this output, assuming the 5V output isn't on too, in which case the fan will live at 100%.
  10. To use the 5V fixed output:
  11. Plug in a power brick in the accepted voltage range (make sure it's center positive so you don't reverse-voltage your input)
  12. Turn on the main power (switch at back)
  13. Connect your load to the 5V output binding posts (the two closer to the LCD)
  14. Turn on the output using the switch located above these binding posts
  15. Note that the fan will go to 100% any time the 5V output is on, this is normal, be not afraid of the fan
  16. The 5V output's state will be displayed on the screen
  17. Please don't pull more than 500mA or the L7805 may overheat
  18. This output can be used alongside the adjustable output (ex. powering an Arduino with the 5V output and a motor with the adjustable output). Note that these outputs share their ground reference and therefore cannot be wired in series, and parallel is also not recommended.
  19. To use the CC Set mode:
  20. Ensure voltage is not above 9V when enabling the mode to not trip protections on the converter
  21. Hit the CC Set switch (next to leftmost knob)
  22. Boost your voltage to the point where you're drawing more current than you want to set your limit at
  23. Once more current than you want is flowing, clamp the current output to the amount you do want by decreasing the current limit knob until desired value is reached
  24. Switch out of this mode once the desired current limit is reached, and leave the current limit knob wherever it ended up
  25. Notes about this mode:
  26. The main output will be automatically switched off when this mode is entered regardless of the output switch's position. If the output was on when the mode was entered, it will be reenabled after the mode is exited.
  27. This mode is on a 20 second timer to prevent overheating the dummy load resistors. You get 20 seconds to set your limit and after that, you're locked out of this mode for 1 minute for cooldown. This mode also maxes out the fan speed for heat management reasons.
  28. BE CAREFUL relying on the current limits from these modules. These cheap buck-boost modules can, in general, be a little all over the place with their current limiting abilities, so I really wouldn't rely heavily on this feature for things such as battery charging, sensitive/expensive circuit testing, etc, because these modules mess up sometimes.


Written directions are great, but I STRONGLY recommend watching the YouTube video segment on how to use the power supply if you're confused, as it may help explain things.