I was looking trough my archive of completed projects thinking about which one to talk about first. I saw the photo of my breadboard and immediately I knew the answer. What better way to start off the blog than a post about a tool so fundamental that anyone who ordered an Arduino from Aliexpress has in his drawer. In this post I will tell you about the need for the project, describe the build process and present the finished result.
When I started out tinkering with microprocessors, I always found myself running out of space on a single breadboard. I also had to set up the same components every time I wanted to quickly test something. I had to find an Arduino and the potentiometer. Then find and connect the wires. After the testing was complete, everything had to be taken apart to be stored. God knows how many times I built, for example, a debounced button circuit. I really wanted a better solution that was ready to use as soon as needed.
I had seen breadboard systems before in college and on youtube. But I don’t know where to get them. They also range in the hundreds of euros. On the other hand, everything I found available online for a reasonable price, was way too simple. Just a breadboard with a couple binding posts. I found myself faced with the problem where the thing I wanted did not exist. I had to make my own.
First things first I wrote down a list of requirements for what I wanted to make:
- More breadboard realestate
- Rigid construction (doesn’t move on the desk)
- Integrated buttons & switches (debounced)
- Integrated potentiometers
- Current limited LEDs
- Binding posts for at least three different voltages
- Convenient but optional power delivery to vertical bus bars
Work started, as is the case with most of my projects, in Fusion 360. The program helped me visualize the layout and position of components around the breadboards.
After component arrangement I moved on to designing the PCBs. I used Fusion Electronics which is a fork of Autodesk Eagle with Fusion 360 integration. This means that changes on the PCB are instantly reflected in the 3D model. This is very cool. Though you can’t compare it to Altium Designer, the program works well for simple boards needed here.
First board is the LED board. It simply consists of connectors, current limiting resistors and diodes. I have chosen a 1k value for the resistors but it really isn’t critical what value is used here as long as the led doesn’t burn out and is bright enough.
The debounce board is a little more involved but still super simple. The bouncy signal from the switches or buttons is filtered using a RC filter. This causes a slow transition which is corrected by a Schmitt trigger inverter. The use of logic gates here enables direct use with inputs of other logic ICs later. Values of the passive components, again, are not critical. Something like 10k, 10k, 1u, should do just fine. More important is the arrangement of the components. When button is pressed it has to produce a logic low signal so the inverter drives its output high.
Once completed, the PCBs were sent to JLCPCB for manufacturing. I did not have the equipment for simple single side etching available to me at the time. They arrived in good condition and high quality but with the expected two to three week delivery time.
While waiting I turned on the 3D printer and let it do its magic. To be fair, the model never comes out exactly like on the computer. When I hold it in my hands, I notice things that I simply miss on the screen. There is always a need for at least a second version, but that is the beauty of rapid prototyping.
I made the aluminum top panel by hand. Angle grinder, slicing saw, drill, files and sand paper. For paint, I used enamel milk white. I cleaned the surface with nitro thinner but didn’t apply aluminum primer. As you can imagine, the panel did not turn out perfect. The holes do not match the 3D printed base. The paint is clearly painted on with a brush and there are specs of dust in it, if you look closely.
Panels like this should be laser cut at a local shop or manufactured by JLC. You can get them made much better looking and very acurate for very little money. They even make the surface finish to your liking. It can be anodized, brushed or painted by a professional. Hours of time are saved and the final result is far better. It looks professional instead of homemade.
Even a perfect panel needs labels. I’m still looking for a good labeling technique. Preferably I want letters to be in or on top of the paint. Screen printing or vinyl stickers would probably be the best candidates but are hard to do right at home. Unlike laser cutting, screen printing is expensive for one off projects.
After the panel was made, the 3D model printed, and the PCBs arrived, it was time for assembly. First, I soldered the components onto the boards. The debounce PCB was straightforward. The LED PCB was a little bit more challenging due to the relatively precise height and vertical alignment needed for the individual pin headers and diodes to fit in the top panel holes. Next, I wired individual groups of input controls. And then everything was connected according to the wiring plan shown in the image below.
I want to mention that the whole unit is hard to assemble and disassemble because some elements are mounted to the base and some to the top panel.
All files and 3D models required to build this project are available on github (https://github.com/nikinaxx/breadboard_system). And here are some images of the finished product:
Lastly, I want to share a list of potential improvements:
- Power the system via a separate 5V USB or DC plug connector. That way I wouldn’t have to worry about frying debounce PCB inverter ICs. Top two binding posts would also be relieved of their duty and could be used freely.
- Disconnect input controls from system power.
- Provide multiple power pins as options for the input controls. Currently the interface of input controls is so simple that there is no need for labels. With this change, every pin would have to be labeled somehow.
- Better input control connectors instead of cheap pin headers. One option are mini breadboards with just a couple of connections. I guess I could also cut one big breadboard into small chunks.
- Connect every binding post to input control option pins. This would also serve for connecting jumper wires to binding posts instead of screwing them down.
- Update the 3D printed base to use threaded inserts instead of nuts.
- Redesign the unit in a way that everything is mounted to the top panel except the breadboards.
- Combine everything into one big PCB. This will remove wiring, making assembly much easier. It will however increase the cost.
In retrospect, this quick and dirty project has become a well used fixture in my workshop. Sure, I’ve had some regrets—like buying cheap switches from Aliexpress that have already started to fail. Or connecting all the switches, buttons, and potentiometers to 5V and GND. It simplified the wiring but sometimes I need specific voltages from the potentiometer.
But it’s not all bad. The breadboard system turned out to be really satisfying and easy to use. The input controls are super handy, and the output LEDs work exactly as they should. An Arduino is always ready on the breadboard, making it a versatile and reliable part of my setup. Despite the flaws, this project has seen a lot of action and proven its worth. It just goes to show that even quick and dirty projects can end up being incredibly useful and teach you a lot along the way.
One day, when I have time, version 2 will be coming out.