avrdude Won't Recognize Arduino ISP

I have an Arduino ISP but so far have had no luck getting it to work in Linux using avrdude. Specifically, avrdude doesn’t seem to recognize it, although all examples I’ve seen online have suggested that it should be automatic.

According to the webpage above, it should be identical to the FabISP, which uses the usbtiny setting for the programmer. When I run avrdude using the following command:

avrdude –patmega2560 –b115200 –Uflash:w:stk500boot_v2_mega2560.hex:i –c usbtiny

I get the following message:

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

avrdude done.  Thank you.

When I plug in the device, I get the following in the syslog:

Feb 21 09:09:45 kernel: [  450.152222] usb 4-1: new low-speed USB device number 2 using uhci_hcd
Feb 21 09:09:45 kernel: [  450.315417] usb 4-1: New USB device found, idVendor=2341, idProduct=0049
Feb 21 09:09:45 kernel: [  450.315431] usb 4-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
Feb 21 09:09:45 kernel: [  450.315442] usb 4-1: Product: ArduinoISP

The only thing that looks odd is that the idVendor and idProduct do not match what avrdude is reporting. I have no idea what to try next. Does anyone have any ideas or experience with this?

Thanks.

Update: I've installed the WinAVR software on Windows 7 and got an identical result when trying to run the avrdude command listed above.

According to the instructions (http://arduino.cc/en/Main/ArduinoISP) you should use the "Arduino ISP" setting, not USBtiny. Note that this only exists on Arduino 1.5+ and that there are Windows drivers to install.

So, it's based on the FabISP circuit, but the firmware is written so that it only works with the Arduino development environment?

I heard that the Arduino IDE uses avrdude in the background to program the chips? Is that not the case?

rdibley: I heard that the Arduino IDE uses avrdude in the background to program the chips? Is that not the case?

That is the case. if you turn on verbose logging for upload (in preferences) you will see the commands passed to avrdude. You can take those commands and use them outside the IDE. Note that the version of avrdude used by Arduino may not be the same as the avrdude installed in your development environment.

Solution that worked for me:

  1. install arduinoISP drivers: https://www.arduino.cc/en/uploads/Main/ArduinoISP 2.download arduino ide : https://www.arduino.cc/en/Main/Software you'll need some files of this installation.
  2. create external tool in atmel studio: (tools->external tools) Title: ArduinoISP Command: C:\path_to_your_arduinofolder\hardware\tools\avr\bin\avrdude.exe arguments: -CC:\path_to_your_arduinofolder\hardware\tools\avr\etc\avrdude.conf -c arduinoisp -p m8 -v -v -v -U flash:w:$(TargetDir)$(TargetName).hex:i initial directory :

To see if everything works fine: click checkbox "Use Output Window".

I'm not sure of this but I think you only need these 2 files from the arduino IDE: \hardware\tools\avr\bin\avrdude.exe \hardware\tools\avr\etc\avrdude.conf So if you don't use the Arduino IDE you can remove it completely except for these 2 files. I still use the Arduino IDE so I didn't remove it and thus I am not completely sure of this.

Adriaan