A nice little Arduino hack.

Here’s a nice little Arduino mod I came up with recently.

Firstly, we’re going to need an Arduino. I’ve used an Arduino Duemilanove, like so, but this is applicable to any Arduino with a compatible form factor, such as Arduino Diecimila.

Now, that spacing between the two headers, where pin 7 and pin 8 are, can be a source of frustration, can’t it?

If only it was a 100 thou (0.1″ or 2.54 mm) spacing, just like the spacing of all the other pin headers. Then you could make a quick and cheap “shield” board using 0.1″ matrix board or veroboard, and use all the digital IO pins, for example.

Well, what I did was to take a strip of female 0.1″ right-angle break-away PCB mount header sockets, like this. Finding a supplier for these can be tricky, but I got them from Altronics, in Australia.

Now, cut off a piece that is 8 pins long, and sit that against the existing DIO pin 8-13 header on the Arduino, so that the plastic bodies of the two pin headers are sitting right up against each other, and the right-angle pins stick down over the edge of the Arduino PCB.

I’m sure you can see where we’re going with this.

Now, we’re going to slide the new pin header across just a little bit, towards pin 13, so that the horizontal spacing between the first pin (next to pin 8 ) on the new header and the existing pin 7 on the other header is exactly 0.2 inches. Now we glue the two headers together, using a little cyanoacrylate superglue.

I found that the easiest way to make the assembly stay together in the right position while the glue cures is to first make up a little Arduino daughterboard “shield”, using a piece of 0.1″ matrix board and 0.1″ male header pins. Plug the Arduino (including the newly installed header) onto the daughterboard, and the new header will stay in place, without moving away from the correct 0.1″ spacing, while the glue cures.

Now, on the bottom of the Arduino PCB, we need to bend the pins on the bottom of the header across just a touch, so they align with the existing solder pads on the original female header. Then we simply solder them on, and there you go.

(Note that I’ve added a 100 k pull-down resistor on the Rx line (pin 0). I haven’t tested this yet, but hopefully it will let the Arduino boot up successfully without the USB interface connected, without it getting confused due to the line floating.

We now have an Arduino with headers that are all accessible on an 0.1″ grid spacing. Of course, we can still plug “real” Arduino shields, with the annoyingly nonstandard spacing, into the original headers as well.

(Also note that I’ve added header pins onto the normally unpopulated pads on the PCB near the FTDI chip, bringing out the spare UART lines. I’m not sure what this is good for right now, but I thought I might as well do it while I was attacking the Arduino with a soldering iron.


About this entry