Ah the joys of debugging hardware. As already described in this post, I'm am working on a custom made GPS tracker circuit for a weather balloon. The whole circuit is based on the ATMega328p-AU and in my last post, I described how my first pcb would let me burn the Arduino Pro Mini bootloader to it but I couldn't upload any programs. From the community's help, I found out I was missing some decoupling caps a DTR pin. I didn't have any of the caps and because of the size of the board, it would have been difficult to add them, so I ended up designing and ordering a new pcb.
After I soldered on all of the (many) smd components, I tried to burn the bootloader. Alas,
avrdude: Device signature = 0xff0000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Error while burning bootloader.
That was the most common one, but occasionally it would be "0xffffff" or "0x00ffff"
I popped out my multimeter and started checking connections. I ended up discovering that because of the way EasyEDA poured the copper ground area, the ATMega328p wasn't connected ground at all. I was able to fix that problem relatively easily. I also found the TX pin of the chip shorted to ground, and it was a simple issue of a trace that accidentally shorted the RESET and TX pins which I was able to fix. After that, I couldn't find any more issues so I tried to burn the bootloader again, and well, the message speaks for itself.
avrdude: Device signature = 0xff0000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Error while burning bootloader.
I was completely confused at this point, given that this version was supposed to work better then the last. As a final try for success, I directly soldered my Arduino Pro Mini to the SPI pins in hope it was just a connection issue. The result,
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Error while burning bootloader.
Even worse, no response at all. I went and checked the continuity between the actual pro mini pins and the ATMega328P pins on my pcb and everything was correct. I ended up replacing the ATMega 3 times with no change. As another note, there is something weird going on with the LEDs. I have two LEDs connected to pins D14 and D15 of the ATMega but they are constantly on. Even weirder, when I remove the chip they still stay lit. Instead of the full 3.3v on their line, there is only 1.2v. Weird right? Because of the size of this board I had to use 4 layers, and the signal lines run through one of the inner layers. Could there be some sort of capacitance causing the LEDs to get power? If so could be what's causing the bootloader not to work? The SPI pins run on inside traces as well. I have attached some photos and my project files below.