Attiny85 programming failing - Invalid device signature

The usual culprits...

  • Wiring
  • Auto-reset not disabled
  • Wrong board selected
  • Buggy ArduinoISP sketch

Enabling verbose output usually reveals which.

Thanks for answering Coding Badly.
Finally I found that the reason why I couldn't program my ATtiny85 is that I'm using an Arduino Leonardo. Fortunately yesterday PeterVH posted a solution for Leonardo users here: http://arduino.cc/forum/index.php/topic,118090.0.html

Hi, i know this is an old post, but could you help with a solution to this?

Going through my first programming attempt and I made the same mistake. If it helps, I do have access to AVR studio and programmers, but I'm not sure what I'd need to do to fix my chip.

More help needed here on same problem.
Using Arduino 1.5.4 on Ubuntu12.04.
Duemilanove as ISP.
Arduino as ISP sketch from standard examples (Heartbeat blinking fine).
Tiny cores imported .
Using standard Blinky sketch for ATTiny85 upload.
First upload worked OK (1MHz internal). Test LED is blinking fine.
Burned bootloader for 8MHz clock. Tiny is still blinking fine.
Subsequent upload trails all fail ( with or without 10uF Cap or 120 Ohm resistor on reset)
Tiny keeps on blinking from previous Blinky sketch.

If I read the Verbose output below correctly, the ATTiny85 is communicating with the ISP, so wiring must be OK.
But Device signature = 0x000000.

Any suggestions (other than "check wiring") ??
There are so many different posts with different suggestions. Difficult to judge which are outdated.
I have not yet tried the external clock suggestion.

Thanks.

VERBOSE output

avrdude: Version 5.11, compiled on Sep  7 2011 at 19:34:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/usr/share/arduino/arduino-1.5.4/hardware/tools/avrdude.conf"
         User configuration file is "/home/xxxx/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
         AVR Part                      : ATtiny85
         Chip Erase delay              : 4500 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     6     4    0 no        512    4      0  4000  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6    32    0 yes      8192   64    128  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [02] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [01] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [12] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [98]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
avrdude: Send: A [41] . [84]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [85]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [86]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [87]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [89]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [01] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [12] 
avrdude: Recv: . [10] 
avrdude: Send: B [42] . [14] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00]   [20] . [00]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: Send: P [50]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
################################## | 100% 0.06s

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

avrdude: Send: Q [51]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 

avrdude done.  Thank you.

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

Other than check wiring which is the usual culprit. Although if you haven't rewired anything since programming it, then that is likely not an issue.

As the LED blinks, you haven't disabled the internal oscillator as otherwise it would do nothing.

It looks like you may have disabled the reset pin (incorrect fuses?) - you can check this by wiring it to GND and see if the LED still blinks.

weersch:
Using standard Blinky sketch for ATTiny85 upload.
First upload worked OK (1MHz internal). Test LED is blinking fine.
Burned bootloader for 8MHz clock. Tiny is still blinking fine.
Tiny keeps on blinking from previous Blinky sketch.

Do you have an resistor on that LED?

Yes, 470 Ohm on all LEDs. (Test LED on Tiny, Heartbeat LED, Error LED, Programmin LED)
All build on a 8x20 hole protoboard shield to fit over Duemilanove.
8 and 14 pin sockets for ATTiny85 or 84.
Thanks for all help.

OK folk. Problem resolved.
I am a bit embarrassed to say that it WAS the wiring.
After trying everything, I went back to measure the board and found a bad solder joint on the ATTiny85 RESET pin.
After fixing that, it is working like a charm.
10uF capacitor on Duemilanove Reset is needed.
Thanks for all the help (and for keeping on pushing to check the wiring :))

Here a picture attached of my quick and dirty proto board.
Maybe helpful for other newbies too.
From top to bottom:

  • 6 pin header to enable programming the chips in circuit.
  • Amber LED for heartbeat, Red LED for error, Green LED for programming.
    Driven by ArduinoISP sketch.
  • 8 pin socket for ATTiny85
  • 14 pin socket for ATTiny84
  • Green test LED connected to pins D4 on Tiny84 and D9 on Tiny85.
    (note: these are the Sketch pin numbers, not the chip package pin numbers)
  • 10uF capacitor to Duemilanove Reset pin included.
  • All LEDs have 470 Ohm SMD resistors on bottom of the board.

@weersch, thank you for the follow-up.

For the benefit of future searchers, I'll also add that I've had an Attiny85 report "Device signature = 0x000000" after I walked across a polyester carpet with the device in my hand (sigh). Apparently, zapping the device with static electricity can sometimes cause it to report a bad signature. Switching to a new Attiny85 resolved my problem.

Yes, I know it's an old post, but...I have a same similar issue.
I ordered from ALiExpress 5pcs of ATTiny85-20PU and none of them are working.

I got this message from avrdude using USBtiny programmer (CMD output).

avrdude -c usbtiny -p t85 -F

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffffff (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffffff (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATtiny85 is 1E 93 0B

avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)

avrdude done.  Thank you.

Just to mention, there are no wires, cables or breadboard laying around.

And I tested my old MCU and it's working fine.

AndyCC:
For the benefit of future searchers, I'll also add that I've had an Attiny85 report "Device signature = 0x000000" after I walked across a polyester carpet with the device in my hand (sigh). Apparently, zapping the device with static electricity can sometimes cause it to report a bad signature. Switching to a new Attiny85 resolved my problem.

As AndyCC, i zapped mine with static too. Now it reports invalid signature error.. Fresh one worked fine..

Hi,

I have been havong the same problems with Attiny85 devices I bought from AliExpress. After some meddling, I was inspired by some article to use the 'Avrdudess' graphical programmer interface and hooke it up to my USBtinyasp. Avrdudess reported that the found device identifier '1E9005' belongs to a ATtiny12. Althoug hthe printing on the device says ATtiny85; but in China they can print anything they want, don't they ;-). To be short: beware of Fakes.

Hi, i bought attiny 13a from china. I have problem like you, i cant burn bootloader or flash program to that mcu, it always reject and say have problem with signature,... I found good solution on internet: use 12v high voltage programer . with request parts to make that programer, it take time to wait for express to me. Lucky i have a 12v adapter ( from wifi modem) and i bought few power external module for breadboard with support convert 12v to 5v, it same high voltage programer and more simply to unbrick attiny 13a