Fehler "avrdude: stk500_recv(): programmer is not responding" erscheint immer

Hallo

Als Betriebssystem verwende ich Ubuntu 10.10 und mein Arduino Diecimila mit einem ATmega 168 macht seit Anfang an Probleme.

Beim Hochladen eines Programms auf den Mikrocontroller erscheint in der Konsole der Arduino-IDE (v0022) immer folgende Fehlermeldung: avrdude: stk500_recv(): programmer is not responding Der Mikrocontroller ist dabei natürlich per USB angeschlossen. Die gelbe Power-LED leuchtet auch und eine weitere rote LED neben der Aufschrift 13 blinkt im Takt.


Einer der AVRDUDE-Entwickler gab mir folgenden Tipp:

Wichtig ist, dass AVRDUDE nicht mit der Option "-c stk500v1" sondern mit "-c arduino" aufgerufen wird.

Wie kann ich diese Option für die Arduino-IDE ändern?

Gruß Atalanttore

Der hinweis gilt nur fuer die offizielle version von avrdude. Die bei der arduino ide mitgelieferte variante (V5.4, mit patches) funktioniert, nichts ist zu aendern. Jedenfalls ist das so bei der von der arduino seite herunterzuladenden version der fall. Ob die ubuntu packager eine eigene suppe kochen weiss ich nicht.

Ich wuerde mich erstmal um die permissions der device nodes fuer den serial port kuemmern, den user in die noetige gruppe fuer rw-perms stecken usw. Sicher stellen, dass das richtige board ausgewaehlt ist, dass der ftdi treiber funktioniert (dmesg)... und fuer 15-20€ einen echten isp programmer bei watterott besorgen. Die funktionieren naemlich immer.

madworm: Ich wuerde mich erstmal um die permissions der device nodes fuer den serial port kuemmern, ...

Wie geht das genau?

madworm: ... den user in die noetige gruppe fuer rw-perms stecken usw. Sicher stellen, dass das richtige board ausgewaehlt ist, dass der ftdi treiber funktioniert (dmesg)... und fuer 15-20€ einen echten isp programmer bei watterott besorgen. Die funktionieren naemlich immer.

Ich bin Mitglied der Gruppe "dialout", dass richtige Board "Arduino Diecimila ... ATmega 168" ist in der Arduino-IDE ausgewählt und der FTDI-Treiber ist geladen.

dmesg: [ 9164.676481] usbcore: registered new interface driver usbserial [ 9164.676517] USB Serial support registered for generic [ 9164.676642] usbcore: registered new interface driver usbserial_generic [ 9164.676647] usbserial: USB Serial Driver core [ 9164.730892] USB Serial support registered for FTDI USB Serial Device [ 9164.731086] ftdi_sio 7-1:1.0: FTDI USB Serial Device converter detected [ 9164.731116] usb 7-1: Detected FT232RL [ 9164.731119] usb 7-1: Number of endpoints 2 [ 9164.731121] usb 7-1: Endpoint 1 MaxPacketSize 64 [ 9164.731124] usb 7-1: Endpoint 2 MaxPacketSize 64 [ 9164.731126] usb 7-1: Setting MaxPacketSize 64 [ 9164.732738] usb 7-1: FTDI USB Serial Device converter now attached to ttyUSB0 [ 9164.732755] usbcore: registered new interface driver ftdi_sio [ 9164.732757] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

Gruß Atalanttore

Ein Schuss ins Blaue, aufgrund ähnlicher Probleme vor Kurzem: Gibt es eine Ausgabe bei folgenden Befehlen?

grep 0403.*6001 /lib/udev/rules.d/*
grep 0403.*6001 /etc/udev/rules.d/*

Falls ja, Ausgabe bitte posten, wenn nicht ging der Schuss voll daneben.

lsusb
Bus 005 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Schwarzfuss: Ein Schuss ins Blaue, aufgrund ähnlicher Probleme vor Kurzem: Gibt es eine Ausgabe bei folgenden Befehlen?

grep 0403.*6001 /lib/udev/rules.d/*

Dieser Befehl bringt folgendes zum Vorschein:

/lib/udev/rules.d/85-brltty.rules:ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
/lib/udev/rules.d/95-upower-wup.rules:SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A80?????", ENV{UPOWER_VENDOR}="Watts Up, Inc.", ENV{UPOWER_PRODUCT}="Watts Up? Pro", ENV{UP_MONITOR_TYPE}="wup"

Schwarzfuss: grep 0403.*6001 /etc/udev/rules.d/*

Hier tut sich nichts, leider keine Ausgabe.

Schwarzfuss: Falls ja, Ausgabe bitte posten, wenn nicht ging der Schuss voll daneben.

lsusb
Bus 005 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Die folgende Zeile erscheint zusätzlich bei angestecktem Mikrocontroller.

Bus 007 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Die gesamte Ausgabe ist folgende:

Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 003: ID 147e:1000 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 005 Device 002: ID 0a5c:2145 Broadcom Corp. Bluetooth with Enhanced Data Rate II
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0bdb:1900 Ericsson Business Mobile Networks BV F3507g Mobile Broadband Module
Bus 002 Device 002: ID 17ef:4808 Lenovo 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Gruß Atalanttore

Atalanttore: Dieser Befehl bringt folgendes zum Vorschein:

/lib/udev/rules.d/85-brltty.rules:ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
/lib/udev/rules.d/95-upower-wup.rules:SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A80?????", ENV{UPOWER_VENDOR}="Watts Up, Inc.", ENV{UPOWER_PRODUCT}="Watts Up? Pro", ENV{UP_MONITOR_TYPE}="wup"

Wenn du sicher bist, das du diese Regeln nicht brauchst, kommentier sie mal mit "#" am Anfang aus. Nach Neustart oder als root:

/etc/init.d/udev restart

sollte der Arduino wieder funktionieren.

upower beschreibt mein Paketmanager mit abstraction for power management.

Dann probiers nur mit der brltty -Regel.

Also ich hatte mal ein ähnliches Problem. Was bei mir geholfen hat war das Arduino zusätzlich ans Stromnetz mit 9 Volt anzuschliesen. Seitdem hat er nie wieder gezickt. War aber allerdings ein Mega.

Schwarzfuss: Dann probiers nur mit der brltty -Regel.

So sieht die brltty-Regel bei mir aus:

# udev rules file for brltty
#

ACTION!="add", GOTO="brltty_rules_end"
SUBSYSTEM!="usb_device", GOTO="brltty_rules_end"

# Alva
ATTRS{idVendor}=="06b0", ATTRS{idProduct}=="0001", RUN+="/lib/brltty/brltty.sh -b al -d usb:"
ATTRS{idVendor}=="0798", ATTRS{idProduct}=="0640", RUN+="/lib/brltty/brltty.sh -b al -d usb:"
ATTRS{idVendor}=="0798", ATTRS{idProduct}=="0680", RUN+="/lib/brltty/brltty.sh -b al -d usb:"

# Baum
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe70", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe71", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe72", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe73", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe74", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe75", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe76", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="fe77", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2000", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2001", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2002", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2007", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2008", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2009", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2010", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2011", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2014", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2015", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="2016", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"
ATTRS{idVendor}=="0904", ATTRS{idProduct}=="3000", RUN+="/lib/brltty/brltty.sh -b bm -d usb:"

# EuroBraille
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="1122", RUN+="/lib/brltty/brltty.sh -b eu -d usb:"
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="1124", RUN+="/lib/brltty/brltty.sh -b eu -d usb:"

# FreedomScientific
ATTRS{idVendor}=="0f4e", ATTRS{idProduct}=="0100", RUN+="/lib/brltty/brltty.sh -b fs -d usb:"
ATTRS{idVendor}=="0f4e", ATTRS{idProduct}=="0111", RUN+="/lib/brltty/brltty.sh -b fs -d usb:"
ATTRS{idVendor}=="0f4e", ATTRS{idProduct}=="0112", RUN+="/lib/brltty/brltty.sh -b fs -d usb:"
ATTRS{idVendor}=="0f4e", ATTRS{idProduct}=="0114", RUN+="/lib/brltty/brltty.sh -b fs -d usb:"

# HandyTech
ATTRS{idVendor}=="0921", ATTRS{idProduct}=="1200", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
ATTRS{idVendor}=="1fe4", ATTRS{idProduct}=="0003", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
ATTRS{idVendor}=="1fe4", ATTRS{idProduct}=="0044", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
ATTRS{idVendor}=="1fe4", ATTRS{idProduct}=="0074", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"

# HIMS
ATTRS{idVendor}=="045e", ATTRS{idProduct}=="930a", RUN+="/lib/brltty/brltty.sh -b hm -d usb:"

# Metec
ATTRS{idVendor}=="0452", ATTRS{idProduct}=="0100", RUN+="/lib/brltty/brltty.sh -b mt -d usb:"

# Papenmeier
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="f208", RUN+="/lib/brltty/brltty.sh -b pm -d usb:"

# Pegasus
ATTRS{idVendor}=="4242", ATTRS{idProduct}=="0001", RUN+="/lib/brltty/brltty.sh -b pg -d usb:"

# Seika
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", RUN+="/lib/brltty/brltty.sh -b sk -d usb:"

# Voyager
ATTRS{idVendor}=="0798", ATTRS{idProduct}=="0001", RUN+="/lib/brltty/brltty.sh -b vo -d usb:"

LABEL="brltty_rules_end"

Soll ich jede Zeile mit einem # auskommentieren?

Gruß Atalanttore

Hallo,

wenn du nicht vorhast eine Braille Zeile an deinem Rechner zu betreiben:

sudo apt-get remove brltty

Viele Grüsse, Michi

Momentan habe ich noch genügend Sehkraft, um getrost auf eine Unterstützung für Braillezeilen verzichten zu können.

Deinstallieren ist zu einfach, um selbst auf die Idee zu kommen. ;)

EDIT: Ich startete gerade einen weiteren Anlauf zum Hochladen eines Programms auf den Mikrocontroller, aber auch ohne brltty-Regel erscheint die Fehlermeldung leider immer noch.

Gruß Atalanttore

Hallo,

...nächster Versuch wäre dann die "upower-regel" entfernen - ich würde mir die einfach mal irgenwohin kopieren uns aus /etc/udev/rules.d entfernen

am besten dann mal neu starten - bin mir da nicht ganz sicher ob es ein "/etc/init.d/udev restart" tut...

Viele Grüsse, Michi

Hallo,

habe ich gemacht. Bei Eingabe der folgenden beiden Befehle

grep 0403.*6001 /lib/udev/rules.d/*
grep 0403.*6001 /etc/udev/rules.d/*

herrscht mittlerweile Ruhe in der Konsole.

Der Fehler beim Hochladen eines Programms erscheint leider weiterhin, aber diesmal ist mir beim Hochladen aufgefallen, dass dabei die rote RX-LED auf dem Controller ein paar Mal kurz aufblinkt und die LED 13 aus dem Takt kommt, aber sich nach ein paar Sekunden wieder fängt.

Gruß Atalanttore

Von Löschen war eigentlich keine Rede, so wirds uU schwierig den Originalzustand wieder herzustellen, falls nun doch Wichtiges fehlen sollte.

Einen hätt ich noch: Versuchs mit einer selbst erstellten udev-Regel: Erstell eine Datei, nenen wir sie mal "00_arduino.rules" in /etc/udev/rules.d/ (Die Endung ".rules" ist wichtig, auch die Zahl am Anfang) mit folgendem Inhalt:

ATTRS{product}=="FT232R USB UART", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="arduino"

Neustarten, wie gehabt...

Schwarzfuss: Von Löschen war eigentlich keine Rede, so wirds uU schwierig den Originalzustand wieder herzustellen, falls nun doch Wichtiges fehlen sollte.

Nicht gelöscht, nur verschoben.

Schwarzfuss: Einen hätt ich noch: Versuchs mit einer selbst erstellten udev-Regel: Erstell eine Datei, nenen wir sie mal "00_arduino.rules" in /etc/udev/rules.d/ (Die Endung ".rules" ist wichtig, auch die Zahl am Anfang) mit folgendem Inhalt:

ATTRS{product}=="FT232R USB UART", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="arduino"

Neustarten, wie gehabt...

Habe ich gemacht, aber es kommt immer noch der gleiche Fehler.

Gruß Atalanttore

Es sah so aus, als würde irgendeine udev-Regel die Arduino Schnittstelle übernehmen, wenn nun aber keine ähnliche Regel mehr da ist und es geht immer noch nicht, kann ich dir leider nicht weiterhelfen. :( Vielleicht weiß irgendjemand mehr, an dieser Stelle klinke ich mich mal aus.

Ich weis nicht ob du meinen post überlesen hast oder die Idee vlt. einfach nur doof war, aber wie gesagt ich hatte gleiches Problem mit einem Arduino und es lag an der Stromversorgung.

Niberium:
Ich weis nicht ob du meinen post überlesen hast oder die Idee vlt. einfach nur doof war, aber wie gesagt ich hatte gleiches Problem mit einem Arduino und es lag an der Stromversorgung.

Wahrscheinlich überlesen.

Niberium:
Also ich hatte mal ein ähnliches Problem. Was bei mir geholfen hat war das Arduino zusätzlich ans Stromnetz mit 9 Volt anzuschliesen. Seitdem hat er nie wieder gezickt. War aber allerdings ein Mega.

Wo hast du dir das dafür nötige Netzteil mit dem passenden Stecker besorgt?

Gruß
Atalanttore

Bei Mükra mal gekauft. War da mal vor ewigkeiten im Angebot. Ein Standard umschaltbares Netzteil. Einer von den Adaptern passt wunderbar ins Arduino.