"Dead pin" on Arduino Mini Pro - can it be "revived"?

Hi.

(Note: I tend to write long introduction, so busy people can just skip to the last paragraph :slight_smile: ).

I have a sophisticated prototype PCB circuit which has a Teensy 3.2 as a main board, and an Arduino Pro Mini as a secondary board (the Arduino acts mainly as a serial port relay, because for whatever reasons, Teensy does not communicate properly with some device).

Recently, pin 12 of the Arduino was inexplicably "toasted" during some tests; perhaps I made some short circuit when I played with the multimeter. Its main purpose was to send a 5V signal to another equipment, but now the voltage on that pin is only around 1.8 V, which is not enough to "wake up" the target device. I reprogrammed the Arduino to use pin 10 for that signal, which works fine.

However, something bothers me: the thing that caused damage to pin 12, might have caused other damage somewhere else on the Arduino board, and although the entire circuit worked fine since then (a total run of about 4 hours), I do not want unexpected things to happen (such as Arduino catching fire) when the circuit is left unattended.

Replacing the Arduino board is difficult on this assembly, since it's already soldered... so I was thinking... would it be possible to repair the Arduino and "revive" the affected pin, by just replacing the Atmel chip with another one, from a brand new Pro Mini?

Thanks.

Simply replacing a chip has no guarantee.
It could also be that other components may also be damaged.

If there is a spare pin available you could try jumpering to that pin after disconnecting the bad pin.

Otherwise you are looking at a larger de-solder job.

There really isn’t much on a Pro Mini besides the processor. You have the voltage regulator and the crystal or resonator, and some capacitors. There’s no guarantee, but I would think replacing the 328P would eliminate any damage that may have been caused. But that’s assuming you can remove the MCUs from both boards and solder the replacement without doing any damage. You wouldn’t catch me trying to do that, but maybe you’re an expert.

One thing you might want to watch out for though. The last batches of Pro Minis I’ve bought had counterfeit processors that don’t behave properly. So it would be safer to buy the replacement chip from a reliable distributor of Atmel parts, like Digikey or Mouser. But then you would have to flash the bootloader to that chip, which could add another complication if the pins used for that aren’t available in your setup.

Kevin Darrah has come up with a sketch that seems to identify the counterfeit chips:

#include <avr/boot.h>
#define SIGRD 5
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("");
  Serial.println("boot sig dump");
  int newLineIndex = 0;
  for (uint8_t i = 0; i <= 0x1F; i += 1) {
    Serial.print(boot_signature_byte_get(i), HEX);
    Serial.print("\t");
    newLineIndex++;
    if (newLineIndex == 8) {
      Serial.println("");
      newLineIndex = 0;
    }
  }
  Serial.println();
}

void loop() {
}

The values it produces may vary among chips but the general pattern for the counterfeits is mostly FFs.

bad Pro Mini clone - 2019 date code
1E BE 95 FF F FF FF 26 
FF FF FF FF FF FF 58 FF 
FF FF FF FF FF FF FF FF 
FF FF FF FF FF FF FF FF 


good Pro Mini clone - 2015 date code
1E A2 95 FF F B8 FF 26 
FF 9 FF 17 FF FF 57 35 
37 34 39 33 FF 7 18 2 
17 1 12 6 13 6 FF FF 


good Nano clone - 2018 date code
1E A8 95 FF F C6 0 26 
FF 8 FF 17 FF FF 57 38 
38 35 38 39 FF 9 19 B 
17 3 12 9 13 9 FF FF

So you might want to run Kevin’s sketch on that “brand new” Pro Mini to make sure the processor is good.