So it's with mixed feelings we managed to prove that our chinese-sourced atmega128 chips must be fakes.
Using the last few pin header connectors we had lying around, we stuck one of our suspect atmega128 chips onto a home-etched breakout board (the few pins unsoldered in the photo above were not critical for the operation of the chip) and tried it with the usbtiny programmer
It was almost with relief that the AVRDudess interface reported...
Unable to detect MCU.
This is consistent with the report(s) we were getting with the chips soldered onto our pcbs, earlier in the day. Interestingly, if we tried to "force-write" the hex file to the chip, this time it reported back a different device ID:
Now had the device ID been consistent, we might be considering the programmer or the software could be incorrectly identifying the mcu (perhaps it might have been a later revision, or some other weird incompatible version) or maybe the software needed to be updated (the PICKit2 software needs an updated device list to successfully recognise 16F1825 chips after a fresh install, for example).
But having errors and inconsistency smacks of something being fundamentally wrong.
We've got some genuine AVR chips on order from Farnell. They probably won't be here 'til Tuesday, after which we'll be able to prove whether or not the manufactured pcbs actually work.
But we can be pretty confident that we've managed to prove what we set out to prove - namely that the problem lies with the chip and not the pcb. Unfortunately, it means we've spent most of the afternoon working on something to demonstrate that another project can't possibly work!