This Instructable will show you an easy way to wire up an Arduino Nano to various PCB breakout boards. This project came about during my search for an effective, but non-destructive way to interconnect several module.
I had five modules I wanted to interconnect:
The touch panel and the real-time clock modules had previously been used in my my Dali Clock and my Rainbow Synthesizer projects, but those prototypes had been done on a breadboard and had been dismantled to make space for new projects.
It became clear to me that having these all these modules together in a permanent fixture would allow me to spend more time writing software and less time wiring things up on a breadboard. At the same time, I did not want to permanently solder anything together so I could preserve the modules for future use.
This Instructable shows how I put it all together using wire wrapping.
My first step was to map out how to interconnect all the modules to the available pins on an Arduino Nano. The display and the SD card are both SPI modules. SPI is a bus, so the CLK, MISO and MOSI lines can be daisy chained to the modules that need it along with power. Each would require their own CS (Chip Select) pin, however.
I decided to put the RTC module on its own pins because earlier experiments had shown me it wasn't quite SPI compatible. The transceiver modules also needed their own pins.
After mapping everything out, I found it looked like this:
Pins 0 and 1 are used by the USB interface, so they were off-limits. Digital pins 3, 5, 18 and 19 remained free, as did analog inputs A4 through A7, allowing for future expansion.
Initially I had attempted to interconnect everything with short custom crimped Y cables. However the crimps and connectors are only designed to take one wire at a time. Cramming multiple wires in one housing was difficult and led to fragile joints that didn't last long. Not only was the crimping process time consuming, once in use the connectors were likely to work themselves loose from pins, leading to additional wasted time tracking down intermittent faults.
I had always wanted to give wire wrapping a try, so I thought this was a good opportunity to do so. After some research, I purchased a WSU-30 M tool, some extra long 19mm long single row headers and 30 AWG wire wrapping wire on eBay.
As a technology, wire wrapping has a long history. It was a popular way to make digital computers in the 60s, 70s and 80s and saw frequent use in telephone central offices. Although it was obsoleted by mass produced printed circuit boards, wire wrapping has the following advantages for the hobbyist:
The next step was preparing my Arduino Nano. I had an Arduino Nano without any headers, which turned out to be handy, since I wanted to solder the extra long header pins to the top side so I could see the labels while wire wrapping.
I also soldered some extra long headers to the tiny breakout board that came with my display panel.
On the transceiver module, the screw terminals were on the opposite side of the headers, so I desoldered them and moved them to the same side as the headers.
The other boards had short headers already soldered on in the correct side, so I kept them as is.
I wanted to be able to mount all the electronics in the back of the LCD stand I had created for my Dali Clock instructable, so I modeled up something in OpenSCAD. I made cutouts for the various boards I wanted to mount.
After I printed out the tray, I hot-glued all the modules in place.
The process of wire wrapping consists of the four steps: measuring, cutting, stripping, and wrapping.
I measure out enough wire for spanning the two points I want to connect, plus an additional inch on each end for wrapping. Then, I strip off 1 inch of insulation on each end and use the tool to wrap the wire onto the post.
The following is the exact technique I use, which you can see on my demonstration video:
With the wire stripped on both ends, I insert the bare wire end into the barrel of the wire wrapping tool so that the stripped portion emerges from the notch on the side. I then slide the tip down on a post and give it a few turns, holding the tool loosely to allow it to rise up as it winds.
A good connection will leave about 7 turns of wire on the post. If the turns are stacked up upon each other, don't push down on the tool so hard!
UPDATE: Several of you have chimed in that the insulation should wrap around the post for strain relief. I have included two photos to show the difference.
This shows the board after I wire wrapped all the connections. I made a few mistakes along the way, but these were easily undone by clipping the wires and using tweezers to unwrap the ends from the posts.
I suggest doing it one part at a time and checking your work with a multi-meter or by powering up and testing each component. Its a lot harder to fix once there are multiple layers of wires.
My finished product looks a bit messy, but if you want you can be a bit more careful about the routing or use different colors to keep things clear.
Even if it doesn't look pretty, it is a lot more robust than a breadboard! But the big bonus is that if at any time you want to take it apart, you can do so easily with no damage to the Arduino Nano or to the pin headers on the individual boards!
The completed board will allow you to implement these projects: