Creative Commons images are CC BY-NC-SA 3.0


added to your
shopping cart

In stock 36 in stock
14.95 1+ units
13.46 10+ units
11.96 100+ units

Description: This new version uses an SMD 5x2 header. This is a simple to use USB AVR programmer. It is low cost, easy to use, works great with AVRDude, and is tested extensively on a Windows desktop. Based on Dick Streefland's USBtiny and Limor Fried's USBtinyISP. This is a low-cost programmer designed for those on a tight budget. 

This programmer works really well for ATmega168 and ATmega328 and should work with all the AVR micros supported by AVRDUDE.

This board is buffered and power protected so that you can do some really evil things to the programmer without killing it. It is fast! One of the greatest features of this board is the ability to power the target (up to 500mA) from the programmer.

Note: This product is a collaboration with Limor Fried. A portion of each sales goes back to them for product support and continued development.

Note: The drivers link has been updated below to be Windows 7 compatible.


  • Standard AVR ISP programmer
  • ATtiny2313 with USBtiny firmware preloaded
  • Buffered output
  • PTC fuse protected power
  • Programmer can power target
  • Supports ATmega168/328 and many others
  • Two status LEDs
  • Both 10-pin and 6-pin targets supported (cable included)


Replaces: PGM-09231

Comments 208 comments

  • A proper solution for running under Windows 7, including 64 bit, without turning off driver signing.
    1. Download the windows driver from sparkfun, and unzip it somewhere.
    2. Download a recent libusb release from sourceforge:
    and unzip it somewhere.
    3. Take the libusb0.dll and libusb0.sys files from the sourceforge bin\amd64 directory, rename them to libusb0_x64.dll and libusb0_x64.sys, and replace those files in the sparkfun driver directory.
    4. Replace the sparkfun libusb0.sys and libusb0.dll with copies from the sourceforge bin\x86 directory (renaming the sourceforge libusb0_x86.dll to libusb0.dll).
    Your driver is now ready to go. Windows will complain during the install that the drivers aren’t signed, but they actually are. Once installation is done, Windows will happily load the new drivers.
    Sparkfun: please update those four files in driver zip file. That will fix it for everyone.

    • Thank you for your help, works fine on Win7-pro 64bit.

    • I tried this using both the amd64 and ia64 drivers neither worked and kept giving me “Driver not intended for this platform”.
      For anyone that wants it (hint hint, sparkfun), here is a zip with the updated libusb drivers and the Signature override tool i used to get it working under vista x64:

    • Please update the driver package that is downloaded from this site. Having to mess around renaming .dll files ain’t SparkFun.. It’s SparkFrustrating. :-O

    • Is there a driver for mac?

    • Is this programmer ok for ‘AVR atmega644’ microprocessor? Thank you

    • Thanks BeagleBoy for this help. I was so inspired by this that I made a very detailed video on the process:
      Hope this helps.

      • Thank you phoddaniel and BeagleBoy; very helpful instructions. However, when I completed all these steps, I got a dialog box saying that this version of Windows (7, x64) will not run drivers that are not digitally signed. Help?
        Edit: Nevermind, I didn’t read all the comments. Drivers successfully installed. Now I just have to figure out why avrdude can’t find the device.

    • I can confirm that this combination works fine with Windows 7 Pro 64bit, without any problems or hacking with driver signing. Thanks!<br />
      <br />
      Also I had to drop the “-B 1” -option to get this to work with avrdude 5.10, but so far I’m very pleased with this cheap and cute thing!

      • Was just trying this myself. The ‘-B 1’ didn’t work when using the chips internal oscillator @1MHz, but did work when using it at 8MHz, and also when using an external oscillator @16Mhz.<br />
        <br />
        ATmega168 chip/AVRdude 5.10.

    • That should be
      3. … from the sourceforge bin\amd64 directory …

      • Argh! The preview showed the punctuation, but the final post doesn’t have it.
        So make it: bin backslash amd64 . Sheesh.

  • Hardware Setup

    The Pocket AVR Programmer can be used with one of our old tutorials “Lecture 2 - How to Get Code Onto a Microcontroller The tutorial was originally referring to two other programmers and not the AVR Pocket programmer. The circuit had to be modified a little to get it working. First, you need to build the circuit on the breadboard. I didn’t need to add the voltage regulator to my setup since the AVR Pocket Programmer can provide the 5V. Make sure that you flip the switch to “Power Target.” I did use two 0.1uF decoupling capacitors in the circuit, LED for blink, LED for power, reset button, and associated resistors as explained in the tutorial. One thing I did was to add a 16MHz crystal on pins 9 and 10 of the Atmega328p.

    Install Driver and WinAVR

    Make sure that you install the driver for your Pocket AVR Programmer. They can be found in the documents section under the Windows Driver link. After installing, the Pocket AVR Programmer will come up as a new tree under libusb-win32devices -> USBtiny.

    Also, make sure that you are installing the latest version of WinAVR For more information on Downloading, Installing, and Configuring WinAVR, check out this pdf =>

    Modifying the Make File

    I had to do some modifications in order to use the Pocket AVR Programmer in the old tutorial. I was using the ConText editor [] instead of Programmer’s Notepad or JFE that was explained in the tutorial to modify the Make File. The code in the ConText editor was highlighted using the C/C++ option to read the file easier. Under the section that says “Programming Options (avrdude),” I had to modify two lines to get the Pocket AVR programmer working:

    1.) In line 200, change:

    AVRDUDE-Programmer = stk200 to AVRDUDE-Programmer = usbtiny

    2.) In line 207, change:

    AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex to AVRDUDE_WRITE_FLASH = -F -U flash:w:$(TARGET).hex.

    The first modification was to set the programmer to use the Pocket AVR Programmer. The second line is to override a certain check by avrdude. I found this in the comments but didn’t run into this issue before and after modifying line 207. Keep in mind that # comments out a line.

    Compiling Hex File

    Open up the Command Prompt. I placed the blink_1MHz on my desktop but you can place it anywhere in your computer. Just make sure that you are in the same directory in the Command Prompt. Make sure that you know how to navigate through folders => After entering the correct directory, type make all to compile the hex file. This will output a lot of files in the blink_1MHz folder. The most important is the .hex file.

    If you want to change the c file, you must modify the c file, type make clean in the command prompt, and type make all again.

    Setting Fuse Bits, Uploading Hex File, and Setting Lock Bit

    You should try looking at the tutorial for installing an Arduino bootloader => This will help in getting the correct connections from the programming cable to your breadboard Arduino. I double checked with a multimeter to check the wiring under the continuity setting. Also, the section under “Uploading Code - Hard Way” will be useful when in the Command Prompt to set the fuse bits, upload the hex file, and set the lock bits. The syntax is sensitive and you can have problems if you don’t write the correct commands.

    Since you are in the same directory already from compiling the hex file in the Command Prompt, you just need to type the two lines as stated in the tutorial to set the fuse bits and then upload the hex file and set the lock bit. Make sure that you change the hex file in the line …flash:w:hexfilename.hex to …flash:w:blink_1MHz.hex

    For more information, I recommend checking out the avrdude manual on the other options =>

    After doing all this setup, I was able to get the Atmega 328P microcontroller to blink with the Pocket AVR Programmer. Hope this helps.

    It is my opinion that the PCB differs from the circuit diagram on a critical point.
    The ‘Power Target’ switch (on my board) is NOT wired as per the diagram. It removes VCC from both the ISP connector AND the 74LC125 buffer IC.
    This means that your target device still gets 5 Volts via an internal path through the 74LC125.
    No big deal, except if you plug in a target which uses 3 Volts only.
    My $50 Seeeduino Film was instantly destroyed!!! Not very happy at all…..

    • Mine operates the same way. When I flipped the switch to “No Power” I assumed that it wasn’t pumping 5 volts into it. Which, scared the crap out of me, BTW. I unplugged my walwart and shorted the power bus to discharge my huge filter caps. The LED matrix went out as expected, only to come back to life as I removed the wire shorting the bus. I’m glad that the programmer is at least buffered and power protected…

      • This error has been resolved. I ordered last month and finally flashed a few (hundred) boards over the weekend, weary of this information. “Power” gives 5V, and “No Power” gives no power. All perfect!

        • Actually the problem has not been resolved. What happens when you select “No Power” is TARGET-PWR still connects to the programmer through a 22k resistor to CTL. CTL is pulled high by the programmer when in a non-programming state (in order to tri-state the buffer IC). Thus the target board is powered via the CTL pin (which is at 3.3V) through a 22k resistor . The programmer needs to be redesigned to resolve this issue.

          • It’s been a long time since looking at hardware specs, but in case someone is searching for the same information I am, I’d agree with TravisF, based on looking at the schematic/board layout (may2013) it seems sensitive 3.3V targets are ill-advised….I do not own this board currently, so I can’t verify the below, it comes from looking at the design docs. 1 - Cutting the trace between JP1 pins might work (disconnects from USB 5V power so entire board could be 3.3V powered, but you lose fuse protection on VCC, and a target may not be able to supply enough current) However only 74AC125 buffers are spec’d to operate at 3.3V (schematic has 74ACT, while picture shows 74AC) Additionally, this presumes USB data signals will not cause issues on ATTINY if they end up at 5V…I found a reference that they were supposed to be 3V?

            2 - Moving the switch to “not-powered” does not seem to prevent issues. Specifically as noted by TravisF/AffordableTechnology, CTL when driven from a 5V powered ATTINY will may either damage the 3.3V powered 74xx125 or leak through the 74xx125 & 22k (R10) to the target. If your device is 5V tolerant while running at 3V or not leaking much current through R10 you may not see problems. Really what “not-powered” means in this context is USB power is not directly providing power to a target, and the 74xx125 buffer is powered by the target’s VCC. I would presume this is to avoid USB current limits more than to allow 3V compatibility.

            3 - FYI if you’re considering cutting the CTL trace keep in mind that the 74xx125 is only spec’d to allow inputs VCC+0.5 so it could still be damaged by running it at 3V while the ATTINY is at 5V

            So in short it seems to me that if you need to program a 3V sensitive device, you may wish to use a logic level shifter.

  • I’m glad I got mine before you ran out. Thanks for making the device available in assembled form.
    My note on Linux compatibility: Running as root, it worked out of the box, when connected to the ISP port of an Arduino Uno under Ubuntu 11.4.
    It is possible to use avrdude with the programmer without being root. Instructions are available over at

    • Don’t know if this poster is still looking, but for anyone else: I don’t have this programmer, but for my USB Pickit2, I had to make a udev rule. use lsusb with device plugged in to get idVendor and idProduct. Create rule in /etc/udev/rules.d such as 51-avr.rules with text: SUBSYSTEM==“usb”, ATTRS{idVendor}==“xxxx”, ATTRS{idProduct}==“yyyy, MODE="0666”, OWNER=“me” GROUP=“myGroup” xxxx is the vendor id from lsusb, yyyy is product from same. ‘me’ is your user name ( if you want to restrict ) group is one of your groups ( like users ). Google for udev rules for more info. Hope this helps!

    • “sudo arduino ide” works on ubuntu 12.10

  • Getting this working with Windows 8.1 was vexing. Solution: beta signed TinyISP driver found on Adafruit’s Trinket forum.

  • Just received this item, but 1 issue. Why is the 6 pin ISP connector cable on the ‘wrong’ side ? Now i have everytime a cable over my project or a fold in the cable.

    It works out of the box with Mac OS X Mavericks 10.9 and CrossPack - AVR - 2013 12 16.

  • This worked on my Mac before I installed OS X Mavericks, but doesn’t now. I’ve spent hours trying to get it to work without luck.

  • Just connected successfuly with avrdude on Windows 8! Instead of using the suggested windows driver, I downloaded Zadig which is a very straightforward installer for the libusb driver. (Download: After running it, I connected the Pocket AVR Programmer and it appeared in Zadig window as an unknown device. Then I selected the libusb-win32 driver and clicked “Install Driver”. And that’s it! no singed-driver problems etc.

    • Wow- this is a fantastic fix. Thanks for sharing this with us. I’m going to add this to the product GitHub repo.

  • Do not buy this product. It really sucks and the support is awful. You will get initialization failure is most cases and you will have to search for ages until you find what is happening. Go buy an ATMEL programmer instead.

  • Please fix this issue SparkFun! Such an easy way to avoid frustrating your customers!


  • 64bit Win7 Solution!!! I am running Win7 x64 ultimate and trying to program some ATTiny84/5s with Ardiuno 1.0.1. After much frustration, stumbled upon this updated driver today and it just plain worked for me, no workarounds, no hassle. I unzipped the archive and updated the ‘failed’ earlier driver install attempt - once update was complete, shows as USBtiny in Device Manager. I was expecting a com port to show up but figured out all I had to do in Arduino was select USBtinyISP as the “Programmer”. TaDa!! Man am I pumped! Thought I was going to have to dance around all the other nonsense I was reading about to make this (now) super cool programmer work in Win7x64. Hope this helps others out there!!

  • This thing is freaking AWESOME! I had some problems in the beginning, when I first started using this programmer. I used my Arduino Uno SMD as an ISP programmer for a while to program ATMEGA’s and ATTINY’s while trying to get this thing to work properly. I had used it many times with Arduino 0022, but it was time consuming trying to find the .cpp and .hex files after compiling. But with the release of Arduino 1.0, it’s a breeze to program AVR chips. You don’t even need to use the command window. Just select ‘USBtiny’ from the list of programmers under ‘Tools’. I’ve personally programmed the following with this programmer: ATTINY85, ATTINY84, and ATMEGA328P (both factory fresh and preprogrammed w/ bootloader). It works every time.

  • I have windows 7(x64) pc and its not detecting the pocket AVR programmer. Can anyone help me?

  • Totally agree with the guy who said this was SparkFrustrating. I finally upgraded my laptop to Windows 7 and now have a bricked programmer.
    Following Beagle Boy’s instructions, the downloaded driver will not install, or I just do not know how to do so. Double clicking on the pocketprog_x64 or pocketprog files results in a dialog saying there’s a security catalog error.
    Come on SparkFun. A year and you can’t get this fixed yet?

    • The instructions here worked:
      How difficult would it be for SparkFun to update their drivers so that customers don’t have to jump through hoops to find proper instructions and download software from multiple sources?

  • SparkFun really needs to release a Windows7 driver package for this device. Pretty shameful that they haven’t done that yet.

  • Windows 7 driver issue.77777
    loaded drivers from this web site and WINAVR,
    Kept getting “could not find usbtiny device"
    Found windows 7 driver @
    Now all works fine:
    Sparkfun howabout updating the driver info for us Windows 7 people.

  • For anyone still struggling to get the drivers working with Windows 7 64 bit, just download the libusb drivers from BeagleBoy’s post (first one). Unzip them, and run bin/inf-wizard.exe. It will generate an .inf driver file which it then installs for you. Windows complains that it doesn’t know who made the driver, but it still installs and works fine.

  • With going to the ‘trouble’ of using SMD, why use a “5x2 header” instead of a 3x2 as Atmel themselves use now?.

  • Reminds me of my Bus Pirate. It is my favorite AVR programmer for the moment :-)

  • I had a very difficult time getting this to work with mac osx mavericks. I ended up installing xcode after I did the CrossPack install to get it to work.

    Now it works great!

  • What is that used for ?

  • Can the pocket programmer be used as a serial connection to a PC. If so I would like to use it with my bareduino to obtain data via the serial monitor. Any help or directio would be great thanks.

  • I bought this in order to help someone get started with AVR programming. Not that I’m any expert in that area, but I wanted to help. It works just fine on a CentOS 6.5 box that has the avr-gcc toolchain on it and the libusb packages. I’ve noted that logic levels are intended for 5v parts and I’d need a level shifter and probably a voltage regulator of some sort if I want to use this on low-voltage parts. I also have an Olimex programmer (the ISP-500) which can work with low voltages.

  • The sparkfun driver works fine with windows xp. I spent hours trying to get it to work with Windows 7 but it kept identifying it as an “unknown device” and refused to do anything. I spun up a windows xp vm and everything worked.

  • Hello everyone,

    Is it possible to use the Pocket AVR Programmer to burn a boot loader to the Arduino Leonardo?


  • I strongly discourage purchasing this product. I used one for the past 9 months on my mac to program a variety of custom arduino based boards. It was a constant source of frustration with myriad bugs/annoyances. Just one example – you cannot plug the thing in and expect it to work correctly if you use a virtual machine (e.g. vmware fusion) and it’s open. Another real annoyance is the 5V power. All my boards were 3.3V. Yes it’s hackable – I cut a trace and added a 3.3V LDO to the board. The biggest problem with this tool though is that it’s simply unreliable. I’d program my target several times without issue and then out of no where it would stop working. I’d have to restart my machine/unplug replug a few times. I could never be sure if my board was at fault or if the programmer was at fault (always annoying and frankly often it was the programmer). The documentation is terrible – I couldn’t, for example, figure out what the two status LEDs on board actually mean. Finally one day the thing just stopped working all together. No idea why. Won’t program an off the shelf arduino board or mine. I bought the Atmel AVRISP mkII and I highly recommend it over this product. Yes it’s 2x the cost, but it’s worth it. No screwing around with hacking the programmer, it’s MUCH faster, and it’s much more reliable. Haven’t had to spend anytime debugging my programmer instead of my board. Long story short it’s worth the $39 for the atmel hardware.

  • Hello, i install Zadig driver but then i go to cmd and write avrdude -c usbtiny -p m324p it write Error: Could not finde USBtiny device <0x1781/0xc9f> . I think i do something wrong then i install drivers or i need to do something more, Please someone help.

  • Adafruit’s AVR (aka Limor Fried’s other USBtinyISP AVR) can’t write to an Atmega 1280/1281/2560/2561. Does anyone know if this one does?

    • Basically this is just a clone of their programmer so it would have the same issue with the larger memory devices. That being said, I’ve successfully loaded the bootloader on an Arduino Mega2560 which uses the 2560 so results are a bit spotty on those chips.

  • Has anyone gotten this thing to work with avrdude on Linux? I’ve tried 6.0.1, 5.11.1, and 5.5 (with an ATmega162V), but I get the same error: “avrdude: programmer operation not supported”

    • I had the same error “avrdude: programmer operation not supported” because the reset wire was not well connected to the ISP cable. Now this programmer is working in the Linux Slackware 14.1. I have installed this packages avr-binutils, avr-gcc, avr-libc and avrdude version 6.0.1. PS: I am using atmega328p

  • I have a older version of this product which is PGM-09231. Please help me installing this in win8. I worked with it very fine in win xp. Now i need someones help…

  • Is this programmer able to program data into an external EEPROM (like 25LC320 or AT25320)?

  • For anyone who gets the “initialization failed, rc=-1” error, and has “Power” “D-” and “Stat1” lit up, try replacing the cable first!

    After a month of trying to figure out why I kept getting the rc=-1 error, I jammed a few 2-row male headers into the cable and went to town with a continuity tester. Sure enough, the MOSI on the 6-pin plug was open. I stuck a few male-male jumpers between the 10-pin plug and my target AVR and bingo-presto, it worked perfectly.

    Evidently, the ribbon cable was defective. I suggest buying a spare, or just making your own. I hope this helps someone out there. Now I’m off to find some ribbon cable-making doohickeys…

  • does this include the usb cable if not does it use mini usb??

  • Does this work with atmega 328 and atmega328p ?

  • Hello,

    OMG this Pocket AVR programmer drives me crazy.I followed all instruction step by step but it still doesn’t work…

    When I type “avrdude -c usbtiny -p m32” the result is

    C:\Users\Sharshenbaev>avrdude -c usbtiny -p m32

    avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you. - OS Win7 64bit - target Atmega32A Could anyone help me,please?

  • I plugged the PP into my Arduino and was able to download the boot. I was at first discombobulated by not seeing any COM port, but that didn’t seem to matter. However, when I plugged in a virgin ATtiny13 and tried to download the bootloader, I got an error message. Any suggestions?

  • Can it be used to program a 8051 based ucontroller!!

  • This doesn’t work. 3 people at our hackerspace have spent hours on this programmer. do yourself a favor - find something else. drivers flash blind cmd windows then nothing.

  • I added a dot to my ribbon cable connector on my AVR programmer so I quit hooking it up backwards.

    Also, the connector doesn’t fit on an UNO for flashing the USB driver. I used female/male header'ed breadboard jumpers.

    • I like this idea, and will get out my cable to do this right now. If you look at the plastic very carefully, you’ll notice a small arrow denoting pin 1, but it’s difficult to see and obscured by the ribbon cable. Thanks for the tip.

  • can be this used to program an Arduino UNO 16u2 R3?

  • Works with Amtel studio 6 Do this Skip to the end of the video they guy makes a lot of mistakes. Short Guide in AS6 Tools External tools… add title: Pocket Prog (whatever) command: avrdude.exe (have avrdude installed) Arguments: -c usbtiny -pm328p -U flash:w:$(ProjectDir)Release\$(ItemFileName).Hex:i (this is for atmega328p chip) Works on Arduino nano. Check use output window apply OK.

    New project in AS& GCC c executable project Select Chip atmega328p enter code F7 to compile under tools click pocket programmer. That will program the chip.


  • Hi, Is it possible to burn a bootloader for arduino PRO 3,3V/ 8MHz With this unit?? I am planning to make a board with a xbee onboard (in a socket so I can remove it while burning the bootloader), the RX and TX for the xbee Will be connected to other pins than the regular RX TX pins. I want to program my sketches with a FTDI. There Will be no other components that can handle 5V.

  • I got this to work a few times over a month or so, but today when I connect it, the computer appears not to assign a port to it. USBtiny shows up in Device Manager, but I see no COM port assigned, and when I run avrdude, I get the following error (which seems to have plagued a few other users):

    avrdude.exe: ser_open(): can't open device "\\.\com[anything i try]": The system cannot find the file specified.

    I’ve tried multiple ports. Anyone know what I can do? Should I buy an Atmel programmer and give up on this device?

    • Silly me. I was specifying my programmer as stv500v1 when running avrdude (forgot to update my makefile). If anyone else makes this error, use this as a guide:

      avrdude -p atmega328p -c usbtiny -U flash:w:main.hex -b 19200  -vvvv

      (Actually, I find that I can specify -P com8 or whatever port I want and it shall be disregarded (but execute without problem) since AVR Pocket Programmer apparently does not make use of a COM port.)

  • is this supported on linux ?

  • Hi, I followed all the steps given by BeagleBoy but still I am having an error. Could not find USBtiny device . Why am I getting the error. I double checked all the connections

    Thanks for the assistance.

  • I have been using this with Ubuntu 12.10, AVRdude and Arduino IDE quite happily. Worked out of the box, awesome possum, rock ‘n roll etc. Thanks for a great tool!

    A couple of tips: 1. Make sure the “Power board” switch is in the correct position. 2. Make sure no other components are connected to the programming pins of the MCU.

    • Also, the connector diagrams show the way the male connectors on the board should be wired up. I initially thought that it was a diagram of the face of female connector. Wasted a good deal of time on that little misunderstanding :/

  • Nothing I have been told to do has worked for Windows 7. But I saw a forum that said to download the USBtiny driver from ( After downloading this driver the programmer began working perfectly on my Windows 7 OS. This might not fix it right away because I tried a few other things first that may or may not have helped. Hope this helps everyone.

  • HELP PLEASE! Does it support atmega644?

  • Hi, Is this ‘Pocket AVR Programmer’ OK to use for programming AVR ATMega644? Thank you

  • Hi guyz,

    need help. can this program the olimex AVR 40 pin protoboard ? It has a ICSP port but the connection pins seems the same as ISP. Any help would be appreciated. Thanks

  • I have an issue with the programmer… I need to hold the reset button in order to make the programmer works. If I do not hold the reset button, I sometimes get the message ‘initialization failed, rc=-1’ and sometimes it starts to work but then I get ‘Yikes! Invalid device signature.’

  • My notes on using this programmer - both on Mac and Windows, as of Jan 2013:

  • I bought this programmer a few months ago and had difficulty recently getting it working with my Mac. However, it turned out to be “user error”. I needed to flash my Uno for use with Grbl. Initially, I was getting a “initialization failed, rc=-1”. It turned out that I had connected the cable incorrectly to ISP port of the Uno. The cable should point toward the reset button of the Uno. Hint, if you are using the AVR Pocket Programmer to power the Uno and the power LED doesn’t light, then you have hooked it up incorrectly. Also, I was getting verification errors with Avrdude. The Grbl wiki suggested using the ‘-D’ option. Once I removed the ‘-D’ everything worked perfectly. Here is my setup:

    Mac OS: 10.8 Avrdude: Used the avrdude supplied with Arduino IDE 1.0.2

    AVRPATH=/Applications/ sudo $AVRPATH/bin/avrdude -C$AVRPATH/etc/avrdude.conf -pm328p -cusbtiny -Pusb -Uflash:w:grbl.hex

    I hope that helps anybody deciding whether they want to purchase this programmer to use with their Mac.

  • Just spent a while trying to get the drivers to install on windows 8 x6. Tried a few of the different hacks out there and they didn’t work.

    Finally got the driver to install by restarting windows 8 with the “disable digital signature enforcement” feature to by pass the signature.

    I tried with sparkfun’s driver download and it did not work even with the signature enforcement disabled, then I tried with LadyAda’s usbTiny driver download and got it working.

  • This programmer works fine on Debian Linux 64 Bit with the Arduino ide IF you run it as root.

  • It works great for OSX 10.7 and Ubuntu 12.04

  • Will this work for the Beginning Embedded Electronics - 2 tutorial?

    • Hello me, I’m you from the future. It does work, and also you will have a lot of fun with this.

      • Hey AsaJ from the past,

        I’m working from the same tutorial. What did you change the AVRDUDE_PORT in the makefile to in order to get the chip to talk via USB? I’ve tried USB, LPT, and COM. None of them work. I have the driver installed.

        • Hmm, can’t help you there. I kinda skipped the makefile stuff. Originally I did work directly through AVRDude, compiling and uploading code. Even then I avoided makefiles. Lately I’ve been using the Arduino IDE’s “Upload using programmer” feature. Checks, compiles, and uploads in one fell swoop. Are you getting an error from AVRDude?

  • On Mac OS X using AVRDude from within Eclipse (with AVR plugin and CrossPack-AVR) works like a charm, no driver needed! Just plug and go. On Windows XP Eclipse (with WinAVR), you need to install the driver. But I first got an error where it couldn’t find the USBTiny. If I unplug and replug the programmer, it works for a while. Then it won’t find it again. A simple unplug-replug will make everything work again. Haven’t tested under Linux yet. Overall I love it, with the unintrusive small form factor, has both ISP plugs, and target power. Makes things so much easier!

  • I also recommend to upgrade the firmware in this thing to V1.6 which seems a bit faster and gives a lot less verification errors. The new package can be found here: (program the .hex file from the usbtiny-1.6\usbtinyisp folder).

    You can easily turn most avr into a basic programmer to update your PocketAVR via the “Not ISP” ISP header.

  • Is there actually any use to JP1? When I look at the Eagle files it seems as if it’s always “closed” anyways.

  • Sorry if this is a stupid question but i have the avr programmer driver installed n everthing but i have a question

    How do i burn the arduino mega 2560 bootloader back to the arduino using winavr just incase i modify the bootloader?

  • I purchased this to program some ATTiny2313s. However, I don’t see how to program it with this programmer, as the socket on this cable does not match up with the pins on the ATTiny2313. How do I use this cable to program it? edit- sorry, looks like I got SOIC package ATTinys, which is new to me. My mistake.

  • This programmer worked flawlessly for me, using Ubuntu 11.04 and the avrdude method to burn an Arduino Uno bootloader. One little note: you have to be in super user mode, so the comands are:

    sudo avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m


    sudo avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:optiboot_atmega328.hex -U lock:w:0x0F:m

    I don’t know how to tell the Arduino IDE to issue an external command in super user mode, so I can’t use the IDE to burn. However, now that I got the command line method working (3 minutes after unpacking the programmer), I prefer the flexibility of specifying the hex file anyways. Great device. Previously, I spent two weeks trying to burn the bootloader with the “Arduino as ISP” method, but with this device, it worked right away.

  • I am able to get this hardware to install on my Win7 64bit, but as far as actually using it with the Arduino software, no luck.

    It doesn’t show up as a COM port, and using Arduino 1.0’s “upload using programmer” gives me errors such as:

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

    Can anyone who has actually used this device with the Arduino software, please post a video of the full usage? Uploading directly to any atmega chip.

    That would help me a lot, and I’m sure many others out there that are at my not-expert level :)

    • have you checked the tutorial?

      • yeah, but the problem is that the AVR programmer doesn’t show up as any COM port for me

        • Not sure if you still need help but… in Arduino 1.0 you need to choose USBtinyISP as the programmer. Also make sure that your libusb is loaded correctly. I created a custom inf with the latest libusb drivers and the programmer is working fine for me.

          If you still need help I can make a Video of the full installation…

          • A video would be nice. I can’t seem to get this thing to work. I’ve even tried swapping a chip out of an Arduino that works just to use that as a platform for burning a bootloader, with no success.

            • Did you ever get this going?

              • No, it seems to have issues. I’ve been using an Arduino to do all of my AVR programming.

                • What happens if you try to upload without plugging in the programmer? I’m thinking it’s finding the programmer, but not the chip. My first mistake was thinking that the diagram of the connector on the programmer schematics was looking at the face of the connector. I finally made some progress when I realized it’s actually a diagram of the male connector. (So it’s mirrored). The other thing that gave me that message was the “power board” switch. Also got it trying to use the upload button instead of the “Upload using programmer” menu option, or shift+upload.

                  • Way late, but: I got it working by not using the cable. I used Female to Male hookup wires and hooked it up via This guide. Using an Arduino to do the programming was alright, but I proke a chip’s pins and ended up making it permanent to the Arduino. I’m curious if buying a new cable will fix the issues?

  • I needed this to program the smd simon. I spent three days trying to get it to work. If not for two comments in this section I never would have. 1- use b 32 not b1 and 2 type -patmega328p not -patmega328. It worked great after that but I still could not find any disciption on what the lights or jumpers mean. Use the no power switch and power the simon by battery.And finally if it still does not work switch the cable around on the simon board. Man I sure learned alot though. Now to program in a debounce for the buttons.

  • The only thing I’d change with this thing are the LEDs, which in my oppinion are way too bright. It actually hurts my eyes looking at them…

  • This is a great little tool for programming AVR MPU (or others) after they’re wired into a circuit. It would be nice to have a 3.3v version of this or an in-between board that would convert the power and signals to 3.3v. Some circuits I’ve built do not have 5v tolerant parts.

    Even better would be one that supports 1.2V, 1.8V, 2.4V, 3.3V, and 5V. A little header with jumpers to select the resistors used for an adjustable regulator could do the trick. That might be cost prohibitive prohibitive though.

  • noob question: can this avr programmer be used with an arm7 chip? why or why not? is it just a matter of the pin-outs being different, or are there other reasons why? I apologize if this a stupid question

  • After beating my head against the wall for a while trying to get this to work under Windows 7, I finally got it working. Brief write-up here:

  • will this program 3.3v boards? i have a bmp085 and rn42 connected to my mc and don’t want to fry them…

  • Just a stupid thing, I’ve tried the command above and it does not work, I think -p flag is supposed to be m328p for Atmega328, not “atmega328”.

  • Does anyone know if this Pocket AVR Programmer is compatible with Atmega48PA? Would like to know before buying it…

  • I get
    shippo0708$ avrdude -c usbtiny -P usb -p m8 -B 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.
    On Mac 10.7
    I have CrossPack, Arduino 0022 and xCode installed, tried with and without a board connected to the programmers ISP pins

    • recently I bought my first mac, please switch to “no power” in your Avr Pocket Programmer, off course you should power your arduino board and voila you can now upload your program.

  • Just started using this w/ a Mac: no drivers required to burn Arduino bootloaders from the Arduino IDE (when selecing USBTiny from the “burn bootloader” menu).

  • tutorial for use with ATMega328P:

  • There’s no installer with the driver. Is that right? I can’t install it.

  • BIG news: I was having all sort of problems with this until I connected to a USB-HUB, now it works perfectly.

  • I’ve written a nice piece of software to make using AVRDude easier. It uses a gui to generate the dos code.

  • 100th

  • I am working in a Windos 7 -64 environment and am trying to program a AVR-net-io board with a (replaced) ATMEGA1284P.
    * I could successfully install a driver from here:
    * I have successfully changed chip erase delay in avrdude.conf (version 5.10) to 55000 as described here
    Command is:
    avrdude -c usbtiny -B 1 -p atmega1284P -U flash:w:NETIO+.hex
    * Erasing and writing works, but I get a verification error, first mismatch at 0x10000
    Any ideas? has the chip worked for anyone?
    Thanks, tfv

    • Some results:
      * It does also not work with option -B 32 and without B option
      * It seems to work fine with a smaller file
      My assumption is that the file size is limited to 0x10000, but I need to write 68168 byte.
      Is it correct that the programmer will not work for flash sizes above 64k?

  • Can anyone confirm that this programmer can be used with AVR Studio?

    • Never mind, found all the info I needed right here.

      • On an unrelated note, I was using AVR Studio 5 to write some code to multiplex a 4x7 segment led using C. The funny thing is, in AVR Studio 5 the hex file is over 8 KBytes while the exact same code in AVR Studio 4 is 838 bytes. The developmental tools including in AVR S5 are great and really makes coding ‘fun’ but on a microcontroller, bytes vs Kbytes is a big deal.

  • Let me get this straight: this device, USB Mini-B cable (CAB-00598) and an AVR programming cable (DEV-09215) will do? And then I just plug the programming cable to the correct IC pins in-circuit?
    Has anybody tried it with an ATTiny2313?

    • Yea, you are correct, it does come with the programming cable. It does Not come with a USB Mini-B cable though. You’ll have to buy one. And yes, that is what you do - just plug in the cable to the correct pins in circuit (after installing the usb tiny isp drivers) and use avrdude to program.
      I successfully programmed an ATTiny2313. You are good to go.

    • I’ll answer myself one of the questions: according to the description and the photos, the AVR programming cable (DEV-09215) is included.

  • Quite a bit slower than the Atmel AVRISP mkII it is replacing (fried it, oops!). Works fine though. For half the price a good value.

  • The programmer worked as a USBTiny for me with avrdude. I sent a .hex “Blink” file to my POP-BOT and doing so erased the Bootloader!
    No problem! I re-installed the bootloader .hex file using the same programmer (with avrdude) and my POP-BOT is an Arduino based device all over again!
    (Normally, uploading a .hex file written in Basic or C using “POP_Loader” directly over USB doesn’t disturb the bootloader.)

  • For os x 10.6 users these flags work avrdude
    “-c usbtiny -P usb"
    Also, the programmer will NOT show up in /dev as a serial device.
    good luck

  • avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override this check.
    I get this error in Linux and Windows x64. Any known ways to fix this?

    • Finally!!! Set the -B switch to 32 and it started to work. The board works fine in Linux too!
      avrdude: AVR device initialized and ready to accept instructions
      Reading | ################################################## | 100% 0.02s
      avrdude: Device signature = 0x1e950f
      avrdude: safemode: Fuses OK
      avrdude done. Thank you.

  • I am hoping this could be used in an emergency to reinstall the Arduino Bootloader on a ATmega 168 based POP-BOT (A robot kit on this SparkFun website).
    (I don’t need to do this yet, but it would give great peace of mind!)

  • is it possible to communicate with your computer using the usart with the 10 pin connector

  • Can this AVR programmer be used stand-alone to flash a program to an ATMEGA168 using power from the target, without being plugged into a PC (or laptop)? It’s not clear to me. Thanks!

  • Also, unlike skatefriday, I find this programmer to work great every time. Highly recommended.

  • Linux users: You can use this programmer by installing the drivers in a Windows virtual machine (I use VirtualBox and it works great - follow these instructions to pass the USB device to the guest OS: You’ll need to find a copy of a Windows installation though. For Windows 7 64-bit, use the solution provided by BeagleBoy above.

    • Sounds to me like Linux is the easier of the two…… but that’s cool, whatever floats your boat.

  • I have this programmer but would not recommend it’s purchase. It’s extremely finicky. Sometimes it works and other times it fails to initialize. There seems to be no pattern to when it works and when it does not. I wish I had saved my money and just gone out and bought the Atmel programmer.

    • Updated. I have this programmer and it’s finicky if you use it in the manner described by the tutorial with wires pushed into the IDC connector. If you actually fashion a proper header on your board so you are always get good contacts it works pretty well. ON WINDOWS XP. I would not recommend it’s purchase if you use Windows 7 as SparkFun apparently refuses to put any effort into Windows 7 driver support.

  • Hello,
    I just received this Pocket AVR Programmer and I am having difficulty burning the bootloader to either an ArbotiX (atmega644p) or an Arduino Uno under Windows XP SP3. In both cases I get the error:
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.
    Both boards use the 6-bin ISP header and it doesn’t make any difference which orientation I connect the 6-pin end of the included cable or whether I have the power switch set to “Power Target” or “No Power” (with external power to the board). I installed the Windows Driver linked to above and the board seems to be recognized OK. I also installed WinAVR and the Arduino IDE (version 0022) and I get the same error whether I use the WinAVR command line or the Arduino bootloader menu item. At this point I am dead in the water. Any thoughts?

  • How can I cable this board to an STK600-Atmega128RFA1
    I cannot find any documentation and no software, etc
    Has anyone programmed the atmel ATMega128RFA1-EK1 boards to talk (to one another, etc)?
    Thank you!

  • “libusb0x64.dll and libusb0x64.sys” should be “libusb0_x64.dll and libusb0_x64.sys”.

  • So specifically can this be used to burn the bootloader to a ATMEGA1284P DIP on a sanguino PCB via the ICSP socket on the Sanguino PCB..
    interested woud be 1284 burners want to know…

  • I’m confused. What connects to the other end of the cable if all I have is the chip to program and it’s not in anything? Is there additional hardware I need to put the chip in that connects to the cable?

    • You would need to built it up on a breadboard or something. You may want to look here:

  • Can this product be used for anything that uses ICSP? Meaning, if I were to buy this cable that has the 10-pin and 6-pin headers, could I program both the AVRs and anything else that uses ICSP? Thanks.

  • Does anyone have any experience with the slightly arcane com0com/STK500 port bridge [, “…this software is in alpha.”] approach to using this little whiz-bang with WinStudio?? Lot’s of references to “ should work..” and detailed directions from LadyAda, but it would sure be nice to have some reports before this geek gets in deep water (can’t find much on the forum).

  • Would it be possible to get a 1MHz clock output on one of those spare pins to make available for clocking AVR chips that need it? (Like when ‘fuses’ get accidentally set such that the in-circuit oscillator/Xtal doesn’t run.)
    That would be super handy.

  • For the record, I’ve been using this programmer on Mac OS X 10.6 (Snow Leopard), using CrossPack ( and AVRDUDE (
    It all “just worked” for me – right out of the box. No Googling, no configuring. CrossPack includes the USBTINY drivers. It’s just fine and dandy.
    I do have one funny thing happening most times I program the EEPROM area on an ATmega64A – some weirdo time-out/protocol error message comes up during the process. But it always recovers and completes the write without a problem.

  • I can’t tell what type of USB connector is on the programmer. Is that a type A or type B? i.e. What cable is needed to connect this to a PC?

  • Just to be clear, does this think work on OS X 10.6? I’m seeing some “yes"s here and "no"s elsewhere…
    Also, does this thing support the whole AVRISP command set? The reason I need a dedicated ISP is because ArduinoISP doesn’t support the commands AVRdude uses to tell the programmer to "slow down” for micros running at low frequencies. Does this thing have low frequency support?

  • I’ve tested compatibility with all of the ATTinys listed on the AVRdude list, the ATMega644p, and the ATMega168p.

  • I have had no luck with this programmer with BitCloud on the atmega128rfa1. So if you plan to do any programming with the atmega128rfa1, this is not the programmer to use. See my posts in
    for more info.

  • Can this be used for the Beginning Embedded Electronics Tutorial instead of the parallel port programmer? I want to use my laptop’s USB port – it doesn’t have a parallel port or serial port. Is there a better solution?

  • Does this connect to AVR Studio, or do you have to use avrdude?

  • i cant run the windows driver on windows 7,it thinks its a security catalog.<br />

  • Hi, i install the drive but ‘AVR Pocket programmer’ not appears in COM ports in device menager, it’s in ‘LibUSB-Win32 Devices’ <br />
    I can’t select the com port to send the hex file…<br />
    What i do (im noob =/ sorry)?

  • Hi. Can this device be used as a SPI slave to log communication?

  • Can i use this to send the work of Jordi Munoz (AHRS karlman… etc) to the “9 Degrees of Freedom - Razor IMU - AHRS compatible ATmega328”<br />

    • Yes, but you can just use an FTDI as the 9DOF already has the Arduino bootloader.

      • by d way hw dd u burn d code on smd ATiny, for quite long time i m looking for SMD IC programmer and programming socket.

      • Ok, <br />
        1) i buy this and the 9DOF.<br />
        2) i use arduino to burn bootloader in 9DOF. Need?What (w/ AVR isp, w/ AVRISP mkII, w/ USBtinyISP, …)?<br />
        <br />
        3) i put the program in 9DOF (AHRS).<br />
        <br />
        Thank you very much.

  • I was doing the HelloWorld example from and the Atmega8-16PU would not flash with the “-B 1” flag. Is it used only when using an external crystal?<br />
    <br />
    And could someone please explain the “Power Target” switch? Which setting is to supply the circuit and which setting is to use external power source?

  • Is this compatible with the PonyProg software?

  • Is there OSX support?

  • I was having problems with Windows 7 and using a Virtual Machine (Fedora 12) on getting this to work. I then turned to my MacBook Pro (Snow Leopard). I already had Xcode installed so I just installed the CrossPack AVR (latest version) (
    I followed the Getting Started tutorial and modified what I needed to modify and it worked flawlessly! I was programming an ATtiny85.
    If you have a Mac (Leopard or Snow Leopard) get Xcode and this to program your AVR. I can give more info on this if requested.

    • I’d like more info, please - newbie here w/Macbook Pro OS X.6.7, attempting to program an ATTiny13. So, I need CrossPack, Xcode, and this programmer?

      • Basically.
        Make sure you’re good with CLI (Command Line Interface). Also, make sure you have the pins going to the right places, or it won’t work.
        I’m usually on IRC with this handle, so if you have any problems, just message me there.

  • can i use this to program the ATMEGA128?

    • any AVR microcontroller with a In Circuit System Programmer (ICSP) or In System Programmer (ISP) port can be programmed with this.<br />
      <br />
      iirc, every AVR has this funtionality.

      • i don’t think some of the miniscule ATtinys can (ATtiny4, 5, etc.). But nobody wants them…

  • I read one person’s comment that with the download from usbtiny website it should work with AVR Studio. I am thinking about getting it and would like to know for sure if will.

  • Hey
    I just bought the AVR programmer and I’m trying to figure out how to wire it to the Serial Controlled Motor Driver
    using the broken out pins of the Atmega 328P chip so that I can make changes to the firmware.
    The broken out pins on the motor driver are GND, 5V, ADC 7, ADC 6 PC 5, PC 4. Which pins correspond to the Programmer?

  • you can use this program for to programming avr with avrdude ! agraphic user interface .
    dowload here:
    information :

  • I bought from you a AVR pocket programmer. I do not understand however what the Power Target and No Power switch settings mean.
    Are these settings to receive (or use) power FROM the target or to give power TO the
    Also it is not clear which voltage I have to connect to PIN2 of the 10 pins ISP progamming header when I am powering the target with a 3.7 V Lipo battery. My at90usb120 MCU on the target, which need to be programmed, runs at 3.3 Volt. Or can this PIN 2 be left unconnected?
    I am looking forward to your answer.

  • Hi there,
    Does anyone know if this Pocket AVR Programmer is compatible with the Arduino IDE?
    I would like to use it to burn the bootloader onto an ATmega328 chip through the Arduino IDE. Is this possible?
    Thank you,

    • Yes, it’s compatible with the Arduino IDE.

      • I installed windows driver successfully on both windows 7 and XP. None of them shows the COM port. I don’t know how to get Arduino IDE work without specify COM port under “Tools->Serial Port” menu. Thanks!

  • Would be ideal if it worked with 64-bit Windows, but because the driver is unsigned it can only be used with 32-bit versions of Windows. I’ve used it to program several ATTiny13s and it worked perfectly, but I have to copy the .hex files over to my 32-bit netbook every time I want to program. Highly recommended if you use 32-bit Windows. But if you have 64-bit Windows, you should avoid this product since the driver won’t work on your computer. Don’t be fooled by the 64-bit driver that you see in the ZIP file. It is unsigned and therefore won’t install on Vista x64 or Windows 7 x64.

    • Agreed. I posted this on the recent new products announcement with no response, so I’ll post it again here so people know:
      Is there any improvement to the driver situation for the pocket programmer? It is really tricky to get working on my windows 7 x64 computer, and that’s the most common configuration shipping these days!
      You guys really ought to make it more clear that it doesn’t work as well as you guys say. There is an enormous thread in the original product’s comments about all the trouble people have had with it:
      Its cute and all and I can imagine it being great if it works, but since Win7 x64 is the most common new PC on sale today (and I got mine a year ago), you guys ought to mention something about it!
      I actually had to abandon mine and use the AVR Dragon because i couldn’t get this thing working reliably!

      • If you Google around there are instructions on how to install unsigned drivers on Windows 7 x64. That’s what I did and it now works perfectly fine. If I find the exact instructions again I will post them.

      • We are working on it. Thanks for the link. We will post an update when we have one.

  • I like the “ISP” and “Not ISP” labels.
    However, I do not like the fact that you’ve chosen not to break out 5 pins on the ATTiny. These could be useful, especially if 3 pins could be borrowed from one of the other connectors. Don’t just leave them there. At least give us some vias or test points to solder onto!

  • It works like a charm with Eclipse + AVR Dude.
    But it should work with avrstudio too. There is a download link on the usbtiny website

  • so umm… “This new version uses an SMD 5x2 header” looks like it is still a through hole connector to me?
    any other changes other then the silkscreen being fixed for the pin out of the connector?
    was the target power fixed on the buffer?

    • The picture hasn’t been updated yet. The only change is the header. It’s simply a production change.

      • So no fix to the USB problem? From the comments on the item page for the old item of the board it seemed like the problems people were having with the device’s USB connection were electrical in nature (a voltage issue as I recall), and occurred in some cases on all OSes…

        • I have found one problem with the programmer. If you plug the programmer into a USB port while it is connected to a circuit with the ‘power target’ switch set to on, no USB connection is made.

  • Found a Windows 7 fix that works:

Related Products