ATtiny Programming With Arduino




After this Instructable you should be able to program an A Ttiny85/45 with an arduino. It may sound complex but it really isn't. After doing some research I could not find to much info on how this could be done. I however did find This Instructable is my interpretation of what I learned from Randy. 

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Things You Will Need

AT tiny 85/45 - available from Mouser  556-ATTINY85-20PU  Need more info on the AT tiny check out the data sheet here.
Bread board ( or the 8 pin shield from Instructables )
Bread board jumper wires
Led- 5
330 ohm resistor-5
1uf 50V electrolytic capacitor

Step 2: Set Up

You will be using the following arduino pins (see pic)
5V +
5V Ground x2

Wire up the bread board with the jumper wires as follows or see pic:
Note: be sure to not the dimple direction.

ATtiny  pin# 1 to arduino pin# 10
ATtiny  pin# 4 to arduino 5v ground
ATtiny  pin# 5 to arduino pin# 11
ATtiny  pin# 6 to arduino pin# 12
ATtiny  pin# 7 to arduino pin# 13
ATtiny  pin# 8 to Arduino 5v +

Now lets move onto adding our leds. Add the leds to the bread board as see in the pic keeping in mind the polarity of the leds.
Add the resistors to the positive side ( side without the flat part ) each led with get a resistor. Take some jumper wires from the resistors and connect them to the following ATtiny pins.

ATtiny pin# 5 this will be programmed as pin 0 in the sketch
ATtiny pin# 6 this will be programmed as pin 1 in the sketch
ATtiny pin# 7 this will be programmed as pin 2 in the sketch
ATtiny pin# 2 this will be programmed as pin 3 in the sketch
ATtiny pin# 3 this will be programmed as pin 4 in the sketch

Step 3: Setting Up the Arduino to Program

Setting up the arduino to program is not a permanent thing. All this will do is load a sketch that will allow you to program the chip then when you want to use the arduino you simply change the sketch. 
Fist things first you will need the program, down load it by clicking  be sure that you are using arduino program version 0022.


Installing ATtiny45 / ATtiny85 support in Arduino

Locate your Arduino sketchbook folder (you can find its location in the preferences dialog in the Arduino software)
Create a new sub-folder called “hardware” in the sketchbook folder.
Copy the attiny45_85 folder from the to the hardware folder.
Restart the Arduino development environment.


Turning the Arduino board into a programmer

We’re going to use the Arduino board to program the ATtiny45 or ATtiny85. First, we’ll need to turn the Arduino board into an “in-system programmer” (ISP). To this:

Run the Arduino development environment.
Open the ArduinoISP sketch from the examples menu.
Select the board and serial port that correspond to your Arduino board.
Upload the ArduinoISP sketch.


Connect 1uf 50V electrolytic capacitor as follows:
 side with stripe to arduino ground
side with no stripe to arduino reset pin


In the arduino development environment click on tools, board and select ATtiny85 (w/ arduino as ISP ) be sure if using ATtiny 45 you select the correct one. Now you can write your sketch and upload it as you would normally to the arduino. While uploading a new sketch the leds will blink crazy for a sec then the program will take over and will run as programmed. 

Once the sketch is uploaded you can remove the electrolytic capacitor.

         Sometimes after you upload your sketch you may get the following errors:

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85

Do not worry the sketch will have loaded just fine. You can now remove all but the 5V+ and ground wires you how successfully  programmed an ATtiny chip!

The following Arduino commands should be supported:


Step 4: The Sketch

This will blink all 5 leds

Step 5: Returning Arduino Back to Normal Operation

This is easy, 

Run the Arduino development environment go to tools, board then select the board you are using and load what ever sketch you would like. That's it! 

Well I hope I have covered everything in as much but not overly confusing detail as possible. Feel free to contact me on any new updates regarding the programming and or sketches and I will add them.

Arduino Challenge

Participated in the
Arduino Challenge

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    31 Discussions


    5 years ago on Introduction

    Hey I have a question.If I want to use one of these but i need a little more pins can I use 2 of them(like connected in some way or something similar),or I am just unlucky?

    6 replies

    Reply 4 years ago on Introduction

    I'm planning on using an ATTiny as a coprocessor for a larger chip via an SPI slave. Unfortunately this would use 4 pins for the SPI so it would make it difficult to drive a 7 segment. Your best bet would actually be to use a serial in parallel out shift register.

    This essentially allows you to use SPI to drive any number of lines. You would clock 8 (or 16) bits into the shift register and then latch it. Once it's latched each line coming out of the chip will be representitive of one of those bits.


    Reply 4 years ago on Introduction

    That is something I need to give a search to.I'll let you know if I find something.THaaanks!!!


    Reply 5 years ago on Introduction

    If you need more pins, they make an ATtiny 84 with 8-Bit Processors. 8K of program space, 12 I/O lines, and 8-channel See data sheet link. I did some searching and I can't find anything to support connecting 2 together. What are you trying to accomplish?


    Reply 4 years ago on Introduction

    (Yeah I know it's been a while since you replied:/ ) I want to program a 4digit 7segment display to work with an AtTiny(but the only one I have right now is the 85)


    Reply 4 years ago on Introduction

    Is the 7segment display 4 separate digits or 1 display with 4 digits? A picture of the front and back would help. Also any manufacture or product number would help. Some displays are inter connected, some with a common anode and some with a common cathode. Any specific info will help. Over all some shift registers will be needed. How many depend on the display information.


    4 years ago on Introduction

    Thanks for your instructable! Couple of routine questions. I appreciate you used an available capacitor. Most sites use 10microF, but it works for 1microF. Why a capacitor in this range?

    In your pic, the capacitor is not hooked up to the Arduino. Usual GRD -- RESET pins?

    You have 5 small current LEDs. If you had larger lumen LEDs, how would you put in a Darlington or other transistor [ maybe with additional external power ]?

    Regards, lee

    1 reply

    Thank you for viewing. In the picture I hadn't hooked up the capacitor yet. I do make mention of its connection in step 3 about 4 steps down. The best way to connect high lumen leds would be a transistor with the external power.


    5 years ago on Introduction

    Sorry to see that you are having this issue. Please post the code you are using. Are you getting this message when setting up the arduino, or during programing of the ATiny?

    2 replies

    Reply 5 years ago on Introduction

    I get it when i'm trying to program the attiny

    int led = 0;

    void setup() {

    pinMode(0, OUTPUT);


    void loop() {

    digitalWrite(0, HIGH);


    digitalWrite(0, LOW);




    Reply 5 years ago on Introduction

    I get the "OUTPUT was not declared" error when using the following:

    Arduino 1.0.2 IDE

    attiny45_85 Core download

    (Both items referenced in this instructable)

    I do not get an error with this combination:

    Arduino 1.0.4 IDE from

    ATtiny master Core download from

    The problem I have with the blinking light is that the blinking is inconsistent.

    I'm using an ATtiny85-20PU chip for this and have 3 chips.

    1st Chip - The light blinks 3 times and then stays off.

    2nd Chip - The light blinks 1 and the light stays on.

    3rd Chip - The light blinks 1 and the light stays off.

    Because of the inconsistency between the 3 chips I am led to believe there is additional programming I need to set in the chip to fix what appears to be a counter issue.


    5 years ago on Introduction

    I've done all that with my ATTiny85 and i keep getting OUTPUT was not declared in this scope


    Sorry for the late reply. It should work the same. If you set it up and run into a problem let me know and I will try my best to help get it working.


    Thanks for your reply. I'm getting my arduino mega tomorrow. As soon I can get an ATtiny I'll tell you if it worked.