何らかの原因でマイコンのデータが破損しブートローダーが消えてしまった、そもそも製品出荷時にマイコンにブートローダーが書き込まれていないなどして、ArduinoをPCに接続すると認識はするもののスケッチが書き込めない事がある。以前中国から購入したArduino Nano互換機はブートローダーが書かれていない事が多々あった。
ハード的には問題無くブートローダーがおかしくなっている / 書き込まれていない状態であれば、ブートローダーを書き込む事でArduinoが復活する可能性が高い。
Arduino UNOであればブートローダーがおかしいか確認する方法の一つとして、Arduinoを通電した際にオンボードのLEDの点滅を見て判断する。ボード上に付いている「L」と書かれたLED。
正常な状態であれば、Arduino UNOを通電した際直後に高速で数回点滅する。通電直後から点滅せず点灯状態が続く様であれば、ブートローダーが正しく動作していない可能性がある。
正常なArduinoを使ってブートローダーを書き込む
正常に動作するArduinoがあれば、正常なArduinoと修理したいArduinoをワイヤーで接続してブートローダーを書き込む事が出来る。 正常なArduinoをAVR ISP(プログラマ)として使用する。AVR ISPとして動かすためのスケッチが標準でArduino IDEに含まれているので、スケッチ例→ArduinoISP→ArduinoISPを開いて書き込む。
ブートローダーを修復したいArduinoと正常なArduinoを準備し、ワイヤーでピンを繋ぐ。
正常なArduino | 修復対象Arduino |
5V | 5V |
GND | GND |
D10 | RESET |
D11 | D11 |
D12 | D12 |
D13 | D13 |
ICSPピンに繋ぐ方法もある。
正常なArduino | 修復対象Arduino |
5V | Vcc (ICSP-2) |
GND | GND (ICSP-6) |
D10 | RESET (ICSP-5) |
D11 | MOSI (ICSP-4) |
D12 | MISO (ICSP-1) |
D13 | SCK (ICSP-3) |
ICSPピンは基板端にある6本のオスピン。Arduino UNOやNanoのUSB側を左側にした場合、Unoは左上がピン1、Nanoは右下がピン1と、配置が逆になっているので接続の際はピンを良く確認する。
ピン1を左上とした場合のピン位置と役割は以下の様になる。
1 – MISO | 2 – +Vcc |
3 – SCK | 4 – MOSI |
5 – Reset | 6 – GND |
Arduino UNO同士を接続する場合の配線
Arduino UNOとArduino Nanoを、ICSPを使い接続する場合の配線
Arduino UNOとArduino Nanoを、デジタルピンを使い接続する場合の配線
配線が出来たら、ブートローダーを書き込むArduinoの種類をボードに設定し、書き込み装置として「Arduino ISP」を選択、「ブートローダーを書き込む」を実行する。