Avrdude : invalid device signature error problem in 3pi

Just today i tried to burn my code into the pololu 3pi robot but got error :

Avrdude : Yikes ! Invalid device signature.

I tried multiple times but keep on getting the same error. I have checked all the wire connections and they all are properly and tightly connected. Please if somebody could tell me what actually the problem is. I am using an arduino deumimalov as an ISP. I have tried everything poasible but in vain. The thing is the robot is just a week old and i dont want to loose all the money spent on it.


I am sorry you are having problems programming your 3pi. Could you tell us more about your setup? How are you connecting the Arduino to the 3pi? What program are you using to program the 3pi? Have you programmed other devices using the Arduino as an AVR programmer? Have you successfully programmed the 3pi before using the Arduino or a different method? If you have not programmed the 3pi yet and the demo program is still loaded on it, does the demo program run as expected? Could you post pictures of your setup and screenshots of the error?

- Jeremy

Respected Sir

Firstly i burned the arduino as isp program in my arduino mega 2560 and then made the following connections :-

pololu 3pi: mega 2560 ICSP pin:
reset: 53 5
MOSI: 51 4
MISO: 50 1
SCK: 52 3
gnd: gnd pin 6

i have not connected the vcc pin to pololu because I read in a form which suggested not to do so.

i have also programmed arduino deumilanove using arduino mega 2560 as isp successfully earlier using the same connections as specified above.I also programmed my pololu 3pi successfully 2-3 times but after that it started to show the following error:

avrdude: yikes!invalid device signature
double check your connections or press -F to override check

I have spent 2-3 days to program my pololu 3pi again and also rechecked my connections every time but all in vain.Moreover I googled and read Pololu forums to find any possible solutions but instead of finding a solution, I bumped into a post on your forum which showed the same kind of error and to whose reply, a pololu employee stated that this kind of error might mean that the mcu is damaged.
Therefore today I contacted the company person from whom I bought the product.Since they offered a 15 day warranty and my 3pi was within warranty period, I contacted them for a replacement.I got the reply from them stating that they have forwaded our request to the manufacturer and if the manufacturer confirms any defect, then they would proceed further.
Therefore I request you sir to give me a possible solution or give a positive reply to the distributor so that I can get my product replaced.

Since you were able to program the 3pi a few times before getting this error, it is unlikely that you received a defective unit. However, it is possible that the unit was inadvertently damaged between the last successful programming and when it stopped working. Did anything happen to the 3pi between the last successful programming and the first failed programming (e.g. it turned off or got disconnected during programming)? Have you checked to make sure the batteries in your 3pi are fully charged? What was the last program you successfully loaded onto the 3pi? Does that program still run normally?

You mentioned in your last post that you are not connecting the VCC pin on the 3pi’s ISP header to the 5V bus on your Arduino, but it looks like those are connected by the red wire in the picture that you posted. If removing that connection does not solve the issue, could you turn on verbose output and post the output that you get at the bottom of the Arduino IDE after trying to program? You can turn on verbose output by selecting “Preferences” from the “File” menu in the Arduino IDE and then checking the “compilation” and “upload” boxes next to “Show verbose output during:”


Respected sir/mam
Nothing happened to the 3pi between the last programming and first failed programming. Also,I checked the battery voltage everytime before flashing the code in pololu and the pololu’s lcd was showing a battery voltage around 4.8-5v when the error occurred first time.I uploaded the pid line follower code given in the sample codes of pololu last time but even that is not working after the error.

The verbose output after those attached in last are attached in this reply

The remaining verbose output are attached in this post

It looks like you only enabled verbose output for “compilation”. Could you uncheck the box next to “compilation”, check the box next to “upload”, and try programming again? When you get the output in the Arduino IDE, can you copy it into a text file and post that? The pictures you took of your computer that show the output for compilation are hard to read and thus not very helpful.

Also, in my last post I pointed out that you have the VCC line of the 3pi’s ISP header connected to 5V on your Mega. This connection should not be there an could potentially damage either the 3pi or the Mega. Did you remove this connection?

You mentioned that the line follower code on your 3pi is not running correctly. Did it ever run correctly? What does it do?

Lastly, the 3pi must be turned on in order to program it. Could you confirm that you have had the 3pi powered on each time you tried to program it?


Respected Mam,
i can not send you out you the output you are asking about right now as the rhydolabz from whom i bought the robot asked me to return 3pi so that they could figure out the problem.

regarding the vcc of arduino connection to 3pi,i never tried that connection when 3pi was working perfectly.I tried the connection only after the error occured.The connections in the photo were of the last time i tried to code 3pi .

Also,i turned on 3pi and checked the battery voltage everytime before flashing code in 3pi.

Sorry for the late reply.

I am not sure what might have happened to your 3pi, but since you no longer have the robot, it is not possible to continue troubleshooting. We might be willing to help you out with a discount on a replacement if you get it directly from us, but the cost of shipping to India might make that impractical. If you are interested in pursuing this further, please email us at support@pololu.com. If you want to try to get a replacement through your distributor, you will have to work it out with them.

Also, improperly programming an AVR microcontroller can permanently disable it. For example, if the Arduino program isn’t sophisticated enough to detect if the target AVR’s power is lost and immediately abort the programming process in response, the AVR can be permanently disabled. If you do get a new 3pi, or continue to program other AVRs, I strongly suggest that you get a dedicated AVR programmer like our USB AVR programmer.


Respected Mam,
this is the verbose output obtained on uploading the code on 3pi robot:
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright © 2000-2005 Brian Dean, bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch

     System wide configuration file is "M:\pranav\bot\arduino-1.0.5-r2\hardware/tools/avr/etc/avrdude.conf"

     Using Port                    : \\.\COM32
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200

avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [00]
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done. Thank you.

The error you are getting generally indicates that the computer is not able to connect to your Arduino. Could you post screenshots of your device manager with the “Ports (COM & LPT)” entry expanded? Could you also post screenshots that show what “Board” and “Port” you have selected in the “Tools” menu of the Arduino IDE? If you disconnect your 3pi from the Arduino and just try to run it on its own, does it run? Are you able to load other programs onto your Arduino Mega normally?

By the way, it looks like you didn’t post the entire verbose output; it looks like you only posted the orange text that AVRDUDE outputs. Could you try programming again and this time post both the white text at the start of the verbose output and the orange AVRDUDE text?