質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

994閲覧

Arduino Pro Microが書き込めない

wasa26

総合スコア1

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2024/01/30 13:24

実現したいこと

Arduino初心者ですが、orbionというフリーの3Dマウスを製作したいと考えています。
ソースコード等は下記に記載されています。
https://github.com/FaqT0tum/Orbion_3D_Space_Mouse

発生している問題・分からないこと

上記のリンクの設計図通りに配線し組み立てたのですが、その後の動作チェックでプログラムの書き込みが出来ず動作しません。Pro Microは有線でPCに接続していますが、常に赤LEDが点灯しており、書き込み時にも点滅しません。

エラーメッセージ

error

1Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding 2 3avrdude: butterfly_recv(): programmer is not responding 4avrdude: butterfly_recv(): programmer is not responding 5avrdude: butterfly_recv(): programmer is not responding 6avrdude: butterfly_recv(): programmer is not responding 7avrdude: butterfly_recv(): programmer is not responding 8Found programmer: Id = ""; type = 9 Software Version = .; Hardware Version = . 10avrdude: butterfly_recv(): programmer is not responding 11avrdude: butterfly_recv(): programmer is not responding 12avrdude: error: buffered memory access not supported. Maybe it isn't 13a butterfly/AVR109 but a AVR910 device? 14avrdude: initialization failed, rc=-1 15 Double check connections and try again, or use -F to override 16 this check. 17 18avrdude: butterfly_recv(): programmer is not responding 19avrdude: error: programmer did not respond to command: leave prog mode 20avrdude: butterfly_recv(): programmer is not responding 21avrdude: error: programmer did not respond to command: exit bootloader 22 23avrdude done. Thank you. 24 25*** [upload] Error 1

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

「avrdude: butterfly_recv(): programmer is not responding」で検索し、シリアルポートが正しく設定されていないことが問題の原因だと推定しました。(https://teratail.com/questions/141598)
当時VSCodeで書き込みをしていましたが、シリアルポートの設定の方法が分からなかったのでIDEを使うことにしました。しかしシリアルポートが設定できなかったため、USBが認識されていないのでは?と考え、Arduino IDEの再起動、USBケーブルの抜き抜き差しを行いましたが改善されませんでした。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

km123

2024/01/30 15:55

書き込みの際にはボード設定時にCOMポートを自分で選択する必要がありますが、デバイスマネージャで見てもCOMにArduinoが出てこないという状況でしょうか? Arudinoは正規品ならそのまま認識したと記憶していますが、中国製の安い互換ボードの場合はUSB変換にCH340などのチップが使われているため、専用のUSBドライバが必要なので確認してみてください。
TakaiY

2024/01/30 16:53

使っているUSBケーブルはデータ通信ができる規格のものを使っていますか? ものによっては充電専用で電源しか配線されていなかったりします。 書き込み時にリセットボタンは押していますか?
thkana

2024/01/30 22:31

> programmer is not responding は、プログラマ(書き込み器:この場合にはマイコンのブートローダ)が応答しない場合のメッセージです。なんらかのシリアルポートには繋がれています。マイコンとは別のシリアルポートに繋いでしまっている、という可能性もありますが。これは普通「シリアルポートが設定できない」と呼ばれる状態ではありません。 (参考までに、「検索し、シリアルポートが正しく設定されていないことが問題の原因」と断じるに至った情報のURLを教えていただければと思います。) 「シリアルポートが設定できなかった」というあなたの解釈ではなく「実際にやったことと起こったこと」(xxをooに繋いで△△のソフトの□□ボタンを押したら●●というメッセージが出た、みたいな)で説明してみてください。なお、「コメント」に対して情報を追加する場合は、コメント欄ではなく質問に追記していただけると情報がまとまってよろしいかと思います。 ちみなに、つい先日似た質問がありました( https://teratail.com/questions/phfpdo25mbx8if )が、これが典型的な「シリアルポートが設定できない」と呼ばれる状態と言えるかと思います。
wasa26

2024/01/31 21:27

km123様 takaiY様 thkana様 コメントありがとうございます。本当に助かりました。 結果として、USBが通信規格ではないことが原因でした。いくつかの手持ちケーブルでは反応しなかったのですが、買い直したところCOMポートを選択でき、無事書き込めました。 >中国製の安い互換ボードの場合はUSB変換にCH340などのチップが使われているため、専用のUSBドライバが必要 こちらはチップがATmega32U4でしたので今回は大丈夫でした。 > あなたの解釈ではなく「実際にやったことと起こったこと」で説明してみてください その通りですね。事実ベースで話せるよう心がけます。 おかげさまで解決できました。 御三方ともありがとうございました!
thkana

2024/02/01 00:22

ちょっと「起こったこと」がわかっていないのですが、つまり ・Pro Microは全く認識されていなかった ・書き込みは、Pro Microではないなにか別のUSBシリアルポートに対して行おうとして失敗していた ということですか?
wasa26

2024/02/01 13:43

1点目はその通りですが、2点目は不明です。もし「programmer is not responding」が何らかのシリアルポートに接続している場合に発生するエラー文ならば、その通りです。 ただ、エラー文が表示されたとき、私がVScodeで使用したコードでは [env:Leonardo] platform = atmelavr board = Leonardo framework = arduino monitor_speed = 115200 lib_deps = ... というコードで書き込み先を指定していました(使用したPro Micronoのボード選択名はArduino Leonardoです。通信可能ケーブルに取り替えるとこのコードで書き込めました)。 個人的には、別のシリアルポートに対して書き込みを行おうとして失敗したというよりは、指定のシリアルポートが応答しなかった、という状況だと思っています。
thkana

2024/02/01 14:01

何らかのシリアルポートに接続されていなければ、書き込みの処理に入りません。書き込みの処理が始まって、「接続相手が応答しない」と言っているのですから、何らかのシリアルポートに接続しています。Pro Microが全く認識されていなかったのなら、他の何かに対して書き込みの手順を行っていた、以外にあり得ませんね。
wasa26

2024/02/01 14:27

なるほど...接続しないと書き込み処理に入らないんですね。しかし、どのポートに接続していたかは分かりません。コード上の指定ボードはPro Micro(Leonardo)ですし、PCにPro Micro以外を接続してもいません。 個人的な疑問ですが、そういう場合ってどんなシリアルポートに接続されているんでしょうか?例えばArduino IDEでは外部デバイスが無接続でも「不明」ボードが選択できますが、(ポートは/dev/cu.wlan-debug と/dev/cu.Bluetooth-Incoming-Port Serial Portのようなものです)それはこれらと似たようなものですか? つまり、指定のシリアルポートに接続できていない場合に接続したとみなしエラーを一元化する、というような機能を持たせていたりするのでしょうか。
thkana

2024/02/02 03:45

> コード上の指定ボード 「コード上」にはボードやポートを指定する場所はないと思いますが? ケーブルが通信対応で無いというより、なんか粗悪なケーブルでコネクタ部分の接触が悪いとかそういう可能性もある気がします。まぁ、あまり追求しても仕方ないかしら...
wasa26

2024/02/02 22:38

なるほどです…。勉強になりました。ありがとうございました!
guest

回答1

0

ベストアンサー

コメントから転記しておきます。

ProMicroに電源は入るのに、PCから認識できないということは、使っているUSBケーブルがデータ通信ができる規格のものでない可能性があります。
スマホなどの充電に使うものは、充電専用で電源しか配線されていなかったりします。

投稿2024/02/01 01:29

TakaiY

総合スコア14291

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wasa26

2024/02/01 13:50

回答ありがとうございました。 通信規格ではないケーブルだったという初歩的なミスでしたが、ケーブル単体で通信規格か充電規格かを見分けるのは難しいので、改めて指摘してくださりとても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問