web-dev-qa-db-ja.com

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

私はAtmega 328のArduino Duemilanoveを持っています。私はUbuntu 12.04に取り組んでいます、そしてArduino IDEのバージョンは1.0です。最近、Blinkのようなサンプルスケッチをいくつかアップロードしようとしました。しかし、私の試みはどれもうまくいっていません、そして私がそれを試みるたびに同じエラーを引き起こします - avrdude:stk500_recv():プログラマーは応答していません。

enter image description here

Tools - > Serial Portで '/ dev/ttyUSB0'を有効にしました。リストから正しいボード(Duemilanove with Atmega 328)を選択しました。しかし、私は問題を解決することができません。私はオンラインでも検索しましたが、この問題に対する他の応答はどれも私のために働いていないようです。なぜ私がこの問題に遭遇しているのか、私がそれを解決するのを手伝ってくれるのか誰かに教えてもらえますか?

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

116
Pastafarian

OSXでArduino IDEを実行しているCrowduinoでこの問題が発生しました。私にとっての解決策は、アップロード中に冗長出力をオンにすることでした(arduino IDE設定ペイン内)。

その後、アップロードすると、avrdudeがavrdude: ser_recv(): programmer is not respondingエラーの直前にavrdude: Send: 0 [30] [20](対応するRXがボード上で点滅する)の3つのパケットを送信しているのがわかります。

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

102
hoipolloi

Tx/Rxピンに入力がないことを確認してください、そうすればうまくいきます。

62
rednaks

私はこれが古い投稿であることを知っています、しかし、良いアイデアの中でこのあたりの答えにいくつかのブードゥートークがあります、何が起こっているかについてもう少し現実になるようにしましょう。

基本的に、それが起こるとき、何が起こっているかのより良い考えを得るためにavrdudeのための冗長モードを有効にすることは良い考えです。そうするためには、あなたはただ設定に入って冗長モードボックスをチェックする必要があります。 arduino IDEから離れて、avrdudeの出力を読みやすくするためにコンソールを起動することも賢明です。uploadボタンをクリックするだけです。

ここで重要なのは、3または4の-vをコマンド呼び出しに追加することです。これは、そのようなavrdudeコマンドのように見えますが、Arduinoがどのようにインストールされているかに完全に依存しているため、構成されたパラメータがあります。

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を取得するとき、それは基本的に何か問題が起こっていることを意味します、 前に フラッシュは実際に始まります。基本的にあなたがチェックしなければならない(ハードウェアからソフトウェアへ、低レベルから高レベルへ):

  • ケーブルやコネクタにマイクロカットがない場合。
  • はんだ点がショートしていない(すなわち、周囲の金属に触れている)場合は、次のようになります。
    • PCB上でRxTxの間に短絡がない場合(通常ピン10)。
    • 基板の下の金属要素、またはコンポーネントの脚の間に小さな部分が接触していない場合(FTDI、atmegaチップなど)。
  • atmegaチップの電源が切れていない場合(GND/VCCショートカットまたはカット、あるいはVCC入力が無効になっている場合)。
  • arduinoの1ピンと0ピンが何らかのシールドやカスタムデザインで使用されていない場合(/!\は独立したUSB処理があるためleonardoには適用されません)
  • uSBからUARTへの変換に問題がない場合(古い期限の場合はFTDI、新しいUnosの場合はAtmega16U2)。
  • atmega328チップが揚げられているか間違って取り付けられている場合。
  • ブートローダが上書きされたか失敗した場合
  • ブートローダに入るために正しいボーレートが適用されている場合。
  • ターゲットMCUとボードに正しい設定がされている場合。

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

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

Atmegaの位置を逆にしてもうまくいかない場合は、電源をデジタルピンに配置したことがチップを焼いた可能性があります。

44
zmo

私は同じ問題を抱えていた - これが私がこの質問を見つけた理由である。

私はプロセッサを“ ATmego328P”から“ ATmego328P(Old Bootloader)”に変更するだけです。

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

enter image description here

33
Edgar

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

21
linhadiretalipe

ピン0と1にジャンパー線が差し込まれているかどうかを確認できます。それらのピンはシリアル通信に使用され、差し込まれた線はコードがボードにアップロードされないようにすることができます。

何も差し込まれていなければ、それはavrdudeのバグかもしれません、あなたはそれを更新しようとすることができます。

それが役に立てば幸い! :)

12
ladislas

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

10
Anthony

上記のエラーは3段階で発生します

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

私も同じでした。私の最初のArduino UNOの試みについて。私の解決策はとても簡単でした。 USBケーブルを差し込んでから差し込みます。それがあなたのために働くことを願っています。

3
Ozan Atmar

私はこれらの指示に従ってOS X Yosemite 10.10の問題を解決しました:

http://www.mommosoft.com/blog/2014/10/24/ftdi-chip-and-os-x-10-10/ /

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

3
Sigismondo

Windows 7 、毎回異なるエラーメッセージが表示され、この問題が複数回発生しました。基本的に、IDEは間違ったポートに送信しています。これを直すには、単に "Tools" - > "Ports" - > [あなたのボードが接続されているCOMポートを選んでください。

ボードのポートをもう一度確認してください。

1)デバイスマネージャを起動します

Start Menu

2)ArduinoドライバがIDEのポート設定と一致するポートの下に表示されていることを確認してください(上記)。

Device Manager

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

enter image description here

3
Domi

私はこの問題を私のArduinoでもMac上で走らせている。それは私のArduinos(FTDIに接続されたArduino UnoとArduino Pro)のうちの2つで起こります。

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

私は後でUSBケーブルを変更することでこの問題が解決したと判断しました。

2
mrsoltys

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

  • Preferences.txt serial.debug_rateをチェックインしてください:serial.debug_rate=9600
  • そうでなければちょうどアップロードするときにあなたのarduinoのリセットボタンを押すようにしてください。
  • そうでない場合は、arduino-> toolsメニューで他のカードを選択してから、リストから自分のカードを選択し直してください。
1
hanoo

解決策を見つける上で正しい方向性をありがとう@hoipolloi。とにかく、私は問題を解決するために少し異なったステップをしなければなりませんでした。
私の場合、UNOはうまくいっていましたが、スケッチで遊んだ後突然急に止まりました。私はいつもstk500_recv(): programmer is not respondingを受け取っていて、何もうまくいきませんでした。それから私は私の板のLED 13が常にオンであることに注意を払いました。ハードループされたスケッチがボード上で何度も繰り返し実行されていて、ボードへの入力をブロックしているように見えました。わからない、それは私の推測です。
リセットせずに[リセット]をクリックしようとしたところ、突然次の手順が試行されました。

  1. ボードを抜きます。
  2. RESETをクリックして押したままにします。
  3. もう一度差し込みます。
  4. 数秒待ってください。
  5. リセットボタンを放します。

この後、私はオンボードの13個のLEDが1秒間消灯してから再び点灯するのに気づきました。ボードが実際にリセットされているとき、短いリセットウィンドウがあるように見えました。それから@ hoipolloiの解決策のように、私は3つのパケットが送られる直前に "リセット"の瞬間を捉えました、そしてそれはうまくいきました。
他の解決策がどれもうまくいかない場合、これが問題解決に役立つことを願っています。

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

  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

  1. ここで-CE:\Program Files...のように改行や空白記号を飲み込むように見えます。それは-C E:\Program Filesであるはずです。これをメモ帳にコピーして、行をthisにするために欠けているスペースを追加してください。

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

  1. 上記のように-v命令を4つ追加します。
  2. コマンドラインを開き、そこにコマンドを貼り付けて実行します。

これで、4つの-v引数によって、より冗長になります。もともと、Arduino Studioは1つだけを使います。

1
Sergey Metlov

私の真新しいArduino Uno Rev3ボードが以下のLInuxドライバーを使うことを指摘したいと思いました。

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

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

このデバイスは/dev/ttyACM0またはそれに類するものとして登場します。

1
James Mills

ちょうど私はMac Pro(デスクトップ)で実行して私のために働いたソリューションを追加すると思いました

私は同じエラーを受けていました、そしてそれは私がPC自体の上のUSBよりむしろ周辺機器(私のモニター)に接続されたUSBを持っていたのでそれが判明します。あらゆるエラーと簡単な解決策をすぐに止めました。

1
lee

ArduinoのRESETピンに何か関連したことはありますか?

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

1
Jamie

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

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

1
shimaro

上記の答えを組み合わせることで、問題が解決しました。

  • 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はtools/serial portメニューに/dev/ttyACM0を表示します

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

1
seanhalle

だから私はこの原因を発見した...私のシリアルポートを/dev/tty.usbmodem2131に変更することで修正されました。結局、私は間違ったシリアルポートを使っていました。

1
Fritz Dodoo

まず、/ dev/ttyUSB0が動作することを確認してください。例えば。マウスを接続して動作確認してください。次に、他のボードを選択してみてください。多くの場合、オリジナルではないボードはその名前の下で正しく認識されません。第三に、スケッチをアップロードしながら手動でリセットボタンを押してみてください。おそらく自動リセットが壊れています。

1
Sergei B.

-b(ボーレートオプション)なしでプログラムをロードしてみてください。 arduino.ccが実行されていない場合は、〜/ .arduino15/preferences.txtで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バージョンと取り替え、そしてDecimileから私のボード名は新しいボーレート115200のためにUnoかEthernetに変更された。

0
42n4

私の場合(ミニプロ)、解決策はとても単純だったので、私がそれを逃した方法がわからない。私はRX/TXワイヤをクロスオーバーする必要がありました。

溶液:

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

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

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
vmontazeri

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

0

これは遅れるかもしれませんが、それは私を襲いました:あなたのUSBケーブル(Arduino側)が正​​しく接続されている(完全に差し込まれている)ことを確認してください。デバイスがここで説明されているように検出されていることを確認してください(Windowsの場合): https://stackoverflow.com/a/26913070/3361975

0
Sebastian

私にとっては、正しいポートを設定するのと同じくらい簡単でした。

それを設定するためにTools> Portの順に進み、COM1から適切なポートに変更して下さい。

この後私のプログラムは正しく働いた

私はサーボをarduinoの5Vピンに接続しようとしました、プロセッサをバントしました、そしてそれは私がこの失敗を得た理由です

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

解決策:サーボ用に新しいarduinoおよび外部5V電源を購入してください。

0
Nic Taky Nic

私はこれを投稿していますArduino IDEを1.8.9にアップグレードした後、すべてのArduino nano chinese(CH340)クローンにこの問題が発生しました。私のために働いたのは予備の公式Arduino Unoを使うことでした。それは私がnanoのICSPヘッダーを使って欠陥のあるnanosにブートローダーを焼き付けなければならないということです。このために私がしたのはここにある指示に従うことだけでした: チップを使った中国語のクローン - ch340gの修正方法 。私が違うことをした唯一のことは、このスレッドで前に述べたように常に "Old Bootloader"オプションを設定することでした。それ以外は、私はそのリンクの指示に完全に従って、その迷惑な問題から私のnanosを救った。これが誰かに役立つことを願っています。

0
Dave

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

0
user3133327

私はarduino Dueにも同じ問題を抱えていました。提案された解決策のほとんどはうまくいきませんでした。 L LEDは常時点灯していました。私の問題はIDEをアンインストールして実験的なバージョン1.5.8を選ぶことによって解決されました、そしてそれから私は一番下のオプションArduino Due(プログラミングポート)を選びました。も。

0
miks

私は同じ問題を抱えていて、それを自分で解決しました。

まず、(OSEPP UNO r3 PLUS)を持っています。それはOSEPPによって作られたArduinoのUNO REV 3です。

OSEPPモーターとサーボコントローラーのシールドを購入しました。私はただモーターが動くようになったそしてそれから私は同じエラーにつまずいた。 avrdude:stk500_recv():プログラマーが応答していません。

接続中に新しいシリアルポートを作成/割り当てたと思います。 arduinoプログラムの "Tools> Serial Port"にあります。私はちょうどUNOとバムに関連するものを選択し、問題は解決しました。

うまくいけば、それは誰かに役立ちます。

0
Edd Clarke

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

0
rjpalombo

私は正しい board を選択しなければなりませんでした。 ツール - > ボード - > Arduino Nano に移動します。

0
ViliusK

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

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

だから、私はあなたに すべての算術式をチェックすることを勧めます それらのうちのいくつかがArduinoによって計算できない場合。

それが役に立てば幸い。

0
Pontios