When my old breadboards finally became so unreliable that they were impacting on my projects I went off to eBay and found myself some cheap replacements. Rather than do what I had done previously and simply glue the boards to a suitably size piece of plywood I decided to spend a bit of time and build a prototyping station to sit them in. I had a number of goals for this project:
- It needs to be robust and transportable. I need to be able to move it around the workshop (and even take it to work or another location altogether) without fear of it falling apart.
- It needed an integrated power supply with switches on all the voltage rails. Main power will be provided by a standard DC plug adapter (which needs to pass through to the board) but I wanted at least a 5V regulated supply as well.
- The boards needed to rest at a slight angle. Working on a board resting on a flat surface can get a little comfortable.
- It needs to be reproducible. I wound up buying eight boards altogether and I'd like them all to be mounted. This means if I need to start on another project while midway through something else I will have the spare boards to do it.
You can see the final result in the image to the right, it meets all of my goals and is relatively easy to construct. The design phase (and verifying the printed parts) took a few days but a single station can be easily be constructed in an afternoon.
All the design files for this project are available on my git server (git://thegaragelab.com/electronics/breadboard) which you can browse here. The 3D printed components are also available on Thingiverse.
From the side the stand looks like a right angled triangle with the two acute angles chopped off. At the front this provides enough space for the depth of the breadboard so the top of it is flush with the rising edge of the stand. The flat part on top provides space for mounting the power connectors and switches (and whatever else you'd like to add).
Both the top and bottom panels are flat and solid. I didn't want to make a bare frame because I didn't want to run the risk of other components on my desk getting caught in the innards.
I would have preferred to print all the components needed to construct the frame but unfortunately the bed area of my printer (it's only 15cm x 15cm) prohibited this so I decided to use 3mm MDF sheet for the top and bottom plates. This material is fairly light, very cheap and quite easy to work with. The work I had to do with it was minimal as well, two rectangular sections, one of which had a rectangular mounting hole cut out of it (more on that later).
I went through quite a few iterations of the vertical, printed mount stands each one becoming a little less complex than the previous - see the image for a collection of failures.
My original idea was to use three, relatively thin (about 2mm) stands and attach them to the base board using mounting stubs. There were a couple of problems with this solution:
- It is very difficult to drill mounting holes and cut notches into the side of MDF with hand tools in such a way that they all line up correctly (at least it is at my level of competence). On the first prototype it took quite a bit of additional work with a hand file just to get the stands to attach to the base let alone line up.
- The thin stands didn't provide enough space horizontally to support any downward pressure on the board. The third stand actually made this worse - push down on the left of the board and the right hand side would pop up in the potentially catapulting your project across the room. With only the edge stands in place it was somewhat better and would accept more downward force but when the grip cave way the whole board would drop down to the base.
- The parts coming off the printer required a fair bit of post processing to clean up the mounting stubs, this added even more time to what was a fairly lengthy build process. I was dreading having to make more of these.
As luck would have it a friend who has a lot more experience in construction (he works with metal and wood) happened to visit. When I explained the problems I was having he suggested adding a lip to the bottom of the stands (so when you look at it front on it looks like an L) and simply gluing it to the base. Adding another lip at the bottom of the back of each stand which was the same height as the MDF I was using helped to get the two pieces aligned. This is the design I finally went with and it greatly simplified the construction.
To print these pieces yourself you need the following files:
- breadboard.scad - this provides the main modules and contains all the customisation variables at the top of the file.
- bb_left.scad - this generates a model of the left hand stand rotated so that there are no overhangs when printing.
- bb_right.scad - this generates a model of the right hand stand rotated so that there are no overhangs when printing.
You need to download all three files into the same directory. Open breadboard.scad and adjust the settings to suit your needs. The main thing you will want to change is the dimension of the breadboards, here are the settings for mine:
//-- The size of the breadboards we are using BOARD_LENGTH # 175; // Longest side of the board BOARD_WIDTH # 46; // Shortest side of the board BOARD_DEPTH # 8; // Depth of the board
There are other settings you can play with as well, the number of boards to use, the spacing between them, the angle at which they are mounted and the size of the front and top flat areas. I've documented them in the file so it should be clear what each variable is for.
Next open one of bb_left.scad or bb_right.scad in OpenSCAD and render it. This emits the dimensions of the frame during the generation process, you really should check that and make sure it is within the range of your print bed. If it's not you are going to have to go back to breadboard.scad and play with the settings some more. You can gain a bit of extra space by printing the stand at a 45 degree angle (which is what I did using Slic3r).
Once you've printed your first stand make sure your board fits snugly into the slots provided. It should be a tight fit, you don't want it to be too loose - hopefully you are not going to need to remove and reinsert them very often. If your breadboard is the type that has clips along the long edge to snap them together you may want to file them off or join two of them together and change the settings so you have one board that is double the width.
If you are happy with the fit print out the other stand. Now assemble them on a flat surface and measure the width from the outer side of the left stand to the outer side of the right stand. Measure the length from the front of the stand to the inner surface of the back lip. This gives you the width and height for the MDF base plate you need to cut. For the top plate use the same width but use the value you specified for MOUNT_EXTRA in breadboard.scad as the height.
Once you've cut out your base plate you can glue the stands to it. I just used standard hobby glue, you don't need to use superglue or anything exotic. I kept the boards mounted in place while doing this just to make sure everything lined up properly.
The top plate simply glues to the top of the stand on the flat surface provided. I recommend letting the stands and base plate set first before doing this. If you are going to make any modifications to the top plate (see below for what I did with mine) you really need to do those first before gluing it in place.
In an effort to simplify the project I decided I would just pass through the input voltage (I use a 12V DC adapter) and provide a regulated 5V output from that as well. I wanted these available through banana sockets on the top plate and I wanted switches on each of the positive supplies.
The circuit for this is very simple, it's a 5V/1A regulator circuit based around a LM7805 regulator chip and pretty much straight from the datasheet. You can grab the Fritzing project for the circuit from here which includes the schematic and the breadboard layout.
I actually made the circuit up on my partially assembled breadboard station just to get a feel for how it was to work with. With such a simple circuit it probably wasn't necessary but I wanted to make sure I had component orientation right and that I was using working components (I have a bad habit of simply putting faulty components to the side rather than throwing them out immediately - sometimes they wind up back in my component drawers because I've forgotten why they are lying on the bench).
There is no need for a custom PCB, the circuit will translate directly from the breadboard layout to veroboard with needing to cut any tracks. I simply used pin headers for the input (+12V and GND) and output (+12V, +5V and GND). I recently bought some Dupont connector cable from eBay so I just chopped some of those up to make the connections to the power jack, switches and banana sockets.
Once the circuit was transferred to the veroboard I printed up one of my parametric PCB holders with the size adjusted to suit the board so I could mount it to the base plate.
I wanted the power be accessible from the top plate through banana plugs and I wanted separate on/off switches for the positive voltages. This makes it a lot easier to work with than continuously plugging in or remove wires or power connectors.
What I didn't want to do was drill a lot of holes and cut a lot of rectangles into the MDF. For one I don't really have the tools to cut small rectangles and the whole operation would have been very tedious. What I wound up doing was design a printable mounting plate that had the appropriate cutouts in it so I could cut a simple rectangle in the MDF and plonk the mounting plate in there.
The OpenSCAD source for my version is available here. Unfortunately, unless you are using the same components as I am, this is probably not going to be usable for you as it stands. It should provide a good template though and you can modify it to suit the components you do intend to use. I've tried to document the code pretty well - if you substitute the dimensions for your components (it assumes round holes for sockets and rectangular holes for switches) you should be able to generate a suitable mounting plate as it automatically places the mounting holes for you. For reference here are the components I used (sourced from Jaycar in Australia):
Both of these components have solder points at their bases but I happened to have a crimping tool and a set of lugs available so I used those to connect them up, this will allow me to repurpose or redesign the connections later if I need to without damaging anything.
Basically you need to connect the positive voltages to one connector on a a switch and then connect the other switch connector to the appropriate socket. The ground connection goes straight to the socket without a switch in the middle.
Building Your Own
The easiest way would be to use the same components that I did, you can then use all the files as is without modifications. This is not going to be suitable if you already have parts that you want to use or can't acquire the parts I used. For reference here are the parts I used in mine:
I've made my best attempt to make the printable parts as configurable as possible so you can adjust them to your needs by modifying the OpenSCAD files (a quick aside: this is one of the great things about 3D printing - you can modify the object to suit your needs).
For the electronics side you are going to need a soldering iron and some veroboard. If you are just getting into electronics and using a breadboard for most things these are still good things to have - see my tips and tricks post for some other things you can do. You could always skip the power regulator altogether.
As for the woodwork all you really need is a multitool, the smaller blades work well for cutting out the hole for the mounting plate and if you clamp a straight piece of wood onto a sheet of MDF and use that as a guide you can use the rounded blade to cut long straight lines. I highly recommend having one of these around, they are very useful for a number of projects.
I'm really happy with this project, it's working very well for me and I hope it works for you as well. Another thing this project has started me on is to simplify my prototyping process, in the future I'll be making a lot more breadboard breakout modules to speed up project development even more.
I'll keep updating the list below with links to related posts: