Powered by Invision Power Board


  
 
Reply to this topicStart new topicStart Poll

> Arduino an VDR betreiben.
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 18:58 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Hallo Zusammen,

hab mal eine Frage.
Ist der Kernel der V4 eigentlich in der Lage einen Arduino Duemilanove mit FTDI Chip anzusprechen?

Versuche gerade auf Basis Arduino (Arduatmo) aus dem VDR Portal eine Art Ambilight an den VDR zu bekommen.

Allerdings scheint der Arduiono über USB nicht richtig erkannt zu werden.

Liegt das evtl. an einem fehlenden Treiber?

Danke, Stefan.
Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 19:42 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



QUOTE (SVeith @ Mittwoch, 10.September 2014, 19:58 Uhr)
[...] Liegt das evtl. an einem fehlenden Treiber?

Das kannst Du ganz einfach prüfen:

CODE
zgrep -i ftdi /proc/config.gz
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 20:11 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Hi R2D2,

CODE
vdr ~ # zgrep -i ftdi /proc/config.gz
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_FTDI_ELAN=m


Mhhh, was sagt mir (eigentlich Dir) diese Ausgabe jetzt?

Danke, Stefan.
Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 20:20 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Was Dir das sagt, weiß ich nicht, mir sagt es, dass der "Treiber" nicht fehlt im Kernel und halt nur zu geladen werden braucht:

CODE
vdr01_64 ~ # modprobe -v ftdi_sio
insmod /lib/modules/3.16.0-gentoo/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/3.16.0-gentoo/kernel/drivers/usb/serial/ftdi_sio.ko
vdr01_64 ~ #
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 20:54 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Hi R2D2,

der Treiber wird jetzt wohl geladen.
Aber mein Problem von hier ist leider noch nicht gelöst...

Vielleicht kennst Du oder jemand aus dem VDR Portal noch die Lösung für das Problem.

Danke soweit, Stefan.
Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 20:58 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Und wo genau ist nun Dein Problem? Die Frage war doch, ob der FTDI Treiber im Kernel drin ist, oder nicht?

Ehrlich gesagt, habe ich kein Lust, im vdrportal einen ~330 Posts langen Thread durchzulesen, zumal ich das eigentliche Problem nicht kenne....
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 21:06 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



QUOTE
  Und wo genau ist nun Dein Problem? Die Frage war doch, ob der FTDI Treiber im Kernel drin ist, oder nicht?

Die Frage ist ja nun auch beantwortet.

Das Problem bleibt, dass ich den Arduino über...
CODE
echo -n -e "\xc9\xc0\x00\x01\x01\x36" >/dev/ttyUSB0

nicht ansprechen kann. Darüber sollte ein Programm aus dem Sketch des Arduiono ausgeführt werden und die LED's des Stripes schön bunt leuchten.
QUOTE
Ehrlich gesagt, habe ich kein Lust, im vdrportal einen ~330 Posts langen Thread durchzulesen, zumal ich das eigentliche Problem nicht kenne....

Das brauchst Du auch nicht, Danke für Deine Hilfe.

Ciao, Stefan.
Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 21:15 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Was sagt denn:

CODE
lsusb


Und:

CODE
ll /dev |grep USB
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 21:22 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



CODE
vdr ~ # lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 035: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 002: ID 0bc7:0006 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant)
Bus 003 Device 007: ID 0bda:0184 Realtek Semiconductor Corp. RTS5182 Card Reader
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


CODE
vdr ~ # ll /dev |grep USB
lrwxrwxrwx  1 root root            15 Sep 10 21:34 ttyUSB0 -> bus/usb/003/035
Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 21:29 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Der USB2Serial Adapter ist als ttyUSB0 gelinkt.

Was der "echo blablabala..." bewirkt, weiss ich nicht, evtl. stimmt ja auch der Befehl nicht?
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Mittwoch, 10.September 2014, 21:39 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



QUOTE
Der USB2Serial Adapter ist als ttyUSB0 gelinkt.

Soweit ich das verstanden habe wird das über die UDEV Regel gelöst.
Habe diese Regel konfiguriert.
CODE
SUBSYSTEMS=="usb", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="ttyUSB0"

Das echo "bla" soll eigentlich ein Programm auf dem Arduino starten.

Email Poster
Top
R2D2
Geschrieben am: Mittwoch, 10.September 2014, 21:46 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Nun, zum Einen hätte ich nicht nach ttyUSBx gelinkt, sondern z.B. nach "Arduino", oder "Ambilight", zum Andern weiß ich ja gar nicht, ob dieser Befehl stimmt und/oder ob der PIC richtig programmiert wurde und auch im richtigen Modus betrieben wird....
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Freitag, 12.September 2014, 12:43 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Hi R2D2,

ich hab mal weiter geforscht und bin ein kleines Stück weiter gekommen.
Zunächst mal habe ich dafür gesorgt das der ftdi_sio treiber automatisch geladen wird.
CODE
vdr ~ # ll /etc/modprobe.d/ftdi_sio.conf
-rw-r--r-- 1 root root 18 Sep 11 20:52 /etc/modprobe.d/ftdi_sio.conf

Nach einem Boot des Systems wird der Arduino durch die udev Regel verlinkt.
CODE
vdr ~ # ll /dev/ttyUSB0
lrwxrwxrwx 1 root root 15 Sep 12 13:26 /dev/ttyUSB0 -> bus/usb/003/003

Soweit so schlecht, wenn ich jetzt den echo "blabla" befehl absetze schlägt das wie gewohnt fehl.
CODE
vdr ~ # echo -n -e "\xc9\xc0\x00\x01\x02\x36" > /dev/ttyUSB0
-bash: echo: write error: Invalid argument

Wenn ich jetzt aber den Arduino mal vom USB trenne und neu anstecke, dann wird der Arduino erkannt.
CODE
Sep 12 13:35:27 [kernel] usb 3-9: USB disconnect, device number 3
Sep 12 13:35:27 [kernel] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
Sep 12 13:35:27 [kernel] ftdi_sio 3-9:1.0: device disconnected
Sep 12 13:35:33 [kernel] usb 3-9: new full-speed USB device number 5 using xhci_hcd
Sep 12 13:35:33 [kernel] usb 3-9: New USB device found, idVendor=0403, idProduct=6001
Sep 12 13:35:33 [kernel] usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 12 13:35:33 [kernel] usb 3-9: Product: FT232R USB UART
Sep 12 13:35:33 [kernel] usb 3-9: Manufacturer: FTDI
Sep 12 13:35:33 [kernel] usb 3-9: SerialNumber: A9UD97NF
Sep 12 13:35:33 [kernel] ftdi_sio 3-9:1.0: FTDI USB Serial Device converter detected
Sep 12 13:35:33 [kernel] usb 3-9: Detected FT232RL
Sep 12 13:35:33 [kernel] usb 3-9: Number of endpoints 2
Sep 12 13:35:33 [kernel] usb 3-9: Endpoint 1 MaxPacketSize 64
Sep 12 13:35:33 [kernel] usb 3-9: Endpoint 2 MaxPacketSize 64
Sep 12 13:35:33 [kernel] usb 3-9: Setting MaxPacketSize 64
Sep 12 13:35:33 [kernel] usb 3-9: FTDI USB Serial Device converter now attached to ttyUSB0

Jetzt ist der Arduino folgendermassen verlinkt: (anders als nach dem Bootvorgang)
CODE
vdr ~ # ll /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 Sep 12 13:35 /dev/ttyUSB0

Wenn ich jetzt das echo Kommando an den Arduino sende, dann funktioniert das und der Ardiono startet sein internes Progeamm wie es sein soll.
CODE
vdr ~ # echo -n -e "\xc9\xc0\x00\x01\x01\x36" > /dev/ttyUSB0


Hast Du noch einen Rat für mich, wie ich den Arduiono schon nach dem Booten so einbinden kann dass dieser richtig erkannt wird?
Liegt es daran das der Treiber vielleicht zu spät geladen wird und der Arduino als anderes device erkannt wurde?

Dankel vorab und v.G., Stefan.
Email Poster
Top
R2D2
Geschrieben am: Freitag, 12.September 2014, 17:29 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



Wird er denn beim Booten korrekt erkannt?

Was sagt denn "dmesg" dirket nach dem Booten?
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Freitag, 12.September 2014, 18:13 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Anbei die dmesg Ausgabe.
Irgendwie sieht die erste Erkennung während des Boot Vorgangs nicht wirklich anders aus.
Hab dann hinterher noch mal USB getrennt und wieder gesteckt.

Ciao, Stefan.

angehängte Datei ( Anzahl der Downloads: 114 )
angehängte Datei  dmesg.log
Email Poster
Top
R2D2
Geschrieben am: Freitag, 12.September 2014, 21:08 Uhr
Quote Post


Prinz
****

Gruppe: Moderators
Beiträge: 6149
Mitgliedsnummer.: 1131
Mitglied seit: 2005-10-30



So wie es aussieht, wird der FTDI ja richtig erkannt, die Frage ist nun, ob der Arduino dann auch schon "bereit" ist, auf Befehle zu reagieren? Mit dem "echo bla bla ...", wird ja nichts anders gemacht, als den Arduino zu initialisieren. Der FTDI ist ja im Grunde genommen "dumm", d.h. es ist ja nur ein USB2Serial Wandler, der nichts anders macht, als die Befehle durchzureichen.
Die Frage, die sich nun stellt ist, was genau passiert im Arduino, wenn er von USB getrennt und wieder verbunden wird?
Email PosterUsers WebsiteICQ
Top
SVeith
Geschrieben am: Freitag, 19.September 2014, 11:04 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 507
Mitgliedsnummer.: 1160
Mitglied seit: 2005-11-10



Hi,

hab noch mal weiter probiert.
Letzlich führte das Entfernen der udev Regel zum Erfolg.
Auch ohne udev Regel wird der Arduino zuverlässig nach /dev/ttyUSB verlinkt
und funktioniert auch direkt nach dem Bootvorgang.

Ciao, Stefan.
Email Poster
Top
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

Topic Options Reply to this topicStart new topicStart Poll