0

I'm trying to program an Attiny85 chip using an Arduino Uno as an ISP following this two tutorials: Instructables: Program an ATtiny With Arduino and Programming an ATtiny w/ Arduino 1.6 (or 1.0) but every time I try to upload the sketch I get this error message:

     avrdude: Yikes!  Invalid device signature.
     Double check connections and try again, or use -F to override
     this check.

I have tried different Arduino boards/changing port and different ATtiny chips but the results are all the same. I have also checked the wiring multiple times and it seems to be correct.

This is the full error message (on verbose mode):

     avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

     Using Port                    : COM7
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATtiny85
     Chip Erase delay              : 400000 us
     PAGEL                         : P00
     BS2                           : P00
     RESET disposition             : possible i/o
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    12     4    0 no        512    4      0  4000  4500 0xff 0xff
       flash         65     6    32    0 yes      8192   64    128 30000 30000 0xff 0xff
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

     avrdude: AVR device initialized and ready to accept instructions

     Reading | ################################################## | 100% 0.05s

     avrdude: Device signature = 0x000000 (retrying)

     Reading | ################################################## | 100% 0.05s

     avrdude: Device signature = 0x000000 (retrying)

     Reading | ################################################## | 100% 0.05s

     avrdude: Device signature = 0x000000
     avrdude: Yikes!  Invalid device signature.
     Double check connections and try again, or use -F to override
     this check.


     avrdude done.  Thank you.
  • Downvoted because you stopped answering the questions of the person trying to help you, making this question impossible to answer. – per1234 Dec 20 '16 at 2:55
  • Hint: Start by verifying "Arduino Uno as an ISP". This question assumes that the ISP is working correctly. – Mikael Patel May 9 at 7:24
  • @MikaelPatel - I have found that if the ISP is set incorrectly then the error isn't the Yikes!, but is instead either Could not find USBtiny device error or avrdude: stk500_recv(): programmer is not responding – Greenonline May 9 at 7:28
1

Try connecting the RESET pin of the Attiny85 to GND the second before you hit "program".

In my experience, the Arduino does not always send the RESET signal when it should (or on the pin that you think it would send it).

In these cases, manually resetting the Attiny by connecting the RESET pin to ground makes it programmable.

You can keep RESET low during the whole programming process, but if you keep it low for many minutes before programming the chip, it might not always work. In those cases, set RESET high for a moment before setting it back low, and the Attiny should be good for another round of programming.

And of course, when you want the Attiny to start doing what you have programmed it to do, you have to pull RESET high again.

  • I tried that and got : avrdude: stk500_recv(): programmer is not responding any suggestions? – Voly May 23 '16 at 15:13
  • Have you added the capacitor or pull-up resistor to prevent the Arduino from resetting itself when it tries to reset the Attiny? – Dampmaskin May 23 '16 at 15:27
  • Yes I have, a 10uf connected between the GND and RES – Voly May 23 '16 at 15:30
  • The only recurring problem that I've had, that has defied my double and triple checking of ... * the connections, * and remembering to upload the "Arduino as ISP" sketch to the Arduino, * and selecting board, * port, and * "ArduinoISP" in the Arduino IDE, ... has been having to do the reset manually. If none of that helps, then I'm sorry to say I'm out of ideas. Remembering to switch the programmer between AVRISP mkII and ArduinoISP at the appropriate time has tricked me a couple of times, though. – Dampmaskin May 23 '16 at 15:38
  • @Voly: Are you trying to program the Attiny in circuit? In other words, are there other components connected to the pins of the Attiny, or is it just the Arduino Uno? – Dampmaskin Jun 22 '16 at 20:58
0

This error (in particular the 0x000000) usually, but not always, means that the ATtiny has the fuses set for an external oscillation, but there is no functioning oscillator:

avrdude: Device signature = 0x000000

You probably need to add an external oscillator, i.e. a 16 MHz crystal, and a couple of 22 pF ceramic capacitors:

External crystal oscillator

However, as this Engbedded Atmel AVR® Fuse Calculator shows, there are a number of permutations that could be set:

ATtiny85 oscillator selection

So, instead of using a crystal, you may need to provide an external clock:

External clock signal

These schematics come from What's the schematic to share one crystal with two micros?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.