Introduction: Stripboard Arduino Shield for Programming ATtiny45 and ATtiny85

About: Artist, perpetual protovator. Don't mistake me for someone who actually knows stuff!

This instructable (entered in the Arduino Challenge contest - you can vote for it above) shows how to make a stripboard Arduino shield for programming either ATtiny45 or ATtiny85 microcontrollers with an Arduino, as per these tutorials from the High-Low Tech group at MIT:

Arduino board as ATtiny programmer
Programming an ATtiny w/ Arduino 1.0


The top link shows a breadboard arrangement for the programming set-up, but if you're working with lots of chips it's neater to do away with all those wires and just have something you can plug in to use when needed!

You will need to follow the instructions at the first link in order to configure both your Arduino programming environment and your Arduino board to be able to use this shield. It's worth working through the breadboard version before tackling this, so you know everything else is working as it should...

To make this shield, you will need:

* Some stripboard (I'm using a piece with 14 rows and 23 holes)
* A few lengths of wire (I'm using single core)
* 2 x pieces of female headers, with 4 pins/holes
* 1 x socket for an 8-pin IC chip
* 1 x 10uf capacitor
* 1 x 8 pin length of male headers
* 1 x 6 pin length of male headers
* ATtiny45 and/or ATtiny85 chips to programme
* An LED to check the blink sketch has uploaded correctly

* Soldering equipment
* Pliers
* A well-lit working environment - helps to avoid having to do the soldering again in the morning *ahem*
* Some permanent markers might be useful
* A track-cutting tool, a drill bit or a sharp knife

Step 1: Prepare the Stripboard and the Headers

Stripboard
First make sure you have an appropriately-sized piece of stripboard.

Is doesn't really matter what size it is, so long as it is big enough to straddle the Arduino board with at least a few holes either side (soldering right to the edge has a tendency to cause the copper stips to lift up and detach from the stripboard). The main thing to look out for is to make sure the copper strips go in the right direction - they should be going across the board rather than along its length.

Headers
The next thing we need to do is prepare the 8-pin strip of male headers to accommodate the offset spacing on the Arduino board (you may skip this step if you're using a clone board that already corrects this).

Follow the relevant instructions from this instructable - https://www.instructables.com/id/Embarassingly-Easy-Arduino-ProtoShield/ - to angle the pins. You will also need to push the pins down so they are level with the top of the plastic so that you have enough length underneath to make a good connection with the Arduino board.

Check they all work together
Place both sets of headers in the stripboard and check it all fits comfortably into your Arduino board. Make sure nothing fouls against the USB socket or anything like that.

I found the adjusted headers worked best with the off-set to the right as you look at them from their side of the stripboard.


Step 2: Solder in the Male Headers

Once you're happy everything fits together as it should, go ahead and solder in the headers.

Keep your soldering as neat as you can and try not to get any solder further up the pins than you need to as this will make it difficult to insert them into the sockets on the Arduino board.

The 6-pin header is reasonably easy, but you may find the 8-pin header more tricky if the adjustment process has left the pins a little loose (I had a few that were prone to falling out!). To help keep the pins lined up, I used a second piece of stripboard as a spacer jig. (If you do this, place the pins in the top row of holes, not a few rows down like in my photo. This will make it easier to get access with the soldering iron...)

When the soldering is done, go back and check everything fits into the Arduino board again.

Step 3: Add the IC Socket and the Female Header Sockets

Next it's time to add the socket to hold the ATtiny and also some female socket headers to help with prototyping.

Position the IC socket as per the diagram, making sure to have the right alignment with the male headers and also to have the notch in the right place (be careful with my photos - they may be orientated in different directions to what you are expecting, sorry!)

Solder in the socket and cut the tracks as shown in the photo and the layout diagram.

Align the female headers with the IC socket and solder them in too. Cut the tracks as shown in the photo and the layout diagram.

Step 4: Add Power and Ground Connections

Next we'll add the wires that provide power to the ATtiny. I find it helpful to mark on which tracks are power and which tracks are ground...

Then you need to solder a wire between the 5V connection to the Arduino and physical pin 8 on the IC socket.
Similarly you need to connect one of the Arduino ground pins to physical pin 4 on the IC socket.

Again, beware/be aware of the orientation of my photos!

Step 5: Reset Wire and Capacitor

Programming shields for Arduino UNO boards need a capacitor to disable the reset. This from the High-Low Tech tutorial:

We’ll also connect a 10 uF capacitor between reset and ground on the Arduino board as shown in the diagram (the stripe on the capacitor that’s marked with a negative sign (-) should go to ground). The capacitor prevents the Arduino board from resetting (which starts the bootloader), thus ensuring that the Arduino IDE talks to the ArduinoISP (not the bootloader) during the upload of sketches. (The capacitor is needed if you’re using an Arduino Uno, and might also be necessary for an Arduino Duemilanove.)

You already tried the breadboard version, so you know if you need one or not, right?
Make sure the leg marked with the stripe or "-" sign connects to ground.

After adding the capacitor, you can connect a wire between pin 10 on the Arduino and the reset pin on the ATtiny (physical pin 1).

The following connections have already been taken care of by the stripboard tracks:

* ATtiny Pin 2 (physical pin 7) to Arduino Pin 13
* ATtiny Pin 1 (physical pin 6)to Arduino Pin 12
* ATtiny Pin 0 (physical pin 5)to Arduino Pin 11

Step 6: Let's Go!

Now we should be ready to use the shield.

Make sure your Arduino board is set up as a programmer for the ATtiny chip you're using, as per the High-Low Tech instructions (there's also a tutorial the older 0022 version of the Arduino software).

Insert your ATtiny chip into the IC socket, making sure to get it the right way around.

Upload the Blink sketch (modified to account for the ATtiny pin availability - see the High-Low Tech instructions)

Place an LED between the output pin and ground pin of the ATtiny and hopefully all should be blinky goodness :)
(NB you may need to remove the LED before uploading subsequent sketches...)

Arduino Challenge

Participated in the
Arduino Challenge