Questions?

Skills

Pocket AVR Programmer

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. 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.

Customer 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: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/
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.

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: http://dl.dropbox.com/u/8578398/pocketprog-driver.zip

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.

The Pocket AVR Programmer can be used with one of our old tutorials “Lecture 2 - How to Get Code Onto a Microcontroller” https://www.sparkfun.com/tutorials/93. 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.

I had to do some modifications in order to use the Pocket AVR Programmer in the old tutorial. I was using the ConText editor [http://www.contexteditor.org/index.php] 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:

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 => http://www.wikihow.com/Change-Directories-in-Command-Prompt. 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 => https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader/selecting-a-programmer. 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 an Arduino Bootloader, check here => http://code.google.com/p/optiboot/. This uploads the Arduino Uno Bootloader so that after using the programmer for the first time, you can upload firmware with an FTDI and the Arduino IDE without the need of the programmer.

WARNING - TARGET BOARD DESTROYED:
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…..
Paul

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…

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.

In fact, if you want to fix your programmer yourself, you can, but it requires hacking the board a bit. It’s not for the faint of heart.

Look at the bottom of the board. about 1/8" below the “COM” in “sparkfun.com” there’s a straight horizontal trace between two vias. Cut that trace.

Now, back on the top of the board, tack a 1N4148 diode between pin 8 of the 2313 (the big chip), and pin 1 of the 74HC125 (the small chip). Note that the two chips are opposite-oriented. Pin 1 of the 74HC125 is bottom right (with the USB to the left), and pin 8 of the 2313 is 3rd from the bottom-left. The cathode of the diode is on the 2313 end, and the anode on the 74HC125 end.

That done, you should find that with the target power switch turned off that you can safely program 3.3 volt systems, provided they’re self-powered during programming.

The one note is that you are still feeding 5 volt logic into the 74HC’s pins from the 2313. The 74HC’s datasheet shows diodes on the input pins to Vcc, which are intended to protect the 74HC from excess voltage on the inputs. It’s conceivable, I suppose, that that might wind up raising Vcc on the target, but I haven’t actually tried it.

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 ladyada.net.

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!

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.

Ok, my apologies. The flash programmer is actually working. What I didn’t know is that the avr pocket doesn’t appear under the tty / cu section files at all. You don’t need to bother of it.
From my makefile I just specified -P usb to avrdude in order to find the programmer, and it worked like a charm, and the flashing was actually fast. On Arduino, you don’t need to specify any port.
I tried both of them on Maverick.

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: http://sourceforge.net/projects/libwdi/files/zadig/zadig_v2.0.1.160.7z/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.

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.

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. http://mightyohm.com/blog/2010/09/fixed-usbtinyisp-drivers-for-64-bit-windows-7/. 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.

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:
http://forum.sparkfun.com/viewtopic.php?f=7&t=26156&hilit=+windows+7+pocket
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?

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.

It looks like this probably won’t work for programming a ATMega1284, but can anyone suggest another option that would work? I don’t actually need to access the full flash, I mainly need something like this for installing bootloaders.

I’m having this weird issue where VCC is at or around 5V regardless of whether or not the power selection switch is set to power target or no power. How is this possible? It is really messing with the way I program my self-powered projects.

I am trying to use this Pocket AVR programmer with atmel studio 6 to program a 3pi robot I bought from Sparkfun. I have installed the drivers successfully but the programmer will not show up in atmel studio. Anyone had success with this device and atmel studio?

Thanks Sparkfun for this nice programmer. I had one hard time getting the drivers working with it for Windows 8 but got by with the help from these postings. It’s working great with Arduino and AVR Studio 6. My latest enhancement was to add a ZIF programming adapter board and can now program multiple ATTINY85 and ATMEGA328’s for my other projects. I have a couple of spare adapter boards available if anyone needs one. http://kc9on.com/wp-content/uploads/2014/10/Tiny-Adapter.jpg
Thanks again for a great product!

Got it working after 2 hours under Win7 64 using a combination of techniques…

Zadig didn’t work for me alone. I was still getting

avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)

However, installing this version of libusb32 finally worked for me:
http://sourceforge.net/projects/libusb-win32/#Installation

I think installing zadig first allowed this installer to work. All I had to do was authorize the unsigned driver. Also, there is an issue if you have Atmel Studio already installed- apparently the Jungo drivers can mask libusb: http://uzebox.org/wiki/index.php?title=Avrdude

Just a note. Doesn’t work [reliably] with atmega 1280 and 2560. Bricked an arduino mega 2560 and bricked 2 2560 chips before i found out. Ladyada also says so somewhere, the chips are too large to write to. Thanks. “should work with all the avr micros supported by avrdude: NOT TRUE”.

According to the atmega16 to atmega16a migration guide, the 16a is a drop-in replacement with only minor electrical operating changes (mostly, it draws less current, overall). Shouldn’t affect programming at all.

Hello,
I don’t understand : when i plug my Atmege324p-20PU with the Pocket Avr Programmer (when it’s pluged into the computer) the state LEDs turn off :/. And then, when I execute the line “avrdude -c usbtiny -p m324p” the cmd told me “Error : Could not find USBtiny device (0x1781/0xc9f)” !
PS : My OS is Windows 8.1
Can you help me, please ?

If you are getting an error saying it can’t find the device its most likely a driver issue. Make sure the drivers are installed correctly. If you are still having problems email techsupport@sparkfun.com.

I just bought one of these, and so far it’s been nothing but frustrating. I’ve tried in in Arduino IDE 1.5.3 (most current) on Mac (no drivers needed) and Windows 7 32-bit (with all of the driver gyrations from BeagleBoy’s post.

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.

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.

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.

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

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…

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?

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.

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?

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 ladyada.net (http://www.ladyada.net/make/usbtinyisp/download.html). 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.

need help. can this program the olimex AVR 40 pin protoboard https://www.sparkfun.com/products/32 ? 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.’

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:

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: http://dicks.home.xs4all.nl/avr/usbtiny/ (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.

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.

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.

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.

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.

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

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

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:
http://ladyada.net/make/usbtinyisp/download.html
* I have successfully changed chip erase delay in avrdude.conf (version 5.10) to 55000 as described here
http://www.robotmarketplace.com/products/images/0-PL1325_user.pdf
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?

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.

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.)

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!)

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: http://www.howtogeek.com/howto/31726/mount-usb-devices-in-virtualbox-with-ubuntu/). You’ll need to find a copy of a Windows installation though. For Windows 7 64-bit, use the solution provided by BeagleBoy above.

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?
Thanks!
patrick

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!

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?

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 [http://www.ladyada.net/make/usbtinyisp/stk500compat.html, “…this software is in alpha.”] approach to using this little whiz-bang with WinStudio?? Lot’s of references to “..it 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 (http://www.obdev.at/products/crosspack/) and AVRDUDE (http://savannah.nongnu.org/projects/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.

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 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
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=100752
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?

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)?

I was doing the HelloWorld example from http://my.opera.com/CrazyTerabyte/blog/2007/10/25/first-contact-with-atmega8-microcontroller-part-1 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?

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) (http://www.obdev.at/products/crosspack/download-en.html).
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.

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.

Hey
I just bought the AVR programmer and I’m trying to figure out how to wire it to the Serial Controlled Motor Driverhttp://www.sparkfun.com/commerce/product_info.php?products_id=9571
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?
Thanks.

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
target?
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,
GTMEstudent

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:http://www.sparkfun.com/commerce/product_info.php?products_id=9231
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!
-Taylor

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.

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!

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?

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…

Some bugs, but not bad otherwise

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.

Excellent little product!

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!

Just what it says: the small programmer that does the job.

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:

There’s only ONE cable socket, so the unused connector (10 pin or 6 pin) won’t get in the way on its own cable. Sure, the 6-pin cable isn’t as strong, but that’s easy enough to doctor up.

SparkFun uses a switch for target power that doesn’t stick out and works beautifully and not a jumper, which can easily be lost and is generally more cumbersome. They also label which position does what, which is nice.

Although it’s not a through-hole kit, the all surface mount construction gives that nice oh-so-smooth backside of a PCB we all love. The IDC connector might be prone to being knocked loose, but a bit of superglue or similar can help strengthen its grip on the board. Also, being preassembled helps decrease the chances of it not working due to botched assembly and damaged parts during transit, which helps make it a nice “known quantity” that is pretty sure to “just work”. One less variable (well, major variable, at least!)

There’s no case, but the red board looks pretty cool (like all SparkFun products). Also, you can add whatever case you like.

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.)

SparkFun is an online retail store that sells the bits and pieces to
make your electronics projects possible. Whether it's a robot that can
cook your breakfast or a GPS cat tracking device, our products and
resources are designed to make the world of electronics more accessible.

In addition to products, SparkFun also offers
classes and online tutorials to help educate
individuals in the wonderful world of embedded electronics.