Bench Power Supply Part I – Cabinet

When you start working on electronics projects, one of the most important item is power supply. There are many ways to follow on this subject:

  • Purchase a power supply for each of the necessary voltage (12V and 5V are pretty easy to find, 3.3V not so much)
  • Use the computer USB outlet (it’s almost a standard on Arduino projects)
  • User batteries

For simple and infrequent projects, you can move forward with one of the options above, but when you get serious projects, these options are not very good (they are not practical, the lack power, …). So, the choice is to purchase a professional bench power supply, which, in general, can cost a lot or, being a DIYer, you can use an old  AT/ATX computer power supply and make your own bench power supply, adding the features you like most.

This post is about the making of a my bench power supply. The second part of this post is on Bench Power Supply Part II  – Assembly.

When I first started to plan this project, I set some requirements for the power supply:

  • It should provide the 3 main DC voltages used on electronics projects: 3.3V, 5V e 12V.
  • It should measure voltage and current.
  • It should feature different types of DC connectors.
  • It should be easy to turn the current on / off.

 

Power Supply

The first thing I’ve done was to reclaim an old AT (yes, without the X) form an old Pentium 266 computer, purchased at about the “beggining of this millenium”.

It’s not the most powerfull power supply in the world, but it works, it’s for free and it’s enough for my projects.

Besides, the biggest advantage of this computer power supplies (AT / ATX) is that they already provide 5V, 12V and 3.3V (using some combination of voltages).

 

Cabinet Architecture

After a lot of thinking, I decided for a cabinet with 3 sections:

  • 5V (Some time aftes, I included a subsection for USB outlets)
  • 12V
  • Variable Voltage (2V -11V)

So, I drew the sketch below:

I decided by cutting off the 3.3V section, because my projects are (mostly) 5V and 12V. For the few 3.3V projects, I’d use the variable voltage regulator. Besides, the bench would end up very big with 4 sections. Off course, sometimes I regret about some decisions, and this one was no exception: Immediately after finishing the project, I received my Onion Omega 2+, which works with 3.3V. 🙁

The first idea was to make a MDF box with a plexiglass front (where the connectors, meters and outlets would be attatched). One of the advantages of the plexiglass was to allow adding a sheet of paper underneath it with the markings and subtitles for the connectors.

But the results where not very good. The holes were misaligned and the borders a bit crooked (I didn’t have a drill bench).

 

At te same time, I assembled my 3D Printer, so I changed the my idea in the direction to make some printed bench.

Obviously, the results didn’t came overnight. It took some months to learn and master OpenSCAD and the print process itself.

 

So, I decided by a modular project, once it would not be possible to print it at once, due to the size of the print bed of my 3D printer (20cm x 20cm). On the other hand, a modular project brings some perks: the basic project can by used and adjusted to other ends as required. Then, I designed 4 different modules: Corner, Horizontal, Vertical e Panel.

 

 

 

  • Corner: Print 4x to have each of the 4 corners;
  • Panel: Module where the power outlets and meters are attached;
  • Horizontal: Should be attached to the top and the bottom of each Panel module;
  • Vertical: Should be attached to the left and right of the leftmost and rightmost Panel modules. They can be used as auxiliary panels.

The setup I chose for my bench was: 3 main Panels, 3 horizontal at the top, 3 at the bottom, 2 verticals and 4 corners as shown in the images below:

 

The result is a bit different from the first sketch: besides being modular, I added USB outlets and removed the switches from the Variable Voltage panel.

The list of components for the holes and cuts is described on the second item from below “Components”.

 

3D Print / Module Attachment / Core Structure

The 3D print files, as well the original OpenSCAD source files, can be downloaded from the project below, on Thingiverse:

It’s necessary to print the files:

  • 4x “Corner_Plain”
  • 3x “Bottom_Plain”
  • 1x “LeftSide_USB”
  • 1x “RightSide_Plain”
  • 1x “Top5V”
  • 1x “Top12V”
  • 1x “TopVarV”
  • 2x “AmpsPanel”
  • 1x “VarVPanel”
  • 36x “Base_Brackets” (use to attach the module to each other).
  • DON’T PRINT the file “BenchModel.stl”, it’s there just to demonstrate the the final goal.

 

Printing Parameters

Nozzle 0.4mm is enough. Smaller diameters get better finishing
Material ABS: Scale in 1.01
Infill Not Used
Outro

 

Printing

 

Module Attachment

    

The modules should be attached to each other using the “brackets”, to be inserted in the guide rails, as shown on the last image above. After the module attachment, it’s important to glue all the parts, in order to make them stiffer. I suggest using some superglue (CA adhesive) ir some epoxi glue.

 

Finishing

  

In order to make the 3D printed imperfections less visible, I used some wood putty, sanded and spray painted it. The results are less than perfect, but better than the original for sure..

 

Woodwork

It’s easy to notice that the modules themselves are not enough to holde all the necessary items. So, I designed a separated structure for fixing the modules, the power supply and so on. I started with the sketch below to what I consider the core structure:

Based on that, I cut 3 MDF pieces (I asked someone to cut them for me, to be honest):

  • 2x pieces of 25,5cm x 13,5cm x 1,5cm
  • 1x piece of 25,5cm x 18,5cm x 1,5cm

I marked the center of each of the smaller piece, made 2 holes 2 on each one, chamfered them, screw them to the bigger piece, spray painted in mat black and glued some rubber feet to the base of the structure, as the images below:

  

 

At the end, I made a hole to the top left of the bigger piece of the structure, to pass the power cables into the cabinet.

 

Module Customization

To allow me to use the modules and some futre projects, I coded the OpenSCAD files in a way to be easily customized.

The base for everytihing is the BenchPanels.scad file. It includes another file, “RoundCorner.scad”, which I’ll not discuss here, but just put it on the same folder and it’ll work.

The BenchPanels.scad file has several functions, the ones you need to know, by now, are:

  • instrumentPanel(bLeft= true, bTop=false, bRight = true, bBottom = true): Defines the “Panel” Module, without any holes or cuts.
    • bLeft, bTop, bRight e bBottom: They set whether the bracket guide rails will be added or not to the module (each variable sets it for a different border)
    • Global variables that affect the module:
      • pWidth: Defines the module width (padrão 60).
      • pHeight: Defines the length, in the Y axis (padrão 60).
      • hasBrackets: Sets whether the brackets guide rails should be rendered ord not (default: true, affects all borders when disabled).
      • hasSupport: Sets whether the panel should have support feet (default: true).
      • wSupport: Sets the width of the support feet (padrão: 6).
      • wallHeight: Sets the height of the support / walls.
    • This module doesn’t have screw mountings or walls.
  • mountPanelHorizontal(ySize = 30, bLeft= true, bRight = true, bBottom = true): Defines the “Horizontal Panel” module, without any holes or cuts, but having screw mounts.
    • ySize: Altura do painel.
    • bLeft, bRight e bBottom: They set whether the bracket guide rails will be added or not to the module (each variable sets it for a different border). Notice there is no bTop variable, because the top side has a wall on this module.
    • Global variables that affect the module:
      • pWidth: Defines the module width (padrão 60).
      • hasBrackets: Sets whether the brackets guide rails should be rendered ord not (default: true, affects all borders when disabled).
      • hasSupport: Sets whether the panel should have support feet (default: true).
      • wSupport: Sets the width of the support feet (padrão: 6).
      • wallHeight: Sets the height of the support / walls.
    • This module has mounts for 2 screws
    • It can be used on both top and bottom of the previous one.
  • mountPanelVertical(xSize = 30, bTop = true, bRight = true, bBottom = true): Defines the “Vertical Panel” module, without any holes or cuts, but having screw mounts.
    • xSize: Largura do painel
    • bTop, bRight e bBottom: They set whether the bracket guide rails will be added or not to the module (each variable sets it for a different border). Notice there is no bLeft variable, because the left side has a wall on this module.
    • Global variables that affect the module:
      • pWidth: Defines the module width (padrão 60).
      • hasBrackets: Sets whether the brackets guide rails should be rendered ord not (default: true, affects all borders when disabled).
      • hasSupport: Sets whether the panel should have support feet (default: true).
      • wSupport: Sets the width of the support feet (padrão: 6).
      • wallHeight: Sets the height of the support / walls.
    • This module has mounts for 2 screws
    • It can be used on both left and right of a Panel.
  • mountPanelCorner(xSize = 30, ySize = 30): Defines the “Corner” module, without any holes or cuts, but having screw mounts.
    • xSize: Width of the panel
    • ySize: Length of the panel
    • Global variables that affect the module:
      • hasBrackets: Sets whether the brackets guide rails should be rendered ord not (default: true, affects all borders when disabled).
      • hasSupport: Sets whether the panel should have support feet (default: true).
      • wSupport: Sets the width of the support feet (padrão: 6).
    • This module has a mount for 1 screw
    • EIt can be used on ony of the 4 corners

 

As a customization suggestion for the panels, use one file for each panel to be designed, including on them the  BenchPanels.scad:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include <BenchPanels.scad>
 
pHeight     = 110;
pWidth      = 90;
 
hasScrews   = true;
hasBrackets = true;
hasSupport  = true;
 
difference() {
    instrumentPanel();
    translate([pWidth/2,pHeight/2,0]) cylinder(h=20,d=40);
}
 
//mountPanelHorizontal();
//mountPanelVertical();
//mountPanelCorner();

For more examples, open any of the .scad files, except BenchPanels.scad and RoundCorner.scad.

 

Components

Below, the list of components to be attached to the cabinet. The reste of the bench power supply components as well details of the assembly will be describe on the next post “Bench Power Supply Part II  – Assembly”.

Ammeters

Used on secttions 5V and 12V.

Voltmeter - Ammeter

Used on the section Variable Voltage.

Sockets 5.5mmx2.1mm

8 Sockets. They are the most standar socket type for DC power supplies.

 

Banana Plug Female Sockets

I suggest to purchase 8 black, 3 red (5V), 3 yellow (12V) and 2 of other color (variable voltage) – I used the green one.

USB Sockets

3 sockets. The best, in my opinion, is to use the breakout like modules.

Switches

6 Switches of 6 pins, 2 positions (Toggle Switches 6 pin 2 position or ON/OFF)

 

Considerations

As I mentioned begore, if I would make it all over again, I would have added a section for 3.3V, because it’s being more and more common, due to low energy modules (mainly after the IoT trend).

The library BenchPanels.scad has some problems, and it can be considered as a “work in progress”, but what it offers is already enough to do a lot of things.

Also, please don’t miss the next post “Bench Power Supply Part II  – Assembly”, to make sure you get all the needed information to assembly your own bench.

Suggestions and requests are welcome. So, leave your comments below.

 

Second part of the post: Bench Power Supply Part II  – Assembly.

More on DIY Bench Power Supplies

 

Author

Fábio Lutz

Bachelor degree in Computer Science by UFRGS / Brazil; 18 years of professional experience on software development (Delphi/Pascal, Java, PHP, Javascript, ...
About The Author

 

Become our Patron

If you like our content, please consider to become our patron and donate us any amount you like to help us continue our projects and maintain our website.

DIYers Patreon URL: https://www.patreon.com/diyerscombr