Hello everyone, I was hesitant to start a new thread, but none of the solutions that have worked for other people seem to be working for me.
I am using an ATtiny85 to control a small project I am working on. I am using an Arduino UNO and the default Arduino as ISP sketch.
Using the old IDE (1.0.x I believe), the setup worked perfectly. I could upload my code to the 85 all day long.
However, I hit the "4000 bytes" glitch, and the IDE would no longer write to the 85 because it thought there was no space left. After some intense googling I found out it was an IDE glitch, so I updated to the latest version (1.6.1) and reinstalled everything as per this webpage: http://highlowtech.org/?p=1695. The code actually compiled past 4000 bytes, and everything seemed peachy.
Now I'm stuck. Nothing is working like it did before. I am consistently getting the "not in sync error" (see code below). I can upload normal sketches to the arduino, but writing to the 85? Forget it. I can't even send a blink sketch.
If anyone could shed some light on this I would greatly appreciate it. I am almost 100% my wiring is correct (I have the 10 uF capacitor installed). However, I can include a picture of things if you like.
The error log (thanks, verbose mode):
avrdude: Version 6.0.1, compiled on Jan 15 2015 at 12:42:51
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/MrRoboto/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/tty.usbmodem1431
Using Programmer : stk500v1
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
avrdude done. Thank you.
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
Thanks in advance!
Oh and I'm on OSX Yosemite, 2013 MacBook Pro Retina. If that matters (say, as opposed to Linux or Windows OS).
That didn't work, so I switched back to the default "ArduinoISP" (as opposed to the work around one that disabled the heartbeat, which fixed this problem for other folks) and now I get this error message.
avrdude: Version 6.0.1, compiled on Jan 15 2015 at 12:42:51
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/MrRoboto/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/tty.usbmodem1431
Using Programmer : stk500v1
Overriding Baud Rate : 19200
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
flash 65 6 32 0 yes 8192 64 128 4500 4500 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.11s
avrdude: Device signature = 0x1e930b
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/var/folders/c6/f78ym4ks2_qf_nc1xc8f_yv40000gn/T/build7251621808056141975.tmp/_4N6MIRRORS_v2.cpp.hex"
avrdude: writing flash (4430 bytes):
Writing | avrdude: stk500_recv(): programmer is not responding
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
@CodingBadly: I found out recently that rsbohn's original version lost the extra delay between the reset pulse and sending the program enable command. Not sure it matters here because I can program an attiny85 (at least at 1MHz internal osc), even without the delay.But it should be there.
Anyway, I am collecting some minor ArduinoISP improvements. I try to only put in changes that hopefully make ArduinoISP more reliable. (The at89s support is the only one that does not match this criterion). In case somebody wants to try it (take the master branch!): ArduinoISP/ArduinoISP.ino at master · PeterVH/ArduinoISP · GitHub. I have found it to work more reliably than the one in the IDE.
Anyway, I think I also observed mrroboto20's problem. Since Arduino 1.6.0, avrdude somtimes keeps running in background. Killing the old process normally makes programming possible again.
Sorry to but in. I'm having a similar problem, and i've been digging thru the forums a little bit trying to find a way to fix it.
It's been about a year since the last time I picked up an ATTiny85, and I was going to rebuild my last project. I'm on a new computer, and I think the last time I did this with 1.0x. Anyways, I installed 1.60, installed the latest core. I just re-programmed my arduino uno as an ISP, and am using the seeed shield as a programmer.
Long story short, I can burn chips with it.. it's always worked. I upgraded the ISP Code per the post above, and I am using the code.google.com version of the attiny core for the 1.50 (per a previous post) They're all dated 12/7/2013 on the code.
So, on my ATTINY85-20PU chips I got from ebay, I need to burn the bootloader first If I remember correctly, which sets my cpu up, and timers, etc.. then I can go ahead, load my sketch and go back to whatever I was doing. However, I'm getting the error:avrdude: Yikes! Invalid device signature.
I want to think that setting it as ATTiny85 @ 16MHz (internal PLL; 4.3VBOD) what what I did before, but i'm second guessing myself to think that the 8MHz internal oscillator; BOD Disabled) is the right one to use.
Either way, no matter which one I try, I get an invalid device signature. I haven't burned any code to it yet. (I've gone thru a few chips screwing this up already). So, starting fresh, I am still getting this issue. Can anyone give me a hint or should I keep trying chips as some may have already had a bootloader burned to them?
"invalid device signature" could be a number of things, bad power, bad connections, insufficient target clocking, or programmer sck clock too fast, and others (including bricked chips, dead chips, bougus chips,...).
I think it's a bogus chip, or a chip that has already been programmed. I grabbed 2 from a new tube, and these worked just fine using 8MHz internal oscillator; BOD Disabled. I went back and tried one of the old ones, and it went right back to Invalid device signature. All the chips have the same writing on them.
Thanks hiduino, I appreciate your quick response. Looks like I'm better off buying straight from digikey or something.
I came across a similar issue a while ago, I tried using tinyISP instead of the ArduinoISP... tinyISP was able
to program the attiny85 and was usable again.
I also read in a forum(not sure if it was here), someone used a 12v programmer to reset the attiny85 fuses,
and they were able to program the chip again using the ArduinoISP.
JustDoc:
I think it's a bogus chip, or a chip that has already been programmed. I grabbed 2 from a new tube, and these worked just fine using 8MHz internal oscillator; BOD Disabled. I went back and tried one of the old ones, and it went right back to Invalid device signature. All the chips have the same writing on them.
I think you've been bricking the chips yourself.
If you do burn bootloader with 16 or 20 mhz selected, the chip can no longer be programmed if there's no clock source (there are some sketches that provide an 8mhz clock output for programming such parts (some of Nick's ISP sketches do that), so you could connect it to the appropriate pin to give it a clock signal so you can fix the fuses).
rxpc:
I also read in a forum(not sure if it was here), someone used a 12v programmer to reset the attiny85 fuses, and they were able to program the chip again using the ArduinoISP.
The 12V programmer is only necessary if you've set the fuse bit that disables the reset pin.