Problems uploading bootloader to custom board.


I've got some serious issues uploading the bootloader to some custom PCB I design with an Atmega328 as its core in a typical Arduino configurarion (16MHz, +5V, etc..). The uC is smd in TQFP, the crystal 22pf capacitors are 1206 smd too, the crystal is TH. I'm using an Arduino board as ISP to try to upload the bootloader.

So far I've tried eight board. Only half of them have worked, so I want to think it's not a PCB design fault 'per se'.
So I don't understand what's really going on, why half of them worked and the other half not: the components are the same, my hand soldering technique it's the same, and the boards are all the same (they are all supposed to be e-tested)

The symptoms in the nonworking boards are the same: the fuses program correctly, after that the microcontrollers simply stop responding, all I got from them is device id 0x0000000, as if the there was some clock problem.

Some things come to my mind right now:

  • My hand soldering technique is way too poor and I end up damaging some of the chips from excessive heat
  • ESD. I'm really used to the fact atmels are real tanks when it comes to ESD, or at least in dip format, maybe not so much in SMD packages.
  • Randomly bad components from factory. Either the ATMEGas328 themselves, or the the crystals (ECS brand) or the capacitors (AVX). They all are bought from Digikey.
  • The PCB's are simply of very bad quality and not really e-tested. I ordered them from SeeddStudio.

I don't know, I'm really intrigued by the fact they work until the fuse programming, or others fully work.
I'd really thank some advice on this.


If the chip stops responding right after programming the fuses, it is likely that it isn't clocked properly. Check the quartz etc.