Arduinoに書き込めない問題を修正する方法[invalid device signature]

ArduinoIDEからスケッチをアップロードしようとすると、以下のようなエラーが出てアップロードできませんでした。
boards.txtを修正して対処したのでその方法をメモしておきます。

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

—-2017年12月24日追記—-
タイトルを変更しました。
旧タイトル「ArduinoIDEのスケッチがアップロードできないエラー」

このエラーは2013年1月に発生したエラーです。
まだArduinoIDEのバージョンが1.Xになる前の話です。
2017年12月現在、同じ(原因による)エラーには遭遇していません。
—-追記ここまで—-

目次

概要

ArduinoIDEからスケッチをアップロードしようとすると、以下のようなエラーが出てアップロードできませんでした。
boards.txtを修正して対処したのでその方法をメモしておきます。
なお、このエラーは様々な原因が起因して発生します。この方法以外で解決する場合も多くあります。
今後このboards.txtの内容が原因で書き込みできない問題が発生した際のためにこのメモを残します。

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

調査

「ちびでぃ~の壱」(Arduinoクローン)で試してみても同じエラーが出ることが確認されたので、少し調べてみました。
すると、”.upload.protocol”の設定がArduino 0023とArudino 1.0.3では異なるということがわかりました。

Arduino 0023のboards.txt

##############################################################
atmega8o8.name=[Optiboot] ATmega8 8MHz
atmega8o8.upload.protocol=stk500
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200
atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F
atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
##############################################################

http://tiisai.dip.jp/?p=1413

Arduino 1.0.3のboards.txt

##############################################################
atmega8o8.name=[Optiboot] ATmega8 RC8MHz

atmega8o8.upload.protocol=arduino
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200

atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F

atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard
##############################################################

http://tiisai.dip.jp/?page_id=2109

この問題はArduinoのフォーラムでも取り上げられていました。

http://arduino.cc/forum/index.php?topic=89714.0

どうやらバージョンによって使えたり、使えなかったりするようです。

ArduinoのGitHubをのぞいてみると、以下のコミットで”upload.protocol”を”stk500″から”arudino”に変更していました。

boards.txtを使い回ししていたことが原因で今回のエラーが発生したことがわかりました。

https://github.com/arduino/Arduino/commit/bd823bf2013e499877b48ca3c22cef2d86bc88a6

まとめ

2013年1月現在、最新版であるArudinoIDE 1.0.3のboards.txtではstk500をupload.protocolとして指定しません。
“Yikes! Invalid device signature.”とアップロードエラーが出た場合はupload.protocolを確認してみてください。
ArudinoIDE 1.0.3ではupload.protocolに「arduino」を指定します。

更新履歴

2019年6月9日 タグを編集

この記事が気に入ったら
フォローしてね!

よかったらシェアしていただけると励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Memotekiの管理人です。このブログには学んだことや共有しておきたいことをマイペースにメモしていきます。2020年からは日記も書き始めました。

コメント

コメント一覧 (2件)

  • なのぼ〜どAGのファームウェア書き込みで同じ現象が出ました。
    ArduinoIDEのバージョンは1.0.5でした。
    こちらの記事のとおり、boards.txtのprotocolをstk500からarduinoにしたところ、無事ArduinoIDEからの書き込みができるようになりました。
    ありがとうございました。

コメントする


The reCAPTCHA verification period has expired. Please reload the page.

目次