Polulu PGM03A - avrdude: initialization failed, rc=-1 error

I have been using the Polulu PGM03A to successfully program boards from the Arduino IDE for several months. Today, while attempting to upload from the Arduino IDE, I got an error message that I have never seen before:

[quote]avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.[/quote]

Both of the boards I have been programming are ATMega168-based. One is custom, the other is a Makerbot DC servo controller v1.0, which is similar to an Arduino Mini, and uses ATMega168. On the Makerbot DC servo controller board, I can still successfully program it from the Arduino IDE using an FTDI USB-to-serial 6 pin cable (tested with both 5v and 3.3v versions). I only have ICSP on the other board, hence my need to fix my problem. Both are clocked 16MHz and both work and program from the IDE until today.

When I first plug in the PGM03A to USB, I get steady green LED and 1Hz 50% duty cycle red LED. When I plug this into the powered Arduino boards, I get blinking amber LED with steady green LED, red off. According to the PGM03A manual, this indicates that the programmer is able to detect Vdd-high on a target device.

After an unsuccessful code upload attempt from the Arduino IDE, I get steady green, steady red, and blinking amber LED, as well as the error message quoted above. When I open the Polulu USB AVR programmer configuration utility, I get the device serial, firmware version 1.07, 200kHz, hardware v F, software v 2A, TTL A none, TTLB none, tgt Vdd 4384, 512, measurements 4832, 0, and the following :

As stated, the micros are clocked at 16MHz so the 200kHz ISP frequency is slower than 0.25x.

I get the errors quoted above when trying to program either board using the Arduino IDE -> polulu PGM03a approach. I have double-checked and triple checked the COM port settings and programmer settings in the IDE. I have swapped out the micro USB cable to the Polulu PGM03A, and I have also swapped out the 6-pin ICSP ribbon cable. I don’t think it is a cable connectivity issue or an IDE settings issue, since the settings worked until today and both cables have been swapped.

Is the PGM03A burned out? any other ideas?


Thank you for including so much detail and information. What version of the Arduino IDE are you using?


It is Arduino IDE Version 1.0.4, have not updated the IDE lately or changed settings. i have also attempted to program from a separate PC running the same version of the IDE. Both of these pcs have successfully programmed using the polulu pgm03a in the past.

I have ordered a new programmer, when it arrives I can then swap in that final piece and see if the original is toast. However, I would still like to get to the bottom of this, so as to avoid toasting the replacement.

One added bit of info, the USB recognition of the device was a bit flakey on the day before it apparently died, such that it would intermittently drop and re-recognize the device as if it had been unplugged and reinserted.

Also, I re-flashed the firmware of the PGM03A using the BR@Y terminal app. All of the LED blink sequences, echoed periods, and pipe character came through, indicating successful write. The PGM03A still has normal LED behavior, but it still gives the above errors when attempting to program from the IDE.


I am not sure what might be causing the problem with your AVR programmer, but it sounds like one of the pins might be damaged in some way. This could happen in a variety of ways, such as a static shock or plugging it in backwards. I am interested in hearing if the new programmer you ordered fixes the problem.


update - ordered a new PGM03A programmer - appears to work with all other software and hardware settings unchanged. The original programmer must have been damaged somehow.

Tip to others, if you unexplainedly get the avrdude error with a similar Config utility error, even despite the green-red-amber status LEDs, it could be a fried unit.

I am glad that the new programmer fixed your problem. Thank you for letting us know.