NANOが壊れました

NANOが壊れました。しかし、NANOといっても、本家のArduino NANOではなく、NANO互換機です。アリエクなら、300円程度で購入できますので、諦めはつきます。しかし、捨ててしまう前に何とか、復旧を図ってみたいと思います。
NANOが壊れた状況
NANOのブートローダーを書き換えようとしたところ、書き換えができませんでした。
ちなみに、USBケーブルを介してPCに接続すると、NANOの電源LEDは点灯します。したがって、電源周りの故障ではないようです。

また、PCに接続すると、シリアルポートは割り当てられます。したがって、USB-シリアルコンバーターは動作しているようです。
そこで、スケッチの書き込みができるか、試してみました。すると、以下のようなエラーが出て、書き換えできませんでした。

エラーの状況から察すると、ブートローダーが応答していないようです。
NANOが壊れたからブートローダーを上書きしてみる
どうやら、壊れたNANOはブートローダーが動作していないようです。そこで、UNO互換機にArduinoISPスケッチを書き込み、ブートローダーを書き込みました。
しかし、残念なことにブートローダーの書き込みも失敗しました。

シグネチャーが違っているようなので、avrdude.confを書き換えてみました。今度は、ATmega328pbのシグネチャーに書き換えて試してみました。

avrdudeを直接たたいてシグネチャーを読みだしてみる
arduino.ideを介してのブートローダー書き込みは失敗しました。そこで、今度はavrdudeを直接たたいてシグネチャーを読みだしてみました。

壊れたNANOは、かなり重症のようです。avrdudeを直接たたいても、シグネチャーは読みだせませんでした。
ちなみに、普通はこんな風にシグネチャーが読みだせます。-Fオプションをつけていますので、誤ったシグネチャーを設定しても、正しい値を読みだせます。

シグネチャーも読みだせないということは、MCUが壊れてしまったということかも知れません。最後の手段として、MCUをまっさらにリセットする方法もあるらしいです。しかし、今回はかなり重症で、私の手に負えません。壊れたNANOはオブジェにします。
シグネチャーの謎が一つ解けた
壊れたNANOを何とか復活させようと頑張ってみました。しかし、残念ながらうまくいきませんでした。しかし、avrdudeを直接たたいて分かったことがあります。それは、シグネチャーです。
Arduino互換機の場合、MCUには安価なATmega328PBが使われています。これは、本家Arduinoで使われているATmega328Pの後継機です。Arduinoとして使っている場合に、恩恵はありませんが、328PBの方が高機能です。しかし、価格は安く抑えられています。この手の電子部品ではよくあることです。
もちろん互換性は確保されています。しかし、シグネチャーが異なるため、ブートローダー書き込み時には、ひと手間必要です。avrdude.conf内のシグネチャーを書き換えなければなりません。
書き換後、avrdude.confを戻さずに、スケッチを書き込むとエラーが発生します。これが謎でした。しかし、この謎が解けました。
それは、ブートローダーが動いている場合は、ブートローダーがUART経由でシグネチャーを返します。しかし、ブートローダー書き換え時にはUARTを使いませんので、ブートローダを介しません。そのため、MCUが直接シグネチャーを返します。
つまり、通常はブートローダーにハードコーディングされたシグネチャーが返されるわけです。そのため、違うMCUを使用した互換機でも、本家Arduinoと同じ動きになるわけです。