Google Ad

Donate to using PayPal here, or pledge a donation via Patreon here.
I like creating electronics related YouTube videos. I mostly buy faulty gear from Ebay and make a repair video of it, but it's expensive and so with your help maybe I can continue to do so. Your support would be greatly appreciated.

Project #021 - Home Built Bench Power Supply

DISCLAIMER: This design is experimental, so if you decide to build one yourself then you are on your own, I can't be held responsible for any problems/issues/damage/injury that may occur if you decide to follow this build and make one yourself.


2My workshop has a couple of bench power supply's, one is an old Farnell TOPS 3D 3-rail tracking job, and the other is a 3-rail CSI CSI3005XIII with Constant Current functions. The farnell is all analogue but has no constant current control  (current limiting only). The CSI is good but out the box doesn't allow you to preset the constant current setting and thats what I want.

So, rather than buy another PSU I thought i'd design and build my own, something thats directly suited to me, my workshop & projects........heck!, it's a good excuse to have a damn good time!


This isn't a full design blog but I've tried to document/add stuff as I go along, the idea being I'll put all design documentation (schematic, partslist, Eagle PCB files, wiring diagrams etc) when it's all finished.

Finally, please note that for the most part I have ignored the cost of this project. Some of the parts I'm using are indeed expensive, however, it's based on parts I have lying around in the workshop as well a bit of expendature. The enclosure and some other items I have had to buy so when the final BOM is detailed I'll make reference to supplier details.

Inspiration for my design comes from &

Please note that the technical specifications are constantly changing thus are NOT final. I am constantly updating this article.



Please note that this design is not entirely finished, there are a couple of small issues which do need fixed both in terms of the circuit design, i.e. there are better ways to implement CC control & measurement, so maybe I will do a V3 pcb in the future. For now I offer the full PCB files & Code, so have fun........but please remember this work is experimental and was meant for fun use only.

Schematic in PDF format - here.
Eagle PCB (V6.5.0) files, including BOM - here. (Published 7th Feb 2015)
UPDATE 13/07/15 - Changed C10 & C11 from 1000uF to 100uF. Could probably go lower, but thats where I am for now.

Arduino code here.
Arduino libraries here.

Notes on the code to-date:
Uses version 1.0.5 Arduino IDE.
Atmel329p program space = 94% full. Ram = 67%.



Many folks have asked where I've obtained some of the parts and services i've used for the power supply:

Front panel = Schaeffer AG -
Enclosure = KEL p/n - CVR1427 enclosure (purchased via Ebay). The manufacturer is



Dual channel 0-24vdc @ 3A each, pre-settable CC, fully isolated and with independant voltage/current control.
Resolution = 10mV (across 0-24vdc).
10-turn pots & numeric keypad for the main voltage (CV) output adjustments.
1-turn pots for main current (CC) output setting.
Output tracking mode (Ch.2 will follow Ch.1).
Latched pushbuttons for disabling the outputs (effects both software & hardware in order to make output 0vdc).
Switching regulator tracking pre-regulator / BJT power transistor main regulator.
ACS712 Hall effect based output current sense IC (0-5A).
Atmel328P (Arduino bootloader) monitored/controlled.
Dual 128x64 backlit LCD's (large fonts using the "u8glib" universal 8bit Graphics library from
Control board - Dual layer Pcb, 90% SMD.



Arduino I/O. Based around an ATMEGA328P-A (16MHz):

D0 - Rx FTDI conn.
D1 - Tx FTDI conn. & Buzzer output
D2 - DI - Fan speed monitor (INT0)
D3 - DO - Fan PWM
D4 - DI - SW1 DI Pushbutton (latched) - Zero main output
D5 - DI - SW2 DI Pushbutton (latched) - Disable CC on main output
D6 - DI - Ch.2 Current Limit monitor
D7 - DI - Ch.1 Current Limit monitor
D9 - S/W SPI - LCD2 CS
D11 - H/W SPI - LCD1 SID
D12 - H/W SPI - LCD1 CS
A0 - spare
A1 - spare
A2 - AI - Ch.2 Current potentiometer (front panel)
A3 - AI - Ch.1 Current potentiometer (front panel)
A4 - I2C SDA
A5 - I2C SDL
A6 - spare
A7 - spare
I2C ADC (MCP3424 18-bit Quad input +/- 2.048v) - Control Section
CH.A - Ch.1 Voltage potentiometer (front panel)
CH.B - Ch.2 Voltage potentiometer (front panel)
CH.C - spare
CH.D - spare

I2C ADC (MCP3424 18-bit Quad input +/- 2.048v) - Channel 1
CH.A - Ch.1 Pre-reg Voltage monitor
CH.B - Ch.1 Pre-regulator voltage monitor
CH.C - Ch.1 Voltage output monitor
CH.D - Ch.1 Current output monitor

I2C DAC (DAC8574IPW 16-bit Quad output 0-5vdc) - Channel 1
CH.A - Ch.1 Voltage output control
CH.B - Ch.1 Current output (CC) control
CH.C - spare
CH.D - spare

I2C ADC (MCP3424 18-bit Quad input +/- 2.048v) - Channel 2
CH.A - Ch.2 Pre-reg Voltage monitor
CH.B - Ch.2 Pre-regulator voltage monitor
CH.C - Ch.2 Voltage output monitor
CH.D - Ch.2 Current output monitor

I2C DAC (DAC8574IPW 16-bit Quad output 0-5vdc) - Channel 2
CH.A - Ch.2 Voltage output control
CH.B - Ch.2 Current output (CC) control
CH.C - spare
CH.D - spare



Please note that there are more videos in this series available over at my YouTube channel here.

08/02/14 - Assembly & wiring of the enclosure/front panel, and first power up.


21/01/14 - Testing of the revised prototype (4th board) including the new bidirectional I2C Isolators which I'm using instead of the drifty analogue opto-couplers. Also, I've hooked up a keypad to be used alongside the potentiometers.



Please note that the latest photos are at the top and may supercede technically any previous ones.

07/02/15 - PCB layout top and bottom




27/03/14 - An attempt at measuring noise levels on the output. My rigol scope in dual channel mode (an attempt at a differential probe setup), math function A-B, 50ohm in-line terminators fitted.
Ch.1 of the Psu set to 5vdc out and with a 1amp load.
Ch.1 & Ch.2 set to AC, 2mV / div, 20Mhz bandwidth limit on.
The math output scale set to 2mV / div.
So, as you can see the p-p noise is measured at approx. 4mV. Those repeating peaks are from the on-board switch-mode tracking pre-regulator.



10/02/14 - Final assembly of the completed PSU:


Still a few wires to tidy, but thats about it:


Showing the back of the display panel:


25/01/14 - Latest prototype on the workbench. This is about as far as I go with the design, so from now on it's all about boxing it up.


Side view:


Side view:


Channel 2in the foreground:


Channel 1 in the foreground:


Close up of the two switchmode pre-regulators:


The torodial transformer that will be used in the final enclosure alongside the keypad:


29/06/13 - The case, an all steel unit from KEL. It's light grey in finish with a brown & light grey end plates (reversable) :