Introduction: ATtiny Programmer for Arduino Uno

If you have become confident with Arduino platform and want to try programming some other atmel microcontrollers, this guide will help you to do your first steps. In particular you will make a shield for Arduino Uno compatible boards in order to program multiple ATtiny microcontrollers (2313/4313 25/45/85 and maybe some others).


For this quite simple project you will need:

-perfboard (single or double sided at least 20x10 dots)

-3x 5mm LEDs

-3x 220-330 Ohm resistors

-20 pin socket

-12 male pin headers (at least)

-1x jumper

-some jumper wires

And of course an ATtiny microcontroller to work with (in my case it's a 2313)

Step 1: Wiring

I'm not very used to make step by step guides, so I simply attach the end result and some wiring. Please note that the polarity of the LEDs is not respected on the Fritzing pic so be careful!

If you have decided to use single sided perfboard then you need to press down male pin headers with some pliers in order to make pins longer and solder them from the backside.

The jumper is needed to change the GND pin (depending on what microcontroller you use) though I was able to upload the sketch on ATtiny 2313 even without GND at all...

The green LED is always ON and is optional.

Step 2: Software Setup

Now you need to upload the arduino isp to the arduino board. Go to File -> Examples -> ArduinoISP.

Before uploading you can change the behaviour of LEDs by assigning pins 8 and 9, pin 7 will NOT be used. PMODE (in my case blue) is one that blinks when you're uploading the sketch. ERR will light up when an error occurs. I tried to simulate errors but it never lit up... HB stands for HeartBeat and will periodically switch on and off. Not very useful to me but you can assign it instead of ERR LED.

Step 3: Uploading Your Sketch

Now you are finally ready to upload your sketch. Make sure that you have installed your particular board (microcontroller) and then go to Tools -> Programmer -> Arduino as ISP.

Make sure that the digital pins assigned in your sketch correspond to the ones on your microcontroller.

Now you are ready to upload your sketch!