ATtiny Programmer Using Arduino ISP





Introduction: ATtiny Programmer Using Arduino ISP

For relatively small (less number of pins than ATmega328) projects, ATtiny series, ATtiny45 or Attiny85 are good choice in terms of its physical size (8-DIP or 8-SOIC)  and low power consumption.

There are many ways to program it. One of the popular device is USBtinyISP and DASA. Both of them work very well with WinAVR (AVRdude).

I'd like to share how I program ATtiny85 with JeonLab mini 1.3. The idea has been adapted from High-Low Tech Group and One missing note from High-Low Tech Group is that you need to add a 110-120 ohm resistor between VCC and Reset pins of JeonLab mini (or Arduino) to prevent Auto reset on serial connection as explained in here and here.

Step 1: Schematic Diagram

You will need a JeonLab mini or Arduino or any Arduino compatible board with FTDI USB interface. Here is an example with JeonLab mini v1.3.

Step 2: Assembly on a Prototype Board

I used a piece of prototype board to assemble a JeonLab mini v1.3, 6pin male header for the FTDI basic board (Sparkfun), 3 indicating LEDs, a 8pin DIP socket, and a ceramic resonator for ATtiny (if you are using internal oscillator, you don't need it). I also added another LED to the ATtiny PB0 (pin 5) in order for quick debugging, but if you don't need or want it, just ignore it. The function of those indicating LEDs in ArduinoISP sketch you will upload later are:

9 (red, right): Heartbeat - shows the programmer is running
8 (red, middle): Error - Lights up if something goes wrong
7 (green, left): Programming - In communication with the slave

You can also use a bread board as shown in the 3rd picture.

Step 3: Programming Environment (Arduino IDE)

Now go visit High-Low Tech Group and download ATtiny 45/85 support hardware files and extract them to hardware folder in Arduino folder. Once this is done, connect the board to USB port of your computer and run Arduino and load ArduinoISP sketch from example. Check your board setting (see below picture) and COM port number and upload ArduinoISP to the JeonLab mini or Arduino.

As you can see in the 2nd picture, there are new hardware (board) options, ATiny45 and ATtiny85.

Now your JeonLab mini or Arduino has been transformed into a ATtiny 45/85 programmer!

Step 4: Program Upload

Using this configuration, you can upload your Arduino (of course, there are some limitations like pin numbers and memory capacity) sketches to the ATtiny 45 or 85 from Arduino IDE.

Here is an example shown in the captured picture with the famous Blink sketch. Note that you have to change the pin number 13 to 0 (or 1, 2 if you connected an LED there).

Please note the board should be selected as ATtiny 45 (or 85) (w/ Arduino as ISP).

You will encounter two errors as below but you can ignore them.

    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

Not only from Arduino IDE, but you can also program your ATtiny with WinAVR or avrdude from DOS command window using this set-up.



  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Gluten Free Challenge

    Gluten Free Challenge

We have a be nice policy.
Please be positive and constructive.




khazamma AVR programmer, is a good free fast hex file flasher - for free.

For more clear about how to load a hex file in microcontroller you can browse this video.

Serve para programmar ATtiny85/45 usando Arduino ou JeonLab mini.

You can program ATtiny13/15/25/45/85 with these shield also. I found one here its very cheap and easy no jumpers and breadboard needed.


I have done this very setup but, for a different project, using USBtinyISP to load the 328 chip with Arduino as ISP via Ardino-22, then go thru the selection process for the ATtiny85 board and then the selection of my program to upload via Arduino 1.0, the error msg coms back not able to find link or Serial not declared in this scope. What do I need to do to get it to work?

I assume that you have already checked the COM port and board setting. Actually I'm still using Arduino 0022 and haven't updated to v1.0 because I know there are a number of changes in new version which I'm not familiar with yet. If you are not familiar with the new version like me, I suggest to use 0022.

I went back thru and re-installed Arduino-22 and got the following:

avrdude: stk500_getsync ( ) : not in sync: resp=0x00

avrdude: stk500_disable ( ) : protocol error, expect=0x14, resp=0x51

Any suggestions?

Are you trying to upload a sketch to the ATmega328p, not ATtiny85/45? If so, you need to remove the resistor between the reset pin and Vcc which prevents auto-reset and you can not upload a sketch.

Bekow is what I am now getting. How do I enter the -F to ignore the lock_bit ?

avrdude: Expected signature for ATMEGA 328P is 1E 95 0F

Double check chip, or use -F to override this check.

Checked my chip, it is an ATMEGA 328P-PU, the lock_bit is 1E 95 51.

How do I update the IDE to recognize the difference?