I'm trying to make the transition from coding in the Arduino language to AVR-C, but I'm having some issues with my microcontrollers.

I don't have an ISP, so I'm using one of my Arduino UNOs with the ArduinoISP sketch. The problem is that when I try to run avrdude it gives me this error:

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

However, when I try to run the command with the sugested -F it uploads the code to the Arduino UNO I'm using as an ISP instead of the ATmega328p on my breadboard.

Does anyone have any idea about whats going on here, or how to fix it?

  • 1
    Have you disabled reset on your Arduino? – Majenko Aug 14 '16 at 15:59
  • 1
    You would know if you had, so you obviously haven't. Add a 10uF capacitor between reset and gnd on the Arduino. – Majenko Aug 14 '16 at 17:24
  • 1
    Note that switching to writing in plain C doesn't mean you have to change the method you use to get code into the chip - you can still use the Arduino bootloader. And of course you can also use ISP to load Arduino sketches - the sources used to generate hex files and the process of loading them into the target are orthogonal subjects. – Chris Stratton Aug 14 '16 at 18:18
  • 1
    This does not seem to work, the arduino still resets, and i get the same error. I'v tried with 1uF and 50uF between reset and gnd, and with 120 ohm between reset and 5V – Isak Aug 14 '16 at 18:29
  • 2

"invalid device signature" is due to bad connection or inability to reset the device (RST pin fuse setting for example).

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