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. The microcontroller-to-be-programmed can be any AVR with 64K or less of flash. The ATmega328 on an Arduino Uno or RedBoard works perfectly, but the ATmega2560 of an Arduino Mega does not.
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.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
Based on 44 ratings:
2 of 2 found this helpful:
Years ago I bought one of these to program an ATTiny85 for a project. Did great when I had it hooked up to my MacBook Pro (at the time). Works great with AVRDude.
Downsides, and it was probably due to my setup issue, was Windows didn’t work too well with it and any virtual machine with Linux didn’t work too well (on same Windows machine).
Other than that, great little thing for those times you need to program a bare MCU without a bootloader.
5 of 6 found this helpful:
Full disclosure: I make and sell a competitive product on Tindie. But that product was inspired directly by this one, although it was inspired by its shortcomings:
The mini USB connector is not nearly as ubiquitous as micro USB. In fact, this device was the only thing in the house that had that connector. So this device needed its own unique cable.
The target power switch isn’t effective. This is because SparkFun added a pull-up resistor to the BUFFEN line. Their intentions were good - the BUFFEN line should be held high if the USB connector isn’t plugged in. But when the target power switch is off and the programmer is powered by USB, target power can leak from the BUFFEN output of the controller through the pull-up resistor. This makes the programmer - as is - unsafe for targets that can be damaged by 5 volt power.
There are extra LEDs that it turns out add very little value. All the D+ and D- LEDs do is light up on bus activity, but the Stat1 LED already lights up when the programmer is working. Stat1 and Stat2, by the way, are not well labeled. They are the PROG and CONN LEDs in the original design. CONN lights up when the USB host enumerates the programmer (so, when the programmer is plugged in and recognized - no need, really, for a separate power LED), and PROG lights up whenever AVRDUDE is actually doing something.
I don’t really see the 5x2 header being used much anymore. Every project I’ve seen uses the smaller 3x2 header or some proprietary 6 pin variant.
The IDC cable they supply is a 5x2 on one end and a 5x2 and 3x2 on the other end about an inch apart with the ribbon cable wires separated and string around to make the 3x2 connector wiring correct. It’s a very clever way to solve the problem, but separating the ribbon cable wires dramatically weakens them. Mine wound up failing and I replaced it with 6 individual crimped 26 gauge wires going from a 5x2 to a 3x2 DIP header..
The TinyISP is only good for AVR programming, and only for targets with less than 128K of flash. Some other AVR programmers can also program both larger and smaller AVR chips (specifically, the Tiny4 series, which uses its own programming protocol), or do JTAG or HVP or other things, but the TinyISP - if for no other reason - simply doesn’t have any leftover space in the ATTiny2313’s flash for added functions.
All of the above aside, this was my first AVR programmer, and the only one I’ve ever used apart from one I built myself. I happen to think that of all of the programmers available the TinyISP is the best bang for the buck. Once you graduate from the bootloader, it’s a good way to go.
2 of 3 found this helpful:
The key to using this with Linux is that you must be logged in as root (or use sudo). Also, it does not show up in /dev/tty* like other usb-serial devices. avrdude just knows how to talk to it. try this…
sudo avrdude -c usbtiny -p atmega328p -b19200 -v
Bought this board to reprogram the bootloader on an Arduino Nano that I had managed to kill somehow. Reprogrammed the bootloader with this board right away and the Nano is back to normal.
Have had very good luck with this tool and the Arduino IDE. Have tried to use with AVR Dude, followed several tutorials, spark fun was definitely best, but I was unsuccessful on fronts. I’m quite sure it is me or my laptop. Anyway works awesome in an IDE that is already easy as pie!
Windows 8.1 requires signed drivers for devices; I’ve not found a way to actually get this working yet.
I got this for one purpose to update my nmelbeep anode. It was so easy to use that I can see me using if for many other programming task. Compact, easy to use, assembled and well built and a decent price means a I give it 5 stars.
My switch to turn on or off power to the target wasn’t working correctly. I had to jump the leads to allow me to program my project. I’m a little disappointed with the quality control but other than that it’s worked great.
So sorry for the issues. Please contact us and we may be able to help. www.sparkfun.com/returns
Easy to use And lots of support. Using it with Atmel Studio/visual micro and works like a charm.
Fast and reliable! It’s all you that need!
I use this to program all my Atmel 328P and Arduino Micro boards and it works flawlessly. Also, it is very easy to use and the power to target switch is a great idea. I recommend this tool for any of the Atmel 8-bit processors or the Arduino boards that are touchy to program using the Arduino ISP such as the Leonardo or Micro.
Excellent unit-worked first with your tutorial help.
Windows has determined the driver software for your device is up to date.
Unknown USB Device (Device Descriptor Request Failed)
Be sure download and manually point the driver wizard to these drivers - https://github.com/sparkfun/Pocket_AVR_Programmer/tree/master/Drivers
Great programmer for the price! Worked perfectly with my ATMega once I got my wiring correct =). Very pleased.
Hooking up the USBtiny cable is a bit cumbersome, but overall great product.
I bought this programmer so I could burn the boot loader into ATMegaa328Ps. It does that perfectly but I get avrdude errors when trying to “Upload Using Programmer”. I suspect a setup problem but I am baffled why the boot loader burns fine but not a program. A search of the Internet offers dozens of solutions for avrdude errors. None of them work in this case. I used to work with Microchip PICs and the programmer always worked fine. I don’t understand why Atmel chips having so many programming problems.
There can be a number of things that can lead to programming errors. Here’s a tutorial that will help you avoid some of the pit falls when programming with this board. – https://learn.sparkfun.com/tutorials/pocket-avr-programmer-hookup-guide?_ga=1.177331365.1851504437.1417041706
This little device was the best thing for this old Noob to learn AVR programming!
Haven’t had any issues with the programmer. The target power switch is nice. 10 pin to 6 pin cable was a nice touch, except they wired the 6 pin on wrong. Went ahead and just rewired it myself.
This is one of my favourite programmers. I have used it on a Windows computer and also on a Raspberry Pi using avrdude. I used it to program the following processors: ATtiny2313, AT90S2313, ATMega324, ATMega328, ATMega16 and ATMega32.
I think the only thing missing from this programmer is its ability to integrate seamlessly with Atmel Studio.
Besides being smaller and cheaper, target power switch is so convenient. Works perfectly with Arduino IDE.
Works great to program my tiny but I wish it had the tiny debug serial that you can turn on and off with an exclamation
The Pocket Programmer is an excellent way for people to get into AVR programming with a relatively inexpensive yet effective ISP. It was very easy to set up and works perfectly with AVRdude. It can’t program an AVR with over 64K of flash (e.g. the ATmega2560), but for many people/beginners/projects, that isn’t an issue. The ability to power the target chip has proven to be very handy in the time I’ve been using the programmer. Overall, for $15, this ISP was an excellent buy for the vast majority of my AVR programming needs.
Had time program an r2d2. Turned out this was a great tool to have.
Programmed both ATTINY85 and ATMEGA328 with no problem using AVRDUDE. Made a couple of ISP to ZIF adaptors holding the chip to be programmed out of circuit. The only thing I would change is the USB port from a MINI to a MICRO but that’s my preference :)
I’ve been using Atmel’s MKII for years which requires the IC is powered from another device. SparkFun’s unit does it all off one USB - Love it!
0 of 1 found this helpful:
Nice doing business with you all.
I tried for days. Ended up getting the AVR Dragon. AVRDude just doesn’t offer the versatility of the Studio. It’s a bummer, dude.
Sorry it wasn’t what you wanted. Let us know if you want to send that back. We will be happy to help you out with an RMA. See or returns page if you’d like to do that.
Is it possible top use this programmer with AVR Studio?
Hi, I have not personally tested this, however, there are comments from other users mentioning that they have had success with this programmer in AVR Studio. Thanks!
Works very well for the ATmega328P and I’m sure it works well with others too. Note that just as the description says, it does include an AVR programming cable. I ordered one separately because apparently I just can’t read well.
Also note that it worked fine for me on Linux. I installed avrdude and used the following line:
avrdude -c usbtiny -p m328p -U flash:w:FILETOWRITE.hex
Also, a note to anyone interested, avra is the assembler that I use and it has worked just fine.
As someone else noted, it does have an issue with power leaking through when the power switch is off. This hasn’t caused too much trouble for me, but sometimes I turn off my board and realize it’s still on due to power from the programmer and so I have to unplug it.
Lastly, if you have something wired up and you’re trying to program your μC but having errors, in addition to check your wires, you might also try disconnecting things from the chip. If something is pulling your programming lines to ground for instance it might cause some trouble.
All in all, would definitely buy again.
My first steps into AVR programming outside of an Arudino, and I must say this board makes it pretty easy. Thus far I’ve gotten my head wrapped around some ATtiny85s and I salvaged an Uno board I thought I toasted! Would recommend for sure.
Great programmer. I would suggest to add an option to select VCC level, so the user might select between: No Power / 1.8V / 3.3V / 5V.
Works great with our MagSpoof! https://store.ryscc.com/products/magspoof
The programmer can be a lot more finnicky in noisy environments that the other programmers I have. But I depend on them in a production environment because they integrate reliably with the docs provided, more or less, and because they are easy to replace. Most of my name brand AVR programmers have died and will not be replaced because of their pricing with little to no value advantage.
I’ve used it to program an Arduino, a Wemos XI, and a homebrew ATTiny4313. In all cases works without a hitch. I’m using Arduino IDE and AVRdude on Xubuntu.
I have an old STK500 and an AVR Dragon. I can reassure anyone who wants to start messing with AVRs that this unit is all you need. You can program flash and eeprom, read and write fuse bits, etc. It will be a long, long time before you need anything more. The downside of this technology is finding it on the system. Every time you unplug it, it moves somewhere else. I wrote a simple Python script to make finding it easier (Linux):
line = subprocess.check_output([‘lsusb’,‘-d0x1781:0x0c9f’])
device = ‘usb:’ + line[4:7] + ‘:’ + line[15:18]
Remove the quotes from the first two lines.
If you are using a Makefile, you can change $(AVRDUDE_PORT) to $(shell ./usbFinder.py) with the python script in the same directory as the Makefile.
This has to be the best value available anywhere. The Target power switch is a nice touch. The adapter cable that comes with it is keyed and has both types of ISP connecter.
If you plan to use this with Linux, stay far away.
The kernel thinks it’s an MTP device, which then results in mtp-probe failing. It shows up in lsusb but never gets mounted as a serial device anywhere in /dev. Needless to say, you’re left with no actual device path to provide to avrdude.
Pretty blue LEDs, though.
Sorry about the issues with the pocket programmer. If you’re not satisfied with the product, you can contact email@example.com and they can help you to setup a return.
I use the AVR programmer to program ATMEGA328P processors on UNO, breadboard, and custom boards using the 3x2 cable connections. My computer has Windows XP and Arduino IDE version 1.8.2. I select the USBTiny programmer in the IDE rather than using Avrdude from the command line. The directions on the Sparkfun website worked perfectly. For my simple purposes, the price can’t be beat. Setup was straight forward. It works.
This little board does a great job of programming Atmel AVR processors like the one on the Arduino UNO R3 and does it at a reasonable price.
The last chip I programmed was a PIC16 back in 1998 using Mike Predko’s parallel programmer. Ten years and a well designed AVR Pocket Programmer makes it SOOO much easier. The Pocket Programmer - and a bit of breadboarding - make ISP programming almost as easy as using the bootloader. I am totally satisfied and have so far programmed ATmega328, ATtiny84, and ATtiny88 MUs using the Arduino IDE and ATtinyCore/ATmegaCores.
The board is really handy; I like the small size, and using the specialized ribbon cable instead of separate 10- and 6-pin connectors is great! The USBtinyISP design is very well-supported, and works smoothly for me.
Unfortunately, it’s not 3.3V safe (that is, can’t be used to safely program a device that operates at 3.3V), and that was something I was really hoping for. The output buffer on most USBtinyISP designs is a 74AHC125, while this one uses a 74AC125. That means that even when the switch is in “No Power” mode, it still puts a little over 4V on the power pin, and runs its I/O at that level. (I have a more detailed description of the issue at https://forum.sparkfun.com/viewtopic.php?f=14&t=48654 .)
But for 5V designs, like putting a new bootloader on an Arduino, it’s great!
Personally, I think this product is awesome. For one, it’s much cheaper than a full-blown AVRISP MKII or similar and does an adequate job for most purposes. I personally don’t have much of a use for a debugger in my programmer (yet)-a serial connection usually suffices. In cases without one, oh well, blinking an LED or making noise will have to do. Then again, what project doesn’t have some kind of output?
It’s based off of the ever-awesome USBtinyISP from Adafruit, but I actually like this version better for a couple reasons:
Overall, I find it’s a solid programmer that works well for most purposes. You can even upgrade the firmware if a future update brings better features! (Well, you’ll need another programmer for that…but most of us have an Arduino lying around and the ArduinoISP code. Or you could just use a blank AVR with enough flash space to store programming code and the new hex file.)
Everything worked perfectly with my Win7 PC once I found and installed the correct drivers.