例えば、下のような用途に使うために、ArduinoのUSBシリアルのファームウェアを書き換えてしまった後、元に戻す作業メモです。
■今回の作業環境
・ホストマシン:iMac (macOS High Sierra 10.13.3)
・ボード:Arduino Uno R3
・Arduino IDE: 1.8.5
■ファームウェアを元に戻す時は、Arduino.appの中にあるhexファイルを使うと簡単です。
Arduino.app/Contents/Java/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial のディレクトリに数種類のボードに応じたファームウェアがあるので、対象ボード用のファイルを使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ ls Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex Arduino-usbserial-atmega16u2-Uno-Rev3.hex Arduino-usbserial-mega.hex Arduino-usbserial-uno.hex Arduino-usbserial.c Arduino-usbserial.h Board Descriptors.c Descriptors.h Genuino-usbserial-atmega16u2-Mega2560-R3.hex Genuino-usbserial-atmega16u2-Uno-R3.hex Lib makefile readme.txt |
今回はArduino Uno R3でしたので、Arduino-usbserial-atmega16u2-Uno-Rev3.hexを使います。
1 2 3 |
sudo dfu-programmer atmega16u2 erase sudo dfu-programmer atmega16u2 flash Arduino.app/Contents/Java/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex sudo dfu-programmer atmega16u2 reset |
これでファームウェアが元に戻っているはずですので、再起動してスケッチの書き込みを試して問題なければ完了です。