Hey guys I really need some help with this one, i have been making some custom PCBs using Attiny85's and using my arduino uno as an ISP. I havent had any issues programming and reprogramming several of those boards, but just a couple of days ago 1 of my boards kept would not accept the bootloader. Im using Attiny85 with an internal 8Mhz clock. I thought that maybe it was just a bad chip so i decided to check another 10 chips by uploading the bootloader to them, and none of them gave me an error, i then proceeded to solder them on a board and try to upload a program to them and i keep getting an error stating the device signature = 0x000000 im getting this same error on 4 different boards, there are no shorts, and its not a bad connection because I am still able to upload programs to other boards i have sitting around. I really cant seem to figure out what to do, can someone please point me in the right direction? Error message attached below.
Could you have accidentally done Burn Bootloader with another clocking option selected? If you tell it to use a crystal (or external clock) when one isn't connected to the chip, it'll soft-brick the chip, and you won't be able to talk to it to set it to use the internal oscillator again without giving it a clock signal. In this state, the signature reads as 000000.
Failing that...
Check connection with multimeter in continuity mode - check all ISP lines for shorts to ground, vcc, and eachother. Check all ISP lines for continuity from the programmer to the target (I'd do from the exposed end of the pin on the underside of the Uno, to the pin on the '85 right where it goes into the chip, to catch dodgy solder jobs. Make sure reset is behaving correctly too, like it's getting pulled up to Vcc - though IIRC, you get different errors in this case.
Signature reading 000000 is 99% of the time, either wiring problem or fuses set to use a crystal but no crystal present.
Hello guys an update on this issue i removed the attiny from the board and proceeded to burn the bootloader to it and upload a test program, i then placed the attiny back on the board and everything functioned as expected. I tried to upload another program to it while it was still on the board and it uploaded successfully without any problems at all, i didnt change anything, there were no errors, all i did was remove it and put it back on. And yes i did verify that it was oriented correctly, in fact i think i checked it over 10 times lol. How can i upload a picture of my schematic? i mean it should be a routing error if some of my boards will program just fine and they were all made at the same time by PCBway, and the first thing i do when i get new boards is check the traces for gaps and bridges.
Could the chip have not been inserted fully into the socket? That's why I suggested checking continuity all the way to the pin right where it goes into the chip - that'll catch a pin not making contact with the socket. My father is fond of pointing out that when he was working as an electrical engineer, IC's were typically more reliable than the sockets you plugged them into.
Well im using SMD Attiny's and to program them im having to use a clip, and i tried several times checking over and over to make sure it was making good contact, i read somewhere that if the signature shows 0x000000 that the attiny was clocked down to 128kbs instead of 1Mhz or 8Mhz. if thats the case with these how can i fix them?
Chrisrocks23:
Hey guys I really need some help with this one, i have been making some custom PCBs using Attiny85's and using my arduino uno as an ISP. I havent had any issues programming and reprogramming several of those boards, but just a couple of days ago 1 of my boards kept would not accept the bootloader. Im using Attiny85 with an internal 8Mhz clock. I thought that maybe it was just a bad chip so i decided to check another 10 chips by uploading the bootloader to them, and none of them gave me an error, i then proceeded to solder them on a board and try to upload a program to them and i keep getting an error stating the device signature = 0x000000 im getting this same error on 4 different boards, there are no shorts, and its not a bad connection because I am still able to upload programs to other boards i have sitting around. I really cant seem to figure out what to do, can someone please point me in the right direction? Error message attached below.
http://pastebin.com/SprBAAn6
Sounds like you accidentally unprogrammed (i.e. set to 1) high fuse, bit 5 (the SPI enable bit). If you did so, the only way to recover the chip is to use a "high voltage" programmer such as (click image to visit the link)
Yes that could do it, something to try. If you aren't sure what the actual problem is with the fuse values, you could have something else going on besides the low clock speed. It could be you have disabled reset or something like that. In that case, HV programming is the quick brute force method of returning a "normal" state to the chip. You can make your own HV programmer on a breadboard. You'll need to figure out how to attach the programming leads to the chip temporarily to do the HV programming, if your custom board does not expose all of the needed pins or if some of the circuitry interferes with HV programming. Here is my HV programming method and circuit, which uses a sketch by Paul Willoughby.
guys an update i removed the attiny85's from my boards and uploaded the bootloader and a test program to them and it all went through smoothly, somehow taking it of the board seemed to fix it... but once its back on the board i can upload a new program to it without any problems. weird lol.