Wenn Arduino mit dem Rechner nicht mehr redet....

Hallo zusammen!!!

Es ist so…
2010 kaufte ich meine erste Arduino 2009, mit deren Hilfe ich über 2 Jahre lange ganz zufrieden Programme und eingebettete Systeme entwicklt habe.
Eines Tages, letzten Sommer, wollte ich nochmal meine Platine programmieren und plötzlich erkannte mein System keine USB Anschluss mit Platine… Komisch dachte ich, da sie immer funktioniert hat und ich keine Treiber (neue oder alte) uminstalliert habe.
Dennoch stellte ich bald fest, dass die USB Verbindung nicht mehr erkannt wird. Ganz gleich ob Linux oder Windows, einfach stecke ich das Kabel USB rein und das System reagiert einfach nicht. Unter Linux liefert zum beispiel ein lsusb nur den Anschluss der Maus.
Jedenfalls dachte ich mir…es ist der kleine FT232 auf bestimmt „durchgebrannt“. So kaufte ich mir noch eine 2009 letzte Woche um meine Programme nach langer zeit weiter zu schreiben.
Die Platine konnte ich nur 2 male programmieren, bevor plötzlich nochmal Fehlermeldungen bezüglich der USB Verbindung nochmal auftaten. Wieder das gleiche Problem, die Platine wird vom System nicht mehr erkannt!!!
Also…2 Platine, gleiches Modell, und gleiches Problem.. Wie kann sein dass ich so viel Pech habe? Woran kann es umsonst liegen? Wie kann ich überprüfen, dass alle Komponente auf der Platine (insbesondere die USB Schnittstelle richtig funktioniert!?!?)

Ich verwende als Umgebung Debian 6, mein Laptop ist immer der selbe geblieben und die rxtx.org sind die letzte installiert. Ich habe weder ein neues Betriebssystem installiert noch mein altes formattiert…
Ich hatte beispielsweise NIE Probleme mit Arduino NANO 3.0 gehabt. Die verwendeten IDEs sind 1.0.1 und 1.0.3, dennoch erkennen beide nicht die Verbindung.
Kann es sein, dass der Strom aus der USB meine beiden 2009 zerstört hat!?!?

Danke euch allen.

Schönen Tag noch
Gruß

Hast Du die betroffenen Arduinos mal an einem anderen Rechner getestet? Evtl. ist ja der USB-Anschluss das Problem. Funktionieren denn andere Geräte am gleichen USB-Anschluss?

mkl0815:
Hast Du die betroffenen Arduinos mal an einem anderen Rechner getestet? Evtl. ist ja der USB-Anschluss das Problem. Funktionieren denn andere Geräte am gleichen USB-Anschluss?

Ja...und habe Knoppix auf CD Live und nun Kubuntu auf USB Stick installiert und trotzdem das gleiche Problem...
Die USB Ausgänge funktionieren mit anderen Geräte perfekt, zudem kann ich sowieso immer noch meine Arduino NANO programmieren.
Damit hatte ich nie (bisher) ein problem gehabt...

Ist vieleicht der USB-Kabel kaputt?
Grüße Uwe

uwefed:
Ist vieleicht der USB-Kabel kaputt?
Grüße Uwe

Wäre auch meine Frage gewesen. Ich hab neulich ein neues USB-Kabel (50cm) gehabt, was am Drucker ohne Mucken lief. Der angeschlossene Arduino war damit nicht zum Arbeiten zu bewegen.

wilhem:
Wie kann sein dass ich so viel Pech habe? Woran kann es umsonst liegen?

Auch die USB-Schnittstelle am PC kann ja inzwischen defekt geworden sein.

Kannst Du mal an einer anderen USB-Schnittstelle probieren?
Oder gleich an einem anderen PC?

Du hast das Arduino-Board beim Testen nicht zufällich kurzschlußträchig auf Metall oder auf leitfähigem Kunststoff liegen? Manchmal kommen Arduino-Boards zwischen zwei Lagen aus meist schwarzem "leitfähigen Kunststoff" und manch einer hat sich schon gedacht "oh Plastik, da lege ich meinen Arduino zur Isolierung drauf", und das ist natürlich genau falsch, weil leitfähiger Kunststoff eben nicht isoliert sondern leitet und man die Platinenrückseite natürlich nicht darauf ablegen darf, wenn der Arduino in Betrieb ist.

Funktioniert denn noch das Programm, was du früher draufgeladen hast(evt. über Strombuchse anschließen)?

Addi

Hallo zusammen!
danke für eure Antworten.
Also...ich habe mit einem anderen Kabel versucht und nun wird die Platine erkannt!!!

Ein #lsusb liefert die richtige Verbindungen.
Dennoch wenn ich versuche ein irgendwelches Programm zu uploaden kriege ich ständig diese Fehlermeldung:

wilhem@SR-71:~$ arduino
Experimental:  JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version   = RXTX-2.1-7
RXTX Warning:  Removing stale lock file. /var/lock/LCK..ttyUSB0
Binäre Sketchgröße: 1.084 Bytes (von einem Maximum von 30.720 Bytes)
processing.app.SerialException: Fehler beim Öffnen des seriellen Ports '/dev/ttyUSB0'.
        at processing.app.Serial.<init>(Serial.java:178)
        at processing.app.Serial.<init>(Serial.java:77)
        at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:77)
        at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:174)
        at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
        at processing.app.Sketch.upload(Sketch.java:1671)
        at processing.app.Sketch.exportApplet(Sketch.java:1627)
        at processing.app.Sketch.exportApplet(Sketch.java:1599)
        at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
        at java.lang.Thread.run(Thread.java:662)
Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
        at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:171)
        at processing.app.Serial.<init>(Serial.java:163)
        ... 9 more
processing.app.debug.RunnerException: Fehler beim Öffnen des seriellen Ports '/dev/ttyUSB0'.
        at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:101)
        at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:174)
        at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
        at processing.app.Sketch.upload(Sketch.java:1671)
        at processing.app.Sketch.exportApplet(Sketch.java:1627)
        at processing.app.Sketch.exportApplet(Sketch.java:1599)
        at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
        at java.lang.Thread.run(Thread.java:662)

Woran kann es liegen?!?!
Also ein Problem an der USB Schnittstelle würde ich ausschließen. Es funktioniert alles, was ich da reinstecke. Ich habe eben die Spannungen an der USB gemessen und sehen in Ordnung aus.

Gruß

wilhem:
Woran kann es liegen?!?!

Nur ein paar Ideen:

Die Software versucht auf /dev/ttyUSB0 zuzugreifen. Bist Du sicher, dass da auch der Arduino dranhängt? Ggf. mal unter "Tools - Serieller Port" nachsehen, welche seriellen Ports einstellbar sind.

Wenn es früher laut Deinen Angaben funktioniert hat: Kann es sein, dass Du Deinen Arduino früher als "root" User programmiert hast und heute unter einem Usernamen, der auf die serielle Schnittstelle an /dev/ttyUSB0 keinen Zugriff hat?

Ggf. mit dem Befehl:
sudo chown username /dev/ttyUSB0
die richtigen Userrechte zum Zugriff auf die serielle Schnittstelle setzen.

Und ggf. auch mit
dmesg
überhaupt zuerst mal kontrollieren, ob und als welche serielle Schnittstelle der FTDI-Seriell-Chip eingebunden wird und ob das tatsächlich /dev/ttyUSB0 ist. Nicht dass es bei Dir vielleicht /dev/ttyUSB1 oder /dev/ttyUSB2 ist.

Ja also...

ich habe die von dir aufgelisteten Befehle ausgeführt und dazu nochmal das in dem Playground beschriebene Verfahren durchgeführt.
Ich verwende Debian 6.0 und nach den obigen Änderungen habe ich den Rechner rebootet.
Das Problem besteht immer noch.Ich kann zwar die Platine "sehen" als USB Verbindung, aber werden keine Programme darauf installiert.
Ich habe nochmal angeschaut und tatsächliuch habe ich unter Tools.... nur '/dev/ttyUSB0' und keine andere.

Die Einstellungen meines Systems sind nun:

wilhem@SR-71:~$ ls -al /dev
insgesamt 1

brw-rw----   1 root disk      8,   0 28. Jan 23:22 sda
brw-rw----   1 root disk      8,   1 28. Jan 23:22 sda1
brw-rw----   1 root disk      8,   2 28. Jan 23:22 sda2
brw-rw----   1 root disk      8,   3 28. Jan 23:22 sda3
brw-rw----   1 root disk      8,   4 28. Jan 23:22 sda4
brw-rw----   1 root disk      8,   5 28. Jan 23:22 sda5
brw-rw----   1 root disk      8,   6 28. Jan 23:22 sda6
brw-rw----   1 root disk      8,   7 28. Jan 23:22 sda7
brw-rw----   1 root disk      8,   8 28. Jan 23:22 sda8
drwxr-xr-x   4 root root          80 28. Jan 23:22 serial
crw-------   1 root root     21,   0 28. Jan 23:22 sg0
crw-rw----   1 root cdrom    21,   1 28. Jan 23:22 sg1
drwxrwxrwt   2 root root          60 28. Jan 23:22 shm
crw-------   1 root root     10, 231 28. Jan 23:22 snapshot
drwxr-xr-x   3 root root         180 28. Jan 23:22 snd
lrwxrwxrwx   1 root root          24 28. Jan 23:22 sndstat -> /proc/asound/oss/sndstat
brw-rw----+  1 root cdrom    11,   0 28. Jan 23:22 sr0
lrwxrwxrwx   1 root root          15 28. Jan 23:22 stderr -> /proc/self/fd/2
lrwxrwxrwx   1 root root          15 28. Jan 23:22 stdin -> /proc/self/fd/0
lrwxrwxrwx   1 root root          15 28. Jan 23:22 stdout -> /proc/self/fd/1
crw-rw-rw-   1 root root      5,   0 28. Jan 23:22 tty
crw-------   1 root root      4,   0 28. Jan 23:22 tty0
crw-------   1 root root      4,   1 28. Jan 23:22 tty1
crw-------   1 root root      4,  10 28. Jan 23:22 tty10
crw-------   1 root root      4,  11 28. Jan 23:22 tty11
crw-------   1 root root      4,  12 28. Jan 23:22 tty12
crw-------   1 root root      4,  13 28. Jan 23:22 tty13
crw-------   1 root root      4,  14 28. Jan 23:22 tty14
crw-------   1 root root      4,  15 28. Jan 23:22 tty15
crw-------   1 root root      4,  16 28. Jan 23:22 tty16
crw-------   1 root root      4,  17 28. Jan 23:22 tty17
crw-------   1 root root      4,  18 28. Jan 23:22 tty18
crw-------   1 root root      4,  19 28. Jan 23:22 tty19
crw-------   1 root root      4,   2 28. Jan 23:22 tty2
crw-------   1 root root      4,  20 28. Jan 23:22 tty20
crw-------   1 root root      4,  21 28. Jan 23:22 tty21
crw-------   1 root root      4,  22 28. Jan 23:22 tty22
crw-------   1 root root      4,  23 28. Jan 23:22 tty23
crw-------   1 root root      4,  24 28. Jan 23:22 tty24
crw-------   1 root root      4,  25 28. Jan 23:22 tty25
crw-------   1 root root      4,  26 28. Jan 23:22 tty26
crw-------   1 root root      4,  27 28. Jan 23:22 tty27
crw-------   1 root root      4,  28 28. Jan 23:22 tty28
crw-------   1 root root      4,  29 28. Jan 23:22 tty29
crw-------   1 root root      4,   3 28. Jan 23:22 tty3
crw-------   1 root root      4,  30 28. Jan 23:22 tty30
crw-------   1 root root      4,  31 28. Jan 23:22 tty31
crw-------   1 root root      4,  32 28. Jan 23:22 tty32
crw-------   1 root root      4,  33 28. Jan 23:22 tty33
crw-------   1 root root      4,  34 28. Jan 23:22 tty34
crw-------   1 root root      4,  35 28. Jan 23:22 tty35
crw-------   1 root root      4,  36 28. Jan 23:22 tty36
crw-------   1 root root      4,  37 28. Jan 23:22 tty37
crw-------   1 root root      4,  38 28. Jan 23:22 tty38
crw-------   1 root root      4,  39 28. Jan 23:22 tty39
crw-------   1 root root      4,   4 28. Jan 23:22 tty4
crw-------   1 root root      4,  40 28. Jan 23:22 tty40
crw-------   1 root root      4,  41 28. Jan 23:22 tty41
crw-------   1 root root      4,  42 28. Jan 23:22 tty42
crw-------   1 root root      4,  43 28. Jan 23:22 tty43
crw-------   1 root root      4,  44 28. Jan 23:22 tty44
crw-------   1 root root      4,  45 28. Jan 23:22 tty45
crw-------   1 root root      4,  46 28. Jan 23:22 tty46
crw-------   1 root root      4,  47 28. Jan 23:22 tty47
crw-------   1 root root      4,  48 28. Jan 23:22 tty48
crw-------   1 root root      4,  49 28. Jan 23:22 tty49
crw-------   1 root root      4,   5 28. Jan 23:22 tty5
crw-------   1 root root      4,  50 28. Jan 23:22 tty50
crw-------   1 root root      4,  51 28. Jan 23:22 tty51
crw-------   1 root root      4,  52 28. Jan 23:22 tty52
crw-------   1 root root      4,  53 28. Jan 23:22 tty53
crw-------   1 root root      4,  54 28. Jan 23:22 tty54
crw-------   1 root root      4,  55 28. Jan 23:22 tty55
crw-------   1 root root      4,  56 28. Jan 23:22 tty56
crw-------   1 root root      4,  57 28. Jan 23:22 tty57
crw-------   1 root root      4,  58 28. Jan 23:22 tty58
crw-------   1 root root      4,  59 28. Jan 23:22 tty59
crw-------   1 root root      4,   6 28. Jan 23:22 tty6
crw-------   1 root root      4,  60 28. Jan 23:22 tty60
crw-------   1 root root      4,  61 28. Jan 23:22 tty61
crw-------   1 root root      4,  62 28. Jan 23:22 tty62
crw-------   1 root root      4,  63 28. Jan 23:22 tty63
crw-------   1 root root      4,   7 28. Jan 23:22 tty7
crw-------   1 root root      4,   8 28. Jan 23:22 tty8
crw-------   1 root root      4,   9 28. Jan 23:22 tty9
crw-rw----   1 root dialout   4,  64 28. Jan 23:22 ttyS0
crw-rw----   1 root dialout   4,  65 28. Jan 23:22 ttyS1
crw-rw----   1 root dialout   4,  66 28. Jan 23:22 ttyS2
crw-rw----   1 root dialout   4,  67 28. Jan 23:22 ttyS3
crw-rw----   1 root dialout 188,   0 28. Jan 23:22 ttyUSB0

anscheinend ist es mir nicht gelungen die Rechte auch für mein User freizuschalten...
Obwohl ich mein User zur richtigen Gruppen hinzugefügt habe, besitze ich nach dem Start keine Rechte...

Wisst ihr, wie ich es lösen kann?

Gruß

Hast Du in der Arduino-IDE unter Tools mal geschaut ob der Schnittstellen-Port ausgewählt ist?

Ich sitze gerade am anderen Rechner, aber bei mir ist es auch oftmals so, das ich den Port nochmal auswählen muss, vor allem wenn ich den Arduino erst nach Start der IDE angesteckt habe.

Das Interface sollte stimmen, da die Fehlermeldung des IDE ja ttyUSB0 als Interface anmeckert.
#groups als Befehl sollte dir zurückgeben, in welchen Gruppen du Mitglied bist, wenn da "dialout" mit auftaucht, sollte das eigentlich passen.

Ansonsten kannst du mit

sudo chmod 666 /dev/ttyUSB0

auch die Rechte so setzen, das jeder darauf lesen und schreiben kann.

Und nach dem Einstecken des Boards per USB mal mit
dmesg evtl wieder mit "sudo" davor, mal nachsehen, ob die Hardware sauber erkannt und das Device ordnungsgemäß zugeordnet wird.

Dirk

Hast Du in der Arduino-IDE unter Tools mal geschaut ob der Schnittstellen-Port ausgewählt ist?

Ja!!! Und trotzdem habe ich immer noch das Problem.

Das Interface sollte stimmen, da die Fehlermeldung des IDE ja ttyUSB0 als Interface anmeckert.
Code:

#groups

als Befehl sollte dir zurückgeben, in welchen Gruppen du Mitglied bist, wenn da "dialout" mit auftaucht, sollte das eigentlich passen.

Ansonsten kannst du mit
Code:

sudo chmod 666 /dev/ttyUSB0

auch die Rechte so setzen, das jeder darauf lesen und schreiben kann.

Also...alles schon gemacht.Ich bekomme zwar die Rechte, ABER wenn ich das Kabel raus und wieder reinstecke, dann "verliere" ich die Rechte und muss nochmal über root die Rechte freischalten.
Mein User gehört anscheined zu tty und dialout.

Irgendwie stimmt nicht in meinem Debian....

Ich habe exakt die selben Probleme. Das Arduino erscheint immer kurzzeitig unter /dev/ttyACM0 oder /dev/ttyACM1, sobald ich aber den Upload eines Programms machen will, geht das nicht. Die serielle Schnittstelle ist dann nicht mehr verfügbar unter Tools. Dmseg liefert nur: cdc_acm 2-1:1.0: ttyACM1: USB ACM device
und ls -al /dev liefert: drwxr-xr-x 4 root root 80 Nov 22 23:09 serial

Hast du eine Lösung gefunden wilhem?

Bin zwar noch relativ neu, aber wir haben in der Uni eine Vorlesung mit Arduino und das ist jetzt schon das vierte mal, dass ich das sehe (auch bei anderen, aber trotzdem). Immer Arduino Uno, aber an vielen verschiedenen PCs. Jetzt gerade habe ich es bei zweien hintereinader geschafft. Kann es am Code liegen, den man an Arduino schickt? Kann man ein Arduino ganz auf "Null" zurücksetzen?

Meine Unterlage war übrigens Holz... Davor haben beide wunderprächtig funktioniert. Echt doof. Wenn ich mit zwei Arduinos in die Uni komme, die beide nicht mehr funktionieren wird sich mein Prof freuen...

Kann es am Code liegen, den man an Arduino schickt? Kann man ein Arduino ganz auf "Null" zurücksetzen?

Manchmal passiert es wenn man die serielle Schnittstelle initialisisert und sofort etwas schickt daß der Arduino nicht mehr den Upload macht. Abhilfe ist den Uploadvorgang manuell mittels des Resettasters inizieren. (resettaster drücken und halten, IDE upload starten und loslassen wenn die IDE schreibt daß upgeloadet wird). Meist muß mann öfters probieren um den richtigen Zeitpunkt zu finden. Am besten ist es als Sketch den einfachen Blink zu verwenden wei dieser kurz ist.

Mit einem ISP-Programmierer kannst Du den hochgeladenen Sketch überschreiben und auch den Bootloader neu brennen. Du kannst einen Arduino als ISP-Programmierer benutztn:

Grüße Uwe

Ich kann exakt das gleiche Phänomen beschreiben.

Mit einem Arduino nano habe ich die ersten Versuche unternommen, 20-30 uploads. Dann plötzlich war immer der usbport über die ide nicht mehr erreichbar. Ich habe gedacht es würde am defekten Bootloader liegen. Neuen nano bestellt und mit diesem dem kaputten einen neuen bootloader verpasst. Sofort ging der alte wieder bzw. waren die usb Verbindungen wieder da.

Nun wieder das Gleiche mit dem alte: Immer wieder usb weg. Den zweiten nano genommen und versucht wieder den Bootloader auf den alten aufzuspielen. Ging diesmal nicht: ...programmer antwortet nicht. Dann habe ich versucht, weil ich böses ahnte das Blink Programm auf den neuen zu laden und der hatte nun das selbe Problem wie der alte. Nun habe ich zwei "defekte" arduinos auf die nix mehr geflasht werden kann. Warum weiß ich auch noch nicht.

Kann es sein, dass die Sache etwas mit der Ide zu tun hat?
Hat jemend schon mehr herausgefunden?

Der Bootloader hat nichts mit dem USB-Seriel Adabter zu tun. Im Falle des NANO ist das ein FT232. Dieser baut mit dem PC die USB Verbindung auf und dadurch sieht der PC den Arduino. Der Treiber und das Betriebssystem generieren daraus einen COM-Port.
Ein defekter Bootlader verhindert das Upload aber nicht das erscheinen eines COM-Portes.

Ich hatte mal das gleiche Problem (NANO, HD44780-LCD-Modul, und EM406- GPS modul). Für eien Weile funktionierte der Upload und dann war den COM-Port verschwunden.
Meine Lösund war ein C-L-C-Kombination auf der 5V Versorgung des EM406 Modules. Ich weiß jetzt aber nicht, ob das eine endgültige Lösung ist.
Ich habe als C zwei 0,1µF Keramikkondensatoren verwendet und als L eine kleine Entstördrossel von 10 oder 100µH. Diese ist zwischen 5V und %V pin des EM406 geschaltet und vorher und nachher ein 0,1µF gegen Masse.

Grüße Uwe

Ich habe als C zwei 0,1µF Keramikkondensatoren verwendet und als L eine kleine Entstördrossel von 10 oder 100µH. Diese ist zwischen 5V und %V pin des EM406 geschaltet und vorher und nachher ein 0,1µF gegen Masse.

Bei mir ist nix externen dran, wo soll man das etwas dazwischen schalten?
Der chip wird erkannt, ist auch nach dem Verschwinden in der IDE noch zu finden:

dmesg
[67282.028990] usb 5-2: Manufacturer: Prolific Technology Inc.
[67282.032112] pl2303 5-2:1.0: pl2303 converter detected
[67282.044193] usb 5-2: pl2303 converter now attached to ttyUSB0

Nur in der IDE kann er nicht mehr ausgewählt werden und das nun schon beim zweiten nano. Echt blöd und ich weiß nicht woran es liegt.

Hallo an alle,

ich bin auf der Suche im Netz auf diesen "älteren" Thread gestossen. Ich hoffe dem einen oder andren helfen zu können:

Bei mir war auch keine Kommunikation mit dem Arduino-Uno möglich. Die Schnittstelle /dev/ttyACM0 konnte ausgewählt

werden, aber verschwand dann gleich für die Arduino-IDE. Ein Test mit einem anderen Monitor-Programm (jpnevulator)

ergab das die Schnittstelle sehr wohl aktiv und I.O. war.

Im englischsprachigen Forum gab es einen Hinweis: ~/.arduino löschen!!

Danach war alles wieder I.O. und mein Uno sprach mit mir!! :grin:

Alles Gute

Holger

Hallo Zusammen,

nachdem ich das selbe Problem hatte, habe ich mal nachgeschaut:

Der Fehler trat auf, als ich den "Serial Monitor" von der Arduino IDE von 115200 auf 38400 Baud umgestellt habe. Danach ging nix mehr - keine Lebenszeichen vom Arduino und kein Upload.

Löschen des Verzeichnisses ~/.arduino half nicht - Die war direkt nach Start von der Arduino IDE wieder da - mit selben Werten.
Also habe ich darin befindliche Datei "preferences.txt" mal mit gedit geöffnet. "~/.arduino$ gedit preferences.txt" Und siehe da. Da war auch 38400 Baud eingestellt.

Die Zeile "serial.debug_rate=38400" habe ich wieder auf "serial.debug_rate=115200" zurück geändert.

Und siehe da: alles funktioniert wieder.

Warum das passiert? KeineAhnung - imho nen Bug in der IDE!? Wenn ich es raus hab, dann schreib ich hier was.

mfg Jan