Electronic – Is it possible to physically destroy a microcontroller with software

damagemicrocontrollersoftware

Assumptions:

  • No external circuitry connected (other than the programming circuit, which we assume to be correct).
  • uC is not faulty.
  • By destroying I mean releasing the blue smoke of death, not bricking it in software.
  • It's a "normal" uC. Not some very weird 1-in-a-million very purpose specific device.

Has anyone ever seen something like that happen? How is it possible?

Background:

A speaker of a meetup I assisted to said it was possible (and not even that hard) to do this, and some other people agreed with him. I have never seen this happen, and when I asked them how it was possible, I didn't get a real answer. I'm really curious now, and I'd love to get some feedback.

Best Answer

Of course you can, with the HCF instruction!

That said, I say that's impossible without any external circuitry, apart from power and such.

Even including some non purposely faulty connections possibly won't cut it: if you tie all the gpios to a power rail, setting them as output (to the opposite power rail) that can dissipate quite a lot of power. A gpio pin is probably protected against short circuit and such so nothing harmful will happen.

Designing an external circuit that destroys the chip at will is not trivial too in my opinion. The first thing that comes to mind needs a somewhat high voltage power supply, a nmos and a resistor:

schematic

simulate this circuit – Schematic created using CircuitLab Where:

  • \$V_{CC}\$ is the usual supply for the micro, some 3v3 to 5V or whatever is needed
  • HV is a supply which voltage is well above the absolute maximum ratings of the micro
  • D1 is there to protect your valuable 3V3 voltage source
  • R1 pulls the mosfet gate high when the micro is not keeping it to ground
  • M1 is the designated killer

the operation is simple: if the micro releases GPIOx M1 turns on, Vcc rises and your chip catches fire. Note that this is a crappy setup, for example HV must be turned on after you are extra sure that GPIOx is firmly held to ground. Some transistors might not like some -5V Vgs, and so on... But you get the picture.

Related Topic