µC working but cannot flash anymore - "yikes invalid device signature"

Hi,

I've found many problem-related postings and solutions for "invalid device signature". When trying to upload a sketch, the device signature is wrong. Mostly 0000 is reported but sometimes arbitrary values. Unfortunately, I could not find a solution working for me.
Maybe someone has seen the same behavior and can offer an explanation.

My setup:

  • ISP Programmer: ArduinoISP on Nano v3. Works with every other devices I want to program.
  • µC to program: pro mini "5V edition" with 8 MHz internal oscillator bootloader, de-soldered voltage regulator and LED, to run on lower power supply. Before today, I have uploaded multiple sketches over the last weeks and have had no problems. Currently, the pro mini correctly runs the last uploaded sketch. Obviously, the device signature was correct the last time (2 days ago) I uploaded a sketch. After that it ran it's sketch 24/7 on battery pack. Today, "yikes".

Tried solutions:

  • Checked/changed wiring
  • added more capacitors
  • changed power supply

Wiring is correct. Other pro mini's (with the same bootloader) can be programmed.

I have not used the -F option as proposed because, first, I want to understand why and how a µC can "lose" it's signature without interaction.

Thanks for your suggestions & best!

I believe all zeros signature means the clock is not running when you are trying to program it, or there is a problem with the wiring. Since it is running the last uploaded sketch I would guess the wiring of the programmer is the problem. Connections or actual wires could be bad or marginal. The actual signature of the processor is probably OK, but your programmer is failing to read it.

What did you set the fuses to, when you loaded the last uploaded sketch or burned the bootloader?

Do I understand correctly that you are burning the bootloader for the purpose of setting the fuses, but then you are uploading sketches using the programmer?

Is the 16MHz crystal still on the board and attached, or did you also remove it?

Hi,

Thank you for your answer.

dmjlambert:
Connections or actual wires could be bad or marginal. The actual signature of the processor is probably OK, but your programmer is failing to read it.

I thought the same. But how can the wires (connected to a breadboard) be the problem when other pro mini (attached to the breadboard) can be programmed?

dmjlambert:
What did you set the fuses to, when you loaded the last uploaded sketch or burned the bootloader?

I used the "ATMega on a breadboard (8 Mhz internal clock)" from the Arduino tutorial page. No idea what the actual Fuse-settings are.

dmjlambert:
Do I understand correctly that you are burning the bootloader for the purpose of setting the fuses, but then you are uploading sketches using the programmer?

Yes, that is correct. I used "burn bootloader" (Arduino IDE) with "ATMega on a breadboard (8 Mhz internal clock)" once to set the fuses to internal oscillator. After that I use "upload with programmer" (Arduino IDE) to upload sketches. Unfortunately, I cannot upload sketches with my USB-Serial Adapter to the pro mini--no idea why.
Side note: My Arduino Nano (Clone) programmer loses the ArduinoISP sketch each time the power is lost. But I don't think that has anything to do with my current problem.

dmjlambert:
Is the 16MHz crystal still on the board and attached, or did you also remove it?

It's still there. I tested the blink sketch to check for the actual clock speed and it seems to be set to 8 Mhz. I have removed the 5V voltage regulator and the power LED, everything else I left untouched.

Thanks again, I really appreciate your help.
Best!

If anyone stumbles upon this thread, I've "repaired" the DIP-28 atmega328p using a HV fuse doctor, see http://www.instructables.com/id/HV-Rescue-Simple/
No idea how I messed up the fuses but good to know that it is quite easy to fix - if you have a 12V power supply at hand :wink: