Keine Verbindung zu Original Arduino Produkten

Hallo liebe Forummitglieder, bin neu hier und habe mal eine Frage.

Und zwar ist es mit seit geraumer Zeit nicht mehr möglich den Seriellen Port zu den angeschlossenen Arduino zu wählen.
Mein Problem tritt dann auf wenn ich ein original Arduino Produkt anstecken möchte, bei einen Nachbau ist mir dies jedoch möglich, warum auch immer?

Sowohl der Arduino UNO als auch der Leonardo können bei mir keine Verbindung zur IDE aufbauen.
Ein Klon aus einen Franzis Lernpaket "Lichteffekte mit Arduino" ist dazu jedoch in der Lage und kann mit Board --> Arduino UNO angesprochen werden.

Ich hatte erst gedacht das ich den UNO aus versehen zu stark belastet habe und er defekt sei, aber als ich mir jetzt einen Leonardo kaufte tritt dieses Problem weiterhin auf.

Ich nutze ein Linux Betiebssystem (Ubuntu 12.04) mit 64Bit.
Installiert habe ich die IDE Version 1.0.1.
Und auch die IDE 1.0.5 ist lauffähig entpackt.

Beides mal das gleiche. Keine Verbindung.
Wenn jemand dieses Problem kennt und/oder eine Lösung dafür hat wäre ich sehr dankbar.

Ich nutze ein Linux Betiebssystem (Ubuntu 12.04) mit 64Bit.

Für den Leonardo musst Du das Betriebssystem upgraden, die Version des Treibers, die mit 12.04 ausgeliefert wurde, weiss noch nichts vom Leonardo und erkennt ihn deshalb nicht. Ubuntu 14.04 ist schon länger draussen und auch eine LTS-Version, Du kannst also problemlos auf diese Version upgraden.
Wenn der UNO nicht mehr sichtbar wird, könnte es sein, dass Du ihn wirklich "verbraten" hast.

Welche Kernelversion ist denn für den Leonardo mindestens notwendig?
Ich verwende derzeit den 3.13.0-35-generic.

Das Ubuntu 14.04 draußen ist ist mir bekannt, ich habe aber erst mal davon abgesehen. Bisher lief ja alles und läuft ja alles stabil, mit außnahme dieser Sache.

Upgraden werde ich wirklich nur wenn diess unbedingt nötig ist.
Oder der Support für 12.04 ausläuft :slight_smile:

Die 3.13er Version sollte den Leonardo kennen. Wenn Du den Leonardo eingesteckt hast, siehst Du etwas in der Ausgabe von "dmesg"? Was liefert ein Aufruf von "lsusb" (allenfalls noch nachzuinstallieren mittels "sudo apt-get install usbutils")? Was liefert "ls -l /dev/ttyACM*"?

lsusb liefert mir dies:

Bus 002 Device 002: ID 05e3:0505 Genesys Logic, Inc. 
Bus 003 Device 008: ID 2341:8036  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Und ls -l /dev/ttyACM* das:

crw-rw---- 1 root dialout 166, 0 Sep 15 19:17 /dev/ttyACM0

Wenn ich vesuche dmesg mitzusenden bekomme ich von der Website eine fehler mit der Titelleiste Broken!.
Die Ausgabe davon ist zu lang für den Post.
Sie ist 1025 Zeilen lang.
Wonach soll ich darin suchen?

Der Leonardo ist dort als HID Gerät eingetragen, wenn du danach gesucht hast.?

Ist Dein Benutzer in der dialout-Gruppe eingetragen? Allenfalls kannst Du mal testen, ob

chmod 666 /dev/ttyACM0

und danach erst die IDE starten etwas bringt bezüglich Sichtbarkeit des Leonardos in der IDE.

Der Eintrag 2341:8036 ist derjenige des Leonardo. Mein Kernel 3.13.0 (Ubuntu 14.04) zeigt ihn aber als Arduino Leonardo an. Deiner scheint aber zumindest den Treiber korrekt zu laden, denn die Schnittstelle /dev/ttyACM0 sollte der Leonardo sein (ein anderes Gerät mit serieller Emulation scheint nicht angeschlossen zu sein, ausser dem Leonardo ist nur noch eine Webcam angeschlossen).

Der Leonardo wird ab Werk nicht als HID erkannt. Hast Du einen Sketch darauf geladen, der ihn als virtuelles Keyboard ausgibt?

Also in der dialout-Gruppe bin ich eingetragen.

Der chmod Befehl bewirkt keinen Unterschied.

Ich habe jetzt mal testweise mein Franzis-Board angeschlossen und einen Sketch übertragen.
Soweit so gut.
Mein Testsketch soll mir einfach nur den gelesenen Wert am analogen Port 0 auf den Serial Monitor ausgeben.
Beim Ausgeben des Wertes soll die Pin13-LED leuchten.
Nach dem Hochladen führt das Board auch seine Befehle aus.
Aber wenn ich den Serial Monitor öffne sehe ich meine Werte nicht (die TX-LED leuchtet auch nicht).
Wenn ich versuche einen Wert darüber zu schicken, leuchtet dann zwar die RX-LED kurz, aber der Serial Monitor und die IDE stürzen ab und werden beendet.

Zu den Franzis-Board muss ich berichtigen das es doch über Board --> Dueminalove w/ATmega328 gewählt wird.
Die Verbindung wird mir dann mit /dev/ttyUSB0 angezeigt.

Schein ein Problem der anwählbarkeit zu sein. Aber wo?

Hier mal die Zeilen die die dmesg ausgibt.
Der Leonardo ist werksneu und ich hatte bisher noch nicht das Vergnügen einen Sketch draufzuspielen.

[ 1919.793519] hid-generic 0003:2341:8036.0002: input,hidraw0: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:04.0-1/input2
[ 8840.992554] hid-generic 0003:2341:8036.0003: input,hidraw0: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:04.0-1/input2

Hallo,

vorweg bei mir läuft Ubuntu 14.04.1 LTS, Kernel 3.4.90, und sowohl der Uno als /dev/ttyACM0 als auch der Duemilanove als /dev/ttyUSB0 laufen einwandfrei. Einen Leonardo kann ich nicht testen, habe keinen zur Verfügung.

Du hast ja (ich glaube im ersten Post) geschrieben, dass es seit geraumer Zeit nicht mehr geht. Also scheint es ja schonmal gegangen zu sein. Stimmt das? Wenn ja, was hast Du seitdem geändert? Hast Du vielleicht einen neuen User angelegt und irgendwelche Gruppenzugehörigkeiten oder Rechte nicht oder falsch gesetzt? Ist Dein User wirklich in der Dialout-Gruppe?

Vielleicht kannst Du (evtl. in einer virtuellen Maschine) mal 14.04 installieren und damit testen? Eventuell kannst Du auch mal auf der 12.xx die Arduino-IDE komplett neu installieren.

Gruß,
Ralf

Prinzipiell wäre für mich zu klären wo der Unterschied zwischen ttyACM und ttyUSB liegt. Werden die auf den Boards anders angesprochen?
Eine Verbindung zu ttyUSB also zum Franzis-Board fünktioniert programmiertechnisch. Die Originale verwenden ttyACM.

Es besteht das Problem seit einen Updates von Ubuntu, dieses war aber bereits ende Novenber 2013, weitere Updates könnten dieses Problem leider nicht lösen. Vorher hat alles reibungslos funktioniert.
Damals hatte ich das Franzis-Board und den Arduino UNO, es bestanden keine Probleme.

Ich hatte versucht herauszufinden woran es lag und hoffte auf ein passendes Update, dieses kam allerdings nie.
Da meine geduld auch irgandwann seine Grenzen hatte, habe ich es erst mal bleiben lassen.

In der dialout-Gruppe bin ich eingetragen, hier die ausgabe von id:

uid=1000(heiny) gid=1000(heiny) Gruppen=1000(heiny),4(adm),7(lp),10(uucp),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

Ich habe die IDE schon mehrfach neu installiert. --> Nichts
Ich habe auch schon versucht die ./arduino/preferences.txt Datei zu bearbeiten um in irgeneiner Weise die Verbindung zu erzwingen.

Da die Boards aber zu schade für die Schublade sind habe ich mir mal wieder aus der Schublade genommen.
Ich habe mir sogar ein neuen Leonardo gekauft, weil ich mir ein neues Projekt ausgedacht hatte und meine Hoffnungen jetzt darauf setzte.

Ich werde jetzt noch einmal alle Möglichkeiten durchgehen, egal ob Windows oder verschiedenste Linux-Distriebutionen und Live-CD's/DVD's.
Ein Upgrade auf 14.04 kommt für mich allerdings noch nicht in Frage weil ich mir nicht sicher sein kann, ob danach nicht noch weiter besteht.

Das Problem sollte, auch wenn die Verbindungen auf anderen Systemen funktionieren sollte, direkt auf der 12.04 Version behoben werden, da ich ja damit arbeiten möchte.

Mir ist nur schleierhaft wo sich der Fehler genau befindet um ihn direckt angehen zu können.

Ich werde meine Ergebnisse dieser Suche dann posten.

Heiny:
Prinzipiell wäre für mich zu klären wo der Unterschied zwischen ttyACM und ttyUSB liegt. Werden die auf den Boards anders angesprochen?
Eine Verbindung zu ttyUSB also zum Franzis-Board fünktioniert programmiertechnisch. Die Originale verwenden ttyACM.

Die Arduinos werden anders angesprochen weil sie andere USB-Serial-Adapter haben. Arduino 2009 (und wahrscheinlich auch der Franzis-Arduino) haben den FT232. Arduino UNO und Arduino MEGA2560 einen programmierten ATmega8U2 bzw ATmega16U2. Beim Arduino Leonardo übernimmt der ATmega32U4 auch die USB-Schnittstelle.

Zu Linux kann ich leider nichts sagen weil ....
Grüße Uwe

Heiny:
Hier mal die Zeilen die die dmesg ausgibt.
Der Leonardo ist werksneu und ich hatte bisher noch nicht das Vergnügen einen Sketch draufzuspielen.

[ 1919.793519] hid-generic 0003:2341:8036.0002: input,hidraw0: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:04.0-1/input2

[ 8840.992554] hid-generic 0003:2341:8036.0003: input,hidraw0: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:04.0-1/input2

Wo hast Du den Leonardo her? Mein werksneuer Leonardo hat sich nie als HID-Gerät angemeldet (OK, ich habe ihn jetzt schon mehr als ein Jahr, aber ich bezweifle, dass sie die Software-Aufspielung derart geändert haben). Allerdings habe ich den Verdacht, dass Du wirklich ein Problem mit dem Treiber für die Software-USB-Serial-Emulationen hast (cdc_acm). Wird der überhaupt geladen (Ausgabe von lsmod)? Sonst versuche mal:

sudo modprobe cdc_acm

und poste den Output von

dmesg | tail

Hallo,

ich habe mal ein bißchen gegoogelt und gesehen, dass andere Leonardo-Besitzer das Problem lösen konnten, indem sie Ihren User der Gruppe tty zugefügt haben - obwohl ich (auf 14.04) diese Gruppe nicht sehen kann. Aber wenn es nichts bringt, schadet es sicher auch nicht, deshalb probier doch mal (vielleicht bei angestecktem Leonardo):

sudo adduser heiny tty
newgrp

Gruß,
Ralf

Erst mal danke Uwe (alias uwefed) für die Erklärung der USB-Serial-Adapter.
Somit ist mir klar warum. Anderer Adapter andere Ansteuerung. Dachte die wären alle gleich. Das muss man entweder wissen oder ganz genau draufgucken.

Gut dann ist das geklärt.
Wenn es weiterhilft, die genaue Bezeichnung auf dem Franzis ist:

1211-c
GN400911
FT232RL

Aber warum kann ich jetzt nur die Verbindung über diesen herstellen?

pylon, den Leonardo habe ich mir vor kurzem in einer Conrad-Filiale gekauf.

Der cdc_acm wird scheinbar geladen.
Steht so in der Ausgabe:cdc_acm                28856  0

Die Ausgabe von dmesg | tail ist:

[ 3699.123121] usb 3-1: USB disconnect, device number 4
[ 3706.616131] usb 3-1: new full-speed USB device number 5 using ohci-pci
[ 3706.838136] usb 3-1: New USB device found, idVendor=2341, idProduct=8036
[ 3706.838145] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3706.838150] usb 3-1: Product: Arduino Leonardo
[ 3706.838154] usb 3-1: Manufacturer: Arduino LLC
[ 3706.841231] cdc_acm 3-1:1.0: This device cannot do calls on its own. It is not a modem.
[ 3706.841264] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[ 3706.857260] input: Arduino LLC Arduino Leonardo as /devices/pci0000:00/0000:00:04.0/usb3/3-1/3-1:1.2/input/input19
[ 3706.857529] hid-generic 0003:2341:8036.0002: input,hidraw0: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:04.0-1/input2

Schachmann, ich habe mich jetzt in dieser Gruppe eingetragen, aber weiterhin nichts.

Heiny:
Schachmann, ich habe mich jetzt in dieser Gruppe eingetragen, aber weiterhin nichts.

Hallo,

tja, Schade. Ich rate ja auch mehr oder weniger nur rum, wie schon geschrieben, kein Leonardo und Version 14.04.

Eine weitere Lösung, die ich im Internet entdeckt habe:

Arduino ausstöpseln, dann

rmmod cdc_acm

modprobe cdc_acm

Arduino wieder einstöpseln.

Vielleicht hilfts...

Gruß,
Ralf

Nein, leider half auch dies nichts.
Aber danke für deine Unterstützung, Ralf.

Auch Version 1.0.6, die ich jetzt entpackt habe, bekommt keine Verbindung zu stande.
Schade. =(

Ich habe in der Zwischenzeit mal die beiden Arduino's auf Xubuntu 14.04 laufen lassen.

Dort funktioniert alles, programmierung und Seriell Monitor.
Der Leonardo meldet sich freundlich mit: TEST OK
Auch der Uno funtioniert dort, und gibt mir seine Ausgaben zurück, und auch alle Ports funktionieren dort noch.
Also ist dieser, zum Glück, nicht zerbrutzelt. XD

Gibt es vieleicht irgendwelche Parameter oder Konfigurationen die man für solcheine Verbindung editieren könnte?
Vieleicht schon in der IDE selbst?
Oder kann es sein das in irgendeiner Weise eine Inkompatibilität zu den Bootloadern gibt?
Wie ist die Reihenfolge bis zum ansteuern des Boards?

Hier ist die preferences.txt Datei:

board=leonardo
browser=mozilla
browser.linux=mozilla
build.verbose=false
console=true
console.auto_clear=true
console.error.file=stderr.txt
console.length=500
console.lines=4
console.output.file=stdout.txt
editor.antialias=false
editor.caret.blink=true
editor.divider.size=0
editor.divider.size.windows=2
editor.external=false
editor.font=Monospaced,plain,12
editor.font.macosx=Monaco,plain,10
editor.indent=true
editor.invalid=false
editor.keys.alternative_cut_copy_paste=true
editor.keys.alternative_cut_copy_paste.macosx=false
editor.keys.home_and_end_travel_far=false
editor.keys.home_and_end_travel_far.macosx=true
editor.keys.shift_backspace_is_delete=true
editor.languages.current=de
editor.linenumbers=true
editor.tabs.expand=true
editor.tabs.size=2
editor.update_extension=true
editor.window.height.default=600
editor.window.height.min=500
editor.window.height.min.macosx=450
editor.window.height.min.windows=530
editor.window.width.default=500
editor.window.width.min=400
export.applet.separate_jar_files=false
export.application.fullscreen=false
export.application.platform=true
export.application.platform.linux=true
export.application.platform.macosx=true
export.application.platform.windows=true
export.application.stop=true
export.delete_target_folder=true
last.ide.1.0.6.daterun=1411234184
last.ide.1.0.6.hardwarepath=/home/heiny/Arduino/arduino-1.0.6/hardware
last.screen.height=945
last.screen.width=1680
last.serial.location=57,24,1623,921
last.sketch.count=0
last.sketch0.location=591,200,500,600,448
last.sketch0.path=/home/heiny/sketchbook/testing/testing.ino
launcher=xdg-open
platform.auto_file_type_associations=true
preproc.color_datatype=true
preproc.enhanced_casting=true
preproc.imports.list=java.applet.*,java.awt.Dimension,java.awt.Frame,java.awt.event.MouseEvent,java.awt.event.KeyEvent,java.awt.event.FocusEvent,java.awt.Image,java.io.*,java.net.*,java.text.*,java.util.*,java.util.zip.*,java.util.regex.*
preproc.output_parse_tree=false
preproc.save_build_files=false
preproc.substitute_floats=true
preproc.substitute_unicode=true
preproc.web_colors=true
programmer=arduino:avrispmkii
run.display=1
run.options=
run.options.memory=false
run.options.memory.initial=64
run.options.memory.maximum=256
run.present.bgcolor=#666666
run.present.exclusive=false
run.present.exclusive.macosx=true
run.present.stop.color=#cccccc
run.window.bgcolor=#DFDFDF
serial.databits=8
serial.debug_rate=9600
serial.parity=N
serial.port=/dev/ttyUSB0
serial.stopbits=1
sketchbook.path=/home/heiny/sketchbook
target=arduino
update.check=false
update.id=-4409509712526464009
update.last=1411158113202
upload.using=bootloader
upload.verbose=true
upload.verify=true

Vieleicht ist dort irgendein Fehler drin?

Beim tagelangen suchen bin ich heute auch darauf gestoßen das vieleicht irgendwelche rxtx-Dateien defekt seien könnten.
Da Java ja solche Dateien benutzt und die Arduino IDE ja auf Java aufgebaut ist, und rx und tx ja für Empfangen und Senden stehen, klingt dies extrem logisch.
Ich hatte bisher noch nicht die Vermutung das Java selbst dafür verantwortlich sein könnte.
Gibt es da einen sinnvollen Zusammenhang? Wenn ja, wo?
Und kann ein manuelles ersetzen/löschen dieser Dateien noch mehr Fehler verursachen?
Werden diese Dateien in irgendeiner Weise für die Ansprache der Serial-USB-Adapter oder gar der µC selbst verwendet?

:smiley: :smiley: :DEs funktioniert alles wieder!! :smiley: :smiley: :smiley:

Der Fehler war:
Das ich tatsache RXTX-Dateien hatte, die diesen Fehler verursacht haben.

Diese lagen in den java-1.6.0-openjdk, java-1.7.0-openjdk, java-6-openjdk und in den java-7-openjdk Ordnern.
Ich habe jetzt alle diese Laufzeitungebungen deinstalliert und den Rest manuell entfernt.
Danach wieder alles Installiert.

Alle funktionen sind wieder da.
Ich bin glücklich. :grin:

Jetzt kann ich endlich wieder loslegen.

LG Stefan

Glückwunsch :slight_smile:

Dann frohes Schaffen!

Gruß,
Ralf