Arduinoスケッチのアップロードの問題-avrdude:stk500_recv():プログラマーが応答していません


133

ATmega328を備えたArduino Duemilanoveを持っています。私はUbuntu 12.04(Precise Pangolin)に取り組んでおり、Arduino IDEのバージョンは1.0です。最近、Blinkのようなサンプルスケッチをいくつかアップロードしようとしました。ただし、私の試みはどれも機能せず、試行するたびに同じエラーが発生します。

avrdude:stk500_recv():プログラマーが応答していません。

[ ツール/dev/ttyUSB0 ] →[ シリアルポート ]で有効にしました。また、リストから正しいボード(ATmega328を使用したDuemilanove)を選択しました。それでも、問題を解決できません。私もオンラインで検索しましたが、この問題に対する他のどの応答も私には役に立たないようです。この問題が発生する理由と解決方法を教えてください。

また、オンボードATmegaを回転させて、反対方向に取り付けてみました。現在、アップロードに問題はありませんが、その後は何も起こりません。オンボードLEDも点滅していないようです。


Arduino unoボードのRSTをGNDから切断します。私はこのチュートリアルに従い、元に戻すのを忘れていました。
ArtiomLK 2018年

これは、ボーレートが誤った(おそらく高すぎる)値に設定されていることが原因である可能性があります。
Konrad Gajewski

回答:


108

OS XでArduino IDEを実行しているCrowduinoでこの問題が発生しました。解決策は、アップロード中に詳細な出力をオンにすることでした(Arduino IDE設定ペインで)。

次に、アップロードするときに、エラーの直前にAVRDUDEが 3つのパケットを送信していることを確認できますavrdude: Send: 0 [30] [20](対応するRXフラッシュがボード上にありavrdude: ser_recv(): programmer is not respondingます)。

トリックは、これら3つのパケットが送信される直前にボードのリセットボタンを押すことです。その後、プログラムが正常にアップロードされます。


2
少なくとも問題は解決しました。どのようにしてそれを理解しましたか?
SlackOverflow 2014年

8
@daniele他の人々は、X秒後にリセットすると機能することに気づきました。パケットはハンドシェイクの試みだと思った。基本的に、私はGoogleを使用してそれを解決しました。忍耐とボードのあちこちで遊んでいます!
hoipolloi 2014年

私はリセットを試みましたが、一度はうまくいきましたが、これを読むまで、適切なタイミングを知ることができませんでした。ありがとう
Ulises Layera 14

4
参考までに-この問題を永続的に解決するには、最新のFTDIドライバーをインストールする必要がありました
Scott Silvi

2
FTDIドライバーの更新とArduionの再起動が役に立ちました(MacOS 10.9.4、Arduino Nano 328)
peetonn 2014

80

Tx / Rxピンに入力がないことを確認します。その後、動作します。


これは私のために働いた!RX / TXピンにBluetoothモジュールを接続しました。
johngreen

これでうまくいきました。ピン(および電源、念のために)を外した後に別のエラーが発生したため、USBケーブルも外してarduinoを再起動する必要がありました
oneindelijk

68

私は同じ問題を抱えていました–これが私がこの質問を見つけた理由です。

プロセッサを「ATmego328P」から「ATmego328P(Old Bootloader)」に変更するだけで済みました

問題は解決しました–少なくとも私にとっては。

ここに画像の説明を入力してください


新しいIDEのプロセッサ選択パネルはどこにありますか?
ムハンマドアリ

3
@MuhammadAli:あなたの質問に答えるためにスクリーンショットを追加しました
Edgar

祝福してください、それも私の問題でした。
ofekp

2
この問題は、ELEGOO NANOボードを使用している場合に発生する可能性があります。同じソリューションがFAQドキュメントにも記載されています。
chetan92

ボードは、Arduinoのナノで、2018年1月だけ選択するプロセッサに以前に製造された場合>「ATmega328P(旧ブートローダ)」トリック(行いますarduino.cc/en/Guide/ArduinoNano#toc4
ビットマン

48

この辺りの答えには、良いアイデアの中にブードゥートークがあります。何が起こっているのかをもう少しリアルにして、チェックすべき良いことをまとめましょう。

基本的に、それが発生した場合、AVRDUDEの詳細モードを有効にして、何が起こっているのかをよりよく理解することをお勧めします。これを行うには、設定に移動して詳細モードボックスをオンにするだけです。Arduino IDEから離れて、AVRDUDEの出力をより快適に読み込めるようにコンソールを起動することもお勧めしuploadます。ボタンをクリックするとすぐに表示されます。

-vコマンドコールに3または4 を配置するためにここで重要なことは何ですか。Arduinoがどのようにインストールされたかに完全に依存しているので、パラメーターが構成されたAVRDUDEコマンドのように見えます:

avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex

正しいコマンドラインを使用するための適切な方法は、冗長性が有効になっているときに、Arduino IDE出力ログの詳細出力からコピーすることです。

を取得したときavrdude: stk500_recv(): programmer is not responding、それは基本的、実際に点滅が始まる前に、何か問題が発生していることを意味します。

基本的にチェックする必要があります(ハードウェアからソフトウェア、低レベルから高レベル):

  • ケーブルやコネクタにマイクロカットがない場合。
  • はんだ付けポイントが短絡していない場合(つまり、周囲の金属に触れている場合)は、次のことを意味します。
    • Rxとの間のPCBに短絡がない場合Tx(通常はピン10)の
    • ボードの下の金属要素との接触がない場合、またはコンポーネントの脚の間の小さなビット(FTDI、ATmegaチップなど)がない場合。
  • ATmegaチップの電源が切れていない場合(GND / V CCショートカットまたはカット、またはV CC入力が停止している…);
  • 場合10のArduinoのピンは(いくつかのシールドまたはカスタム設計で使用されていない/!\には適用されませんレオナルドそれは独立したUSBハンドリングを持っているとして)。
  • USB-UARTコンバーターに問題がない場合(FTDI古いDuemilanoveまたは新しいArduino UnosのATmega16U2)。
  • ATmega328ならチップが揚げ又は誤ってインストールされています。
  • ブートローダーが上書きされたか、失敗した場合。
  • ブートローダーに入るのに正しいボーレートが適用されている場合;
  • ターゲットのマイクロコントローラとボードに適切な設定が行われている場合。

通常はavrdude -v -v -v -v、どの段階で失敗するかを見つけるのに役立ちます。USB接続がまったくできない(ケーブル障害、USB / UART、PCB…)か、ブートローダーの問題か。

更新:オンボードのATmegaを回転させ、反対方向に取り付けてみました。現在、アップロードに問題はありませんが、その後は何も起こりません。オンボードLEDも点滅していないようです。

ATmegaの位置を逆にしても機能しない場合は、電源をデジタルピンに配置したためにチップが焼けた可能性があります。


ところで、Arduinoの出力には、(アップロードを開始する前の)最後の行にavrdudeへのパス、構成へのパス、およびフラッシュファイルへのパスがあります。これは簡単にコマンドラインにコピーして貼り付け、-vを追加できます。
powtac 2015年

確かに、しかし、iirc(私はひどいUIをほとんど使用していません)、詳細設定で詳細出力を有効にする必要があります
zmo

1
私にとって、これはeclipse avrdude構成で誤ったボーレートを設定したために起こりました。Arduino IDEでコマンドラインを見たとき、それを理解しました。
Tejas Kale

avrdude: no programmer has been specified on the command line or the config file Specify a programmer using the -c option and try again
K-SOの毒性が高まっています。

修正済み:avrdude -v -v -v -v -C/etc/avrdude.conf -patmega328 -carduino -P/dev/ttyACM0 -U flash:w:~/Arduino/WebServer/WebServer.ino.standard.hex
K-SOの毒性が増加しています。

21

ボードが正しく選択されているかどうかを確認してください。メニューツール->ボードをクリックし、正しいボードが選択されているかどうかを確認します。


1
これで終わりです。宇野を揚げて新しいメガを手に入れるまで使っていました。新しいメガはこの問題を見ていました。このメニューが存在することさえ知りませんでした。ありがとう!
マイク

そうではありませんが、正しいシリアル番号が選択されていません...確かに何か考えてください!ありがとう!
heltonbiker 2016年

どのボードが私のArduinoと互換性があるかをどうやって知るのですか?
turmuka

12

ジャンパー線がピン0および1に接続されているかどうかを確認できます。これらのピンはシリアル通信に使用され、接続されたワイヤーはコードがボードにアップロードされないようにする可能性があります。

何も接続されていない場合は、AVRDUDEのバグである可能性があります。更新してみてください。


3
0と1に接続されているものは絶対にありません。avrdude更新された最新バージョンです。
パスタファリアン2013年

他にボードはありません。:(それはボードに問題がある可能性がありので、同様のエラーが、Windows上で発生しているようだけど。
Pastafarian

Serial.println()はい、それは私が言うことです...あなたはそれがだけではないかどうかを確認するために例を試すことができled 13ます。
ladislas 2013年

10

私もこの問題に遭遇し、USBシリアルドライバーを再インストールすることで解決しました。Plsも参照:http : //arduino.cc/en/Guide/Howtoおよびhttp://www.ftdichip.com/Drivers/VCP.htm


1
私は私のArduino Duemilanove ATMega328を使用するたびに、私はいつもこれを行うことを忘れて、また正しい理事会は、1.0.6のなどのツールの下で(Arduinoのアプリで選択されていることを確認してください。
アンドリュー

1
arduino IDEをインストールしたばかりの場合、この答えが(おそらく)探しているものです!
Zaxter 2015年

5

上記のエラーには3つの段階があります

  1. ブートローダーがクラッシュした場合
  2. IDEから適切なポートと適切なボードを選択しなかった場合
  3. 他のシリアルポートと通信している場合、つまりGNDとTxピンが他の通信デバイスに接続されている場合

私の場合、間違ったボードを選択していました。AMPSありがとうございます!
Jamshaid Kamran 2017

3

以下の手順に従って、OS X v10.10(Yosemite)で問題を解決しました。

FTDIチップとOS X 10.10

ただし、hoipolloiによって提案されたトリックは、このバージョンでも一時的な回避策として機能しました。


これは10.10でもうまくいきました。その投稿に続いて、手順4、5、または6を実行する必要はありませんでした。これで、Arduino IDEを使用してスクリプトを何度も更新でき、そのエラーは発生しません。
dbainbridge 2014

3

Arduino Unoを初めて試したときも同じ問題がありました。

私の解決策は非常に簡単でした。USBケーブルを差し込んでから差し込むだけです。


3

のWindows 7、私は別のエラーメッセージで、この問題を毎回複数回持っていました。基本的に、IDEは間違ったポートに送信しています。

この問題を解決するには、メニューに移動ツールポート →[お使いのボードが上であることをCOMポートを選択]。

ボードのポートを再確認してください:

  1. スタートデバイスマネージャ

    スタートメニュー

  2. ArduinoドライバーがIDEのポート設定(上記)と一致するポートの下にリストされていることを確認します

    デバイスマネージャ

  3. 私のボードはポートの下にリストされていますCOM1。必要に応じて、ドライバーの詳細設定でポートを変更するだけです。

    ここに画像の説明を入力してください


2

Macで実行しているArduinoでもこの問題があります。私のArduinoのうち2つ(Arduino UnoとFTDIに接続されたArduino Pro)で発生します。

Unoの場合は、ケーブルをコンピューターに接続してアップロードを押し、「TX」LEDが点滅するまでカウントを開始します。次に、アップロードを繰り返しますが、TX LEDが点滅する直前にリセットボタンを押すと、アップロードが成功します。

USBケーブルを変更することでこの問題は修正されると後で判断しました。


1
私のために修正されたUSBケーブルの交換
Paul Bailey

2

他の場所でこの答えが見つからなかったので、私はこれを投稿しています。Arduino IDEを1.8.9にアップグレードした後、私のすべてのArduino nano中国語(CH340)クローンにこの問題がありました。私にとってうまくいったのは、nanoのICSPヘッダーを使用して、障害のあるnanoでブートローダーを焼き付けなければならない予備のArduino Unoを使用することでした。このために私が行ったすべては、ここの指示に従うことでした:chinese-clone-of-arduino-nano-with-chip-ch340g-how-to-fix-it。私が違ったことをした唯一のことは、このスレッドで前に述べたように常に「古いブートローダー」オプションを設定することでした。それ以外は、そのリンクの指示に完全に従って、ナノをその厄介な問題から救いました。これが誰かの役に立つことを願っています。


1

まず、/ dev / ttyUSB0が機能することを確認します。たとえば、マウスを差し込み、動作することを確認します。次に、他のボードを選択してみてください。非オリジナルのボードがその名前で正しく認識されないことがよくあります。3番目に、スケッチのアップロード中に手動でリセットボタンを押してみてください。おそらく自動リセットが壊れています。


1

ここから古いFDTMドライバーをダウンロードしてインストールすることで、私の問題を解決しました

をインストールしてからFTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg、Arduinoを再起動してください。


それはOPの問題にほとんど無関係だし、FTDIのドライバを使用すると、Arduinoの328を得た場合にのみ有効です
zmo

1

私の新しいArduino Uno Rev3ボードは次のLInuxドライバーを使用していると指摘しました。

Device Drivers    
|-USB Drivers
  |-USB Modem (CDC ACM) support

これはCONFIG_USB_ACM:、最新のLInux 3.xカーネルでは:オプションとして知られています。

その後、このデバイスは次のように表示されます/dev/ttyACM0


1

RESETArduinoのピンに何か接続しましたか?

RESETピンに接続する必要があるグラフィックLCDでこの問題が発生しました。RESETコードのアップロード中にLCDとピンの間のジャンパー線を外すと、コードが修正され、コードのアップロードが完了したら、再接続するだけで済みます。


1

この原因を見つけました...

シリアルポートを/dev/tty.usbmodem2131に変更すると修正されました。この間、間違ったシリアルポートを使用していたことがわかりました。


1

あなたが試すことができます:

  • preferences.txt serial.debug_rateをチェックインします。 serial.debug_rate=9600
  • それ以外の場合は、アップロード時にArduinoのリセットボタンを押してみてください。
  • または、Arduino IDEメニューツールで別のカードを選択してから、リストでカードを再選択してください。

1

上記の回答のこの組み合わせにより、問題が解決されました。

  • Javaアップデートを実行しました:

    sudo apt-get install default-jdk

  • その後、Arduino IDEを終了して再起動しました

  • 私の正しいボードが表示されました(Arduino Mega 2560、以前はMega 1280しかオプションがありませんでした)

  • ドライバーのために、私はこれをしました:

    sudo chmod a+rw /dev/serial/by-id/usb-Arduino__www.arduino.cc__(a bunch of numbers)

その後、Arduino IDE /dev/ttyACM0がツール/シリアルポートメニューに表示されます。

今、すべてがうまくいきます!


ありがとう!私の場合、JDKは問題を引き起こしていませんでしたが、sudo chmod a + rw / dev / serial / by-id / usb-Arduino **********が問題を解決しました。
Artur Barseghyan 2015

1

MacBook Pro(デスクトップ)で動作する私のために働いたソリューションは次のとおりです。

同じエラーが発生しましたが、PC自体のUSBではなく周辺機器(モニター)にUSBを接続したことが原因であることがわかりました。エラーはすぐに停止し、簡単な解決策です。


1

解決策を見つける正しい方向を示してくれた@hoipolloiに感謝します。

とにかく、私は問題を修正するために少し異なる手順を実行する必要がありました。

私の場合、Arduino Unoは問題なく動作していましたが、スケッチで遊んだところ、突然停止しました。私はstk500_recv(): programmer is not respondingいつも受け取っていて、何もうまくいきませんでした。次に、ボード上のLED 13が常にオンになっていることに注意しました。ハードループスケッチがボード上で繰り返し実行され、ボードへの入力をブロックしているように見えました。わかりません、それは私の推測です。

私は運が悪いときにすべての可能な瞬間にリセットをクリックしてみましたが、突然次の手順を試しました:

  1. ボードを取り外します。
  2. RESETをクリックして押したままにします。
  3. もう一度差し込みます。
  4. 数秒待ちます。
  5. RESETボタンを離します。

この後、オンボードの13 LEDが1秒間オフになり、その後再びオンになったことに気付きました。ボードが実際にリセットされているときに、リセットウィンドウが短いようでした。次に、@ hoipolloiのソリューションのように、3つのパケットが送信されて機能する直前に「リセット」の瞬間を捉えました。

他の解決策がどれも機能しない場合、これが問題を理解するのに役立つことを願っています。

ヒントSend: 0 [30] [20]スケッチをコンソールにアップロードするときに3 本の線が表示されない場合は、次の手順を実行します。

  1. Arduino IDEで[アップロード]をクリックします。
  2. ログウィンドウを確認します。次のような行を見つけることができます。

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CE:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  3. ここのような改行やスペース記号を飲み込んでいるように見えます-CE:\Program Files...。それはあるはずです-C E:\Program Files。これをメモ帳にコピーし、不足しているスペースを追加して、この行にします。

    E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -v -v -v -v -C "E:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -patmega328p -carduino -PCOM3 -b115200 -D -U flash:w:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
    
  4. -v上記のように4つの指示を追加します。

  5. コマンドラインを開き、コマンドを貼り付けて実行します。

これで、4つの-v引数のおかげで、はるかに詳細が表示されます。元々、Arduino Studioは1つだけを使用します。


0

FTDIケーブルのドライバーをインストール/更新しましたか?(http://arduino.cc/en/Guide/Howtoのステップ3 )。Raspberry PiからArduino IDEを実行すると、ドライバーを明示的にインストールしなくても問題なく動作しました(ドライバーが事前にインストールされているか、Arduino IDEインストーラーが処理しました)。私のMacではそうではなく、IDEに加えてケーブルドライバーをインストールする必要がありました。


0

私はこの同じ問題に最後の数時間を費やしました...ここhttp://www.ftdichip.com/Drivers/VCP.htmに行き、最新のドライバーをダウンロードして再起動してください。その後は問題なく動作するはずです。また、Arduinoソフトウェアを毎晩ダウンロードしましたが、違いを生むことはありません。


0

-b(ボーレートオプション)なしでプログラムをロードしてみてください。〜/ .arduino15 / preferences.txtで、arduino.ccが実行されていないときにbuild.verbose = trueを設定します。詳細出力には、コンソールからロードする必要のあるhexファイルがあります。

avrdude -v -v -v -v -C/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB2  -D -Uflash:w:/tmp/build2314497724350388190.tmp/sketch_nov13b.cpp.hex:i

チップ128を328バージョンに置き換えるだけで、デシミールからボードネームが新しいボーレート115200のためにUnoまたはEthernetに変更されました。


0

USBハブを介してArduinoを接続している場合は、MacのUSBポートの1つに直接接続してみてください。
それでうまくいきました。


0

私の場合、「奇妙な」算術式を実行しようとしたときに問題が発生しました

例(3.14 / 4)/ 5または3.15%2.55

そのため、Arduinoで計算できないものがある場合は、すべての算術式確認することをお勧めします。

それが役に立てば幸い。


0

私の場合(Mini Pro)、解決策はとても簡単でした。rx / txワイヤーを交差させる必要がありました。

解決:

  • Arduino RxピンはFTDI Txピンになります。
  • Arduino TxピンはFTDI Rxピンになります。

0

私の場合、それは間違ったボーレートでした。次のコマンドを呼び出します。

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 **-b57600** -D -Uflash:w:C:\Users\Vahid\AppData\Local\Temp\arduino_build_527841/AnalogReadSerial.ino.hex:i 

ご覧のとおり、ボーレートは57600に設定されています。この引数(-b57600)を削除してコマンドラインで実行すると、正常に機能します。


0

私の問題は、Arduino IDEを新しいバージョンに更新し、ワイヤーを再接続しないことでした。それが問題だったようです

ケーブルを外して再度接続するだけです。ありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.