Important context:
A couple weeks ago, I ported a C based nqueens program I found online to the Arduino Uno.
Today, and I'm all like "LETS OVERCLOCK THE NQUEENS ARDUINO!!!" Ugh.
I swapped the 16 MHz crystal for a 19.86 MHz one. Everything went well. The Uno's onboard USB UART controller doesn't play ball, and the serial output is garbled, but that's to be expected.
I swap the ATmega328P to another Uno board I have, change the baud rate to compensate for the increased base clock, and no more serial output. Swapped chips between the boards, both 328Ps are fine. Checked my connections between the CH431 and UNO, they are good. Changed crystals, no dice. The CH431 still works, too.
Swapped back to the original 16 MHz crystal. It's detected properly. /dev/ttyACM0 exists, but the 328P never starts running, and the Arduino IDE complains about the programmer not responding.
My only guess is that the ground loop between the CH431 and the Uno board itself destroyed it. Some of the LEDs on both the Uno and CH431 would light up with both ground and the UART lines connected.
Hell, this same Uno claimed the life of my HMP-139 after I connected the two together. (The GPIO MOSFETs on lower quality silicon in the toy must have been destroyed.)
Well, it probably won't claim the lives of any more electronics now.
Is the ground loop theory correct?