Retired Product

This is a retired product. There is an updated version available: PGM-11801

Creative Commons images are CC BY-NC-SA 3.0

Description: Replacement:PGM-11801. The Tiny AVR Programmer has gotten a few improvements including a second ISP header, go check it out! This page is for reference only.

The ATtiny45 and 85 are a couple of really cool little MCUs but did you know you can program them in Arduino? That’s right, now you can shrink your Arduino projects down to “tiny size” by moving your code straight over to these small but capable ICs. The standard method for programming the ATtiny ICs involves a breadboard, lots of jumper wires and a hardware programmer, but David Mellis over at MIT Media Lab has simplified the process by laying out this handy USB programmer.

The Tiny AVR Programmer plugs directly into your USB port and provides a programming socket for the ATTiny45 and 85. Just slot an ATtiny into the socket, plug the programmer into your USB port and start up the Arduino IDE. After installing the proper board definitions, you simply program it the same way you would any other Arduino board. The programmer even breaks out the IC pins to female headers so you can easily prototype around the ATtiny without pulling and plugging it over and over. The ISP header is also broken out so you can use the programmer for other AVR microcontrollers!

Note: You’ll need to install the USBTinyISP drivers if you don’t have them yet, you can find them in the documents below!

Documents:

Recommended Products

Customer Comments

  • YES YES YES you guys are my heroes. I found this site around a year ago looking for attiny85’s. I bought some in my first order and through much trial and error got blink to work. I then made my own programmer shield using a ZIF socket and an adafruit proto shield. Still its never 100% reliable.

    OK now that I have come down a bit, can you also “adjust” or config the fuses with this? I need to add a crystal to a 85 and barely getting the thing programmed. The whole fuse thing makes no sense to me.

    Also anyone ever find a servo library that works with a 85. I want to make a little bug robot and I think the tiny servos would make great motors since they only need one digital port for direction and speed control.

    • Chartle, check out my ATTiny85-based insect robot: http://www.youtube.com/watch?v=g8gqLM02ccs

      • Thanks I think I need to get that book.

        Two quick questions, where did you find a servo library for the 85 and did you have to use an external crystal for timing?

        I found a servo library for the 85 but could never get it to even load and its my understanding that the pulse width timing for a servo requires the external crystal.

        thanks

        • I used the Servo8bit library: http://www.cunningturtle.com/attiny4585-servo-library/

          My ATTiny85’s in this project are using their 8 Mhz internal oscillators, not external crystals.

          • OK I may have found out the issue. These come out of the factory set at 1 mhz internal.

            I think based on this I can change the “fuse” through the IDE.

            Configuring the ATtiny to run at 8 MHz (for SoftwareSerial support)

            By default, the ATtiny’s run at 1 MHz (the setting used by the unmodified “ATtiny45″, etc. board menu items). You need to do an extra step to configure the microcontroller to run at 8 MHz – necessary for use of the SoftwareSerial library. Once you have the microcontroller connected, select the appropriate item from the Boards menu (e.g. “ATtiny45 (8 MHz)”). Then, run the “Burn Bootloader” command from the Tools menu. This configures the fuse bits of the microcontroller so it runs at 8 MHz. Note that the fuse bits keep their value until you explicitly change them, so you’ll only need to do this step once for each microcontroller. (Note this doesn’t actually burn a bootloader onto the board; you’ll still need to upload new programs using an external programmer.)

          • Yep that’s the one I used. If you scroll all the way down the comments you will see my post with my errors.

  • You guys did NOT totally copy my programmer, did you? ;) http://cl.ly/image/241w1U3R022u

  • Old post but new problems. TinyAVR won’t program on Windows7 64 bit with Arduino IDE. It used to work just fine. Now it gives several different errors. For days it was driving me nuts thinking it was the chip or my circuitry, until I plugged it into an XP machine. Works fine there. Plugged into Windows7 Arduino shows using Com3 but Win7 shows no com ports, just USB controllers. Tried using other avrdude exe’s. Tried all sorts of other drivers (including Sparkfun’s 64 bit driver). Forced creation of com ports, but could not make a port 3, only 4 or greater. I must have installed something on Windows that mucked up the settings. Typical Windows. Any suggestions?? Meanwhile, maybe this post will help someone who, like me, thought their programmer, code, or circuit was at fault. Guess again. Try a different OS before you go nuts.

  • I am building a small module and every component can run 3.3v or 5v except for one. Can anyone recommend steps to bounce from this 5v programmer (when plugged into USB) to a 3.7 LIPO battery. I don’t want to program in the dark and keep moving the ATTiny85 back and forth between my breadboard and this programmer. Any suggestions would be greatly appreciated.

  • Could you either tell how to fix the flippin' sync errors once and for all or replace these with the newer version? How many rabbit holes do I have to go down to get an answer?

  • I noticed this awhile back and thought it was a neat idea but delayed buying one. Now, when I want to work more with the ATTiny it isn’t available. I should have gotten it when it was available! Does anyone know where I might find a used one or want to sell theirs?

    • We are going to be selling it still, so don’t fret! We simply have revised the board, and it looks like they haven’t gotten the revision live yet. It should be going live in a week or so. Hope that helps!

  • I’m just starting out, and I don’t really know anything about this, so try to bear with me. in the hookup guide, it says that this can be used to program any AVR microcontroller. how would I go about, say, programming an ATmega instead of an ATtiny? where would I get the proper definitions for the controller and stuff, and how would I hook it up? in the hookup guide, it refers to holes that are nonexistent on the actual programmer for the outputs; I assume, however, I could just work around this by plugging the jumpers into the prototyping sockets and connecting the proper MOSI, reset, etc. pins to the pins on the other chip. would this be correct? sorry for all the questions, I’m sure some or all of them are relatively stupid. if there’s a tutorial for this type of thing, that would be great. I haven’t been able to find one, though.

  • When are you guys making more of these? I want to buy one.

  • What is the avrdude command in linux to use this…been trying all day…

    • avrdude -c usbtiny -p t85 -U yourfile.hex

      -p t85, t45, or t25 as needed.

      (or use it for the other processors via the 6 pin)

  • Could I use this as a icsp for any avr such as the atmega328

  • Would this work with the ATA6286C from Atmel? It’s an AVR 8-bit micro-controller IC that integrates RF transmission and LF receiving functionality. Here is a link to its page on their website.

  • After trying to make an Arduino ISP programmer for an attiny and melting a breadboard (and possibly almost damaging my computer) I decided to buy one of these. I bought it several months ago and it still works great. I kept getting error messages from the Arduino program at first, but I got it to work after following the instructions at

    http://webcache.googleusercontent.com/search?q=cache:HxkXceMAbiAJ:hlt.media.mit.edu/%3Fp%3D1695+&cd=1&hl=en&ct=clnk&gl=us

  • The MIT link with the tutorial is down, can someone help me by giving me any guidance.Thank you.

  • I’m trying to branch out from my Arduino and use these chips in new project an this be used to program the 14 pin ATtiny84?

  • Hey sparkfun, where can I get my hands on some of those headers on either side of the ic socket? (Hint, hint)

  • I bought this one recently from a local distributor. Works flawless when plugging Attiny85 onto the board. However, when I soldered a 3x2 ISP header and tried to program an Arduino Pro Mini, it didn’t work, saying; “Double check connections and try again, or use -F to override this check” Connections are fine, checked for many times.

    I connected the 3x2 ISP to straight 6 pin header on Pro-Mini in following way;

    ProMini - TinyAVR

    • BLK - GND
    • GND - SCK
    • VCC - VCC
    • RX1 - MISO
    • TX0 - MOSI
    • GRN - RST (reset)
    • Actually you can do this. You need the proper deffinitions. The one in the links above is terrible. Use the one found in the MIT tutorial http://hlt.media.mit.edu/?p=1695

      Or to just download without reading anything. https://github.com/damellis/attiny/archive/master.zip

      This enables you to upload directly from the programmer and fixes all the other errors that the bad boards.txt file causes.

    • This programmer doesn’t work in place of an FTDI cable or breakout board, i.e. you can’t use it to program an Pro Mini (or similar) over serial on the 6-pin header. You could use it to reburn the bootloader onto a Pro Mini (although this shouldn’t be necessary in normal use), but you’d have to connect to the MISO, MOSI, SCK, and RESET pins of the Pro Mini.

  • Is this compatible with AVR Studio?

  • Link to the tutorial is broken. Do you know where it can be found?

  • Please can anyone tell me how i can setup this tiny Avr on window 7 and what software did I need thanks

  • Hi,

    I try to program an arduino mini pro with the header … without success..

    I receive : “avrdude: stk500_getsync(): not in sync: resp=0x00” ..

    I used this configuration => http://arduino.cc/en/uploads/Hacking/image002.jpg

    Any suggestion ?

  • In using the tiny AVR programmer to program using Arduino 1.0, I normally get the following error while trying to upload the simple blink program: avrdude: verification error, first mismatch at byte 0x0080 0x3b != 0xff avrdude: verification error; content mismatch

    If the mismatch occurs at byte 0x100 or higher, the program runs. How do I resolve this problem? I have also tried Arduino 1.0.4. I am selecting UStinyISP as the programmer.

    • Having the same verification error programming a Arduino Pro Mini from the IDE. Noticed that you can workaround this easy when you: - enable the Output on upload on the preference page. - then let the IDE give it a try by Ctrl-U for uploading or Ctrl Shift U for uploading using the programmer. … now you will see the verification error - then copy the command line prompt at the top of the output to the clipboard. - then open a dos command promt - then past the commandline from the clipboard and press enter. … now the upload or buring a bootloader works fine …

      Do not have any idea about the cause jet. Any idea are very welcome.

    • I have experienced the exact same problem with an ATtiny45 using the tiny AVR programmer. I am using windows 7 on a fairly new Dell XPS 8500 and Arduino 1.0.5. The error occurs at various places in the code. Even with the simple “blink” program, it is very rare to get the program to completely download without an error. A more complex program doesn’t stand a chance. I am beginning to think that the fault is with the tiny AVR programmer.

      I see that more than a few people are having this same problem. I’m ready to sell the programmer back to Sparkfun.

    • Weird. It sounds like an intermittent communication issue. Maybe the ATtiny is loose in the socket? Alternatively, I wonder if there’s a program on your computer that’s occasionally scanning / using the attached USB devices and disrupting the communication (e.g. something that’s looking for connected cellphones or printers or something like that)? What operating system are you on?

      • The computer being used is a Dell Vostro desktop, I think that the problem is one of insufficient power being outsourced from the USB port. If a USB 3 port is used then the programmer does not start to fail until the program reaches approximately 2000 bytes. I am using Windows 7 operating system. When I get time, I want to supply the ATtiny85 on the programmer with an external power supply.

        • Interesting. The programmer shouldn’t need much power itself. Do you have anything connected to it (besides the ATtiny)?

  • Reset and power solder pads? Really? Tom used jumper pins, so was it a conscious decision to build in obsolescence?

  • every time i try to install the driver, the installation stops and gives me the error “the third party INF doesnt not contain digital signature information” any ideas as to what im doing wrong?

  • could i use this programmer to upload the assembler file mentioned in this link: http://elm-chan.org/works/sd8p/report.html

    it says it need a HVSP programmer.

  • Will This work on the ATtiny25?

  • I’ve had zero success getting this programmer working on OS X Lion. Mainly driver issues with the USB ports as far as I can tell - although a recently bought Arduino Uno was entirely plug-and-play on the same machine.

    Also, since it seems there are many, many possibly pitfalls involved in setting up the Tiny Programmer to work with the Arduino IDE on OS X, the set of instructions and workarounds available on google is limited but overwhelmingly self-contradictory. If you want to use Arduino to program an ATTiny chip using the High-Low attiny library, I’d skip buying this board and instead buy an Uno to use as an ISP.

    • Hmmm, you shouldn’t need any drivers on OS X. What error message or behavior did you see when you tried to use it?

  • Sparkfun team and fellow enthusiasts, I bought about 10 ATTiny85 20PU chips off of ebay and then bought this “Tiny Programmer” to program one of these atmel chips thru it. when I upload the “blink” example (using 1 pin as the output), I get the following error at the time of upload. Any help you can provide at the soonest please. Thank you in advance

    “ Binary sketch size: 836 bytes (of a 8,192 byte maximum) avrdude: verification error, first mismatch at byte 0x0100 0xa0 != 0x63 avrdude: verification error; content mismatch ”

    • Weird, I haven’t seen that problem before with these. Does it always happen in the same location (byte 0x0100)? Does it happen with all of the chips?

  • Ok Just got one and I wish you used the same female headers that everything else uses. The ones on here, I think are called machine pins, and they only seem to handle 24 or so gauge wire not the standard stacking headers.

    I was thinking of making kind of a shield for it I could pop on or off since I understand you can’t always program it hooked up.

  • Like Krb686, I can’t get the Tiny Programmer to work.

    I followed all the instructions on how to install it on Window (32-bit), installed the drivers via Windows Device Manager, and Windows now recognizes the programmer as “LibUSB-Win32 Devices->USBtinyISP AVR Programmer”.

    I also am running the Arduino 1.0.3 environment, and have installed the attiny files into the Arduino\hardware\attiny folder, and the Arduino Environment shows all the different types of ATtinys under Tools->Board.

    I’m tried several different brand-new ATtiny85’s, but all give the following error when I try and program them:

    avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.

    My Arduino environment works fine programming several Arduino UNO’s and Arduino Pro Mini 328’s (using the FTDI Basic Breakout).

    Can anyone figure out what I am doing wrong?

    • The board files in the link above are incomplete. Use the ones in the MIT tutorial. http://hlt.media.mit.edu/?p=1695 That fixed this problem for me.

    • If you look through the tutorial by MIT under the Connecting Components, they suggest that you don’t have anything plugged with the microcontroller. This error is usually caused by this.

      “You can connect components to the microcontroller by plugging them into the adjacent headers. For example, the photo above shows an LED connected to pin 0 (and ground). Note that you might have to disconnect the components before you can upload a new program to the microcontroller. Otherwise, you might get the following error:”

      avrdude: initialization failed, rc=-1
          Double check connections and try again, or use -F to override
          this check.
      
      • Hey I never got this issue solved. I’ve already posted a bug report on the github, to which none of the responses are yet helpful: https://github.com/damellis/attiny/issues/19

        I’m using the board definitions from Github, I’ve tried both the 32-bit and 64-bit USBTinyISP drivers (only the 64-bit seem to install properly), my IDE is 1.0.5, there’s no components connected whatsoever, the ATTiny85 is known to be working, the ATTiny is plugged in the right way, board selected is ATTiny85 1Mhz internal, programmer is USBTinyISP…I really don’t what else to do here. This board seems to have been a waste of money. Error is still initialization failed, rc=-1. Here’s a link to the full error. http://i306.photobucket.com/albums/nn255/Krb686/tiny_programmer_error.png Can you possibly help? If not, can I get a replacement? Cause if nothing works, then the board must be put together wrong, or the ATTiny84 on the board is bad. Also, the LED comes on orange in the bottom corner of the board if that means anything.

    • Hmm, there are some physical things that could be wrong: is the chip in backwards? are any of the legs of the chip bent underneath instead of actually inserted in the socket?

      Can you enable verbose output during upload (in the preferences dialog) and post the full text of the messages you get when trying to upload? There might be more information that helps debug what’s happening.

      The “rst” (reset) solder jumper isn’t soldered together, is it?

  • So I just bought this thing, got the IDE running, installed board definitions, plugged in the ATTiny85, now when I try to upload it gives: intialization failed, rc=-1 Double check connections and try again…

  • Great product! Installed the programmer files in Arduino and was up and running in less then 15 min. 3 ATtiny85 programmed and circuit tested in 20 min. I have earlier tested the “Arduino ISP” way. Works fine but the AVR programmer is simpler (not a lot o wires). Testcircuits can be built on the programmer.

  • This works fine with Arduino software 1.0 but will not work with 1.02. In 1.02 it tries to load hardwareserial.h which will not compile with attiny selected. An issue with Arduino software V1.02. Haven’t tried with V1.03 yet. Also with windows 8 Pro you need to disable driver signature enforcement to install driver.

    • I just checked the programmer out with V1.03 and it works fine; appears the problem with V1.02 was fixed with V103.

  • This is a novice question, but could one program an ATTINY-10 (or similarly small Atmel chips) with this programmer?

  • Driver doesn’t want to install.

    1. If you run install_*.exe it gets a “could not open pipe for writing: error code 2”.

    2. If you try to install via the .inf, “The inf file you selected does not support this method on installation”

    3. Windows usb Plug_‘n_Pray doesn’t find a driver.

    I tried both the x64 and x86 links and both install files in each.

    Win 7 pro x64, 16 GB ram, 4.1 Ghz I7, 3 TB of SSD in raid 5 and raid 0.

    EDIT: after looking at Limor’s site I found the problem. My somehow when I plugged in the USBTiny the popup got squashed. The Inf won’t install from anywhere other than the device manager or the USB Plug-N-Pray wizard with this package, although some documentation implies there is a differently packaged version of the drivers that will. If you have the same problem you can use the device manager tool in Control Panel to manually install the driver on the unrecognized device.

    http://ladyada.net/make/usbtinyisp/drivers.html

    http://www.ladyada.net/make/usbtinyisp/download.html

  • Those cheap 8-pin sockets are not rated for all that many insertion cycles, why not use something better?

  • I am guessing that the VCC point near the 6pin header is there to disable 5v to the ISP header pin?

  • I bought this after I spent 2 hours not communicating with my aatiny85, which was wired to my avr_isp2 programmer via a breadboard. Hopefully this reduces the variables of where I could have messed up! :)

  • You can actually use a ATtiny45 instead of ATtiny84. Cheaper, and saves a crystal (ATtiny45 has 4xPLL to generate 48MHz clock internally): http://tequals0.wordpress.com/2011/09/26/attiny45-based-usbtinyisp-programmer/

  • How does the onboard ATtiny84 handle USB? Looking at Atmel’s website, that chip doesn’t have built-in USB support.

Customer Reviews

No reviews yet.