Externe Daten über USB bekommen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Community,

    ich möchte gerne Daten, die ich von meinem externen Gerät bekomme verarbeiten. Leider ist mir das Thema Raspberry und Python noch ein sehr neues Gebiet (habe also noch sehr wenig erfahrung).

    Im Internet habe ich zwar 1-2 punkte gefunden, komme aber da auch nicht weiter...

    Das Gerät ist über USB an einen Raspi 2 angeschlossen (Am USB ist das externe Gerät, sowie Maus und Tastatur angeschlossen)
    Ich habe für die Programmierung gelesen, dass ich "ttyUSB" zum ansprechen des Gerätes nehmen muss. Aber wenn ich im Terminal "ls /dev/tty*" (aus Forum gefunden) eintippe, finde ich kein ttyUSB. Ich finde tty0 bis tty63 mit ein paar fehlende Zahlen sowie ttyAMA0 und ttyprintk.

    Ich habe auch ein noch ein anderen Befehl im Netz gefunden gehabt wo mir das Gerät angezeigt wurde, leider ist mir der Befehl und die Seite grad einfallen. :wallbash:

    Kann mir jemand bitte erklären was ich machen muss, um Daten vom diesen Gerät zu bekommen? Idealer Weise von Grund auf. :blush:

    Was muss ich mir noch wo runterladen, was muss ich umstellen und wie spreche ich die Verbindung am besten an.

    MfG
    Ronny8887

  • Fuer Daten von "dem Geraet" musst du nur "dem richtigen Befehl" eingeben, dann funktioniert alles "voll toll".

    Mal im Ernst. Lies dir mal deinen Beitrag durch und stell dir die Frage, welche Informationen du eigentlich wirklich gibst - ausser "irgendwas mit irgendetwas geht nicht" - und wie man dir dann helfen koennen soll.


  • Ich habe auch ein noch ein anderen Befehl im Netz gefunden gehabt wo mir das Gerät angezeigt wurde, leider ist mir der Befehl und die Seite grad einfallen. :wallbash:

    Könnte das evtl. 'lsusb' gewesen sein? Es wäre auf jeden Fall kein Fehler, den output dieses Befehls (und von 'lsusb -v') mal hier zu posten.

  • Hallo Manul,


    Es wäre auf jeden Fall kein Fehler, den output dieses Befehls (und von 'lsusb -v') mal hier zu posten.

    Jau. Jegliche Information würde speziell diesem Thread gut tun. Momentan ist nichts da, woran man etwas wie Erfahrung, Wissen, Ideen wirklich kreativ entfalten könnte.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Könnte das evtl. 'lsusb' gewesen sein? Es wäre auf jeden Fall kein Fehler, den output dieses Befehls (und von 'lsusb -v') mal hier zu posten.

    Ja, das war dieser Befehl... :danke_ATDE:

    lsusb:
    Bus 001 Device 005: ID 046d:c52f Logitech, Inc. Unifying Receiver
    Bus 001 Device 004: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
    Bus 001 Device 011: ID 0cad:0100 Motorola CGISS
    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
    Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    BUS 001 Device 011 ist mein Gerät was ich benötige.

    lsusb -v gibt mir folgendes aus:
    Bus 001 Device 005: ID 046d:c52f Logitech, Inc. Unifying Receiver
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 8
    idVendor 0x046d Logitech, Inc.
    idProduct 0xc52f Unifying Receiver
    bcdDevice 30.00
    iManufacturer 1
    iProduct 2
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 59
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 4
    bmAttributes 0xa0
    (Bus Powered)
    Remote Wakeup
    MaxPower 98mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 1 Boot Interface Subclass
    bInterfaceProtocol 2 Mouse
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.11
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 67
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0008 1x 8 bytes
    bInterval 2
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 1
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 0 No Subclass
    bInterfaceProtocol 0 None
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.11
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 79
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x82 EP 2 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0014 1x 20 bytes
    bInterval 2

    Bus 001 Device 004: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 1.10
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 8
    idVendor 0x04d9 Holtek Semiconductor, Inc.
    idProduct 0x1603 Keyboard
    bcdDevice 3.10
    iManufacturer 1
    iProduct 2
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 59
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
    (Bus Powered)
    Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 1 Boot Interface Subclass
    bInterfaceProtocol 1 Keyboard
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.10
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 62
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0008 1x 8 bytes
    bInterval 10
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 1
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 0 No Subclass
    bInterfaceProtocol 0 None
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.10
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 101
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x82 EP 2 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0008 1x 8 bytes
    bInterval 10

    Bus 001 Device 011: ID 0cad:0100 Motorola CGISS
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 8
    idVendor 0x0cad Motorola CGISS
    idProduct 0x0100
    bcdDevice 1.00
    iManufacturer 1
    iProduct 2
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 32
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
    (Bus Powered)
    MaxPower 98mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 10 CDC Data
    bInterfaceSubClass 0 Unused
    bInterfaceProtocol 0
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0010 1x 16 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x82 EP 2 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0010 1x 16 bytes
    bInterval 0

    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 255 Vendor Specific Class
    bDeviceSubClass 0
    bDeviceProtocol 1
    bMaxPacketSize0 64
    idVendor 0x0424 Standard Microsystems Corp.
    idProduct 0xec00 SMSC9512/9514 Fast Ethernet Adapter
    bcdDevice 2.00
    iManufacturer 0
    iProduct 0
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 39
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xe0
    Self Powered
    Remote Wakeup
    MaxPower 2mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 3
    bInterfaceClass 255 Vendor Specific Class
    bInterfaceSubClass 0
    bInterfaceProtocol 255
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x02 EP 2 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x83 EP 3 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0010 1x 16 bytes
    bInterval 4

    Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 9 Hub
    bDeviceSubClass 0 Unused
    bDeviceProtocol 2 TT per port
    bMaxPacketSize0 64
    idVendor 0x0424 Standard Microsystems Corp.
    idProduct 0x9514
    bcdDevice 2.00
    iManufacturer 0
    iProduct 0
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 41
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xe0
    Self Powered
    Remote Wakeup
    MaxPower 2mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 9 Hub
    bInterfaceSubClass 0 Unused
    bInterfaceProtocol 1 Single TT
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0001 1x 1 bytes
    bInterval 12
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 1
    bNumEndpoints 1
    bInterfaceClass 9 Hub
    bInterfaceSubClass 0 Unused
    bInterfaceProtocol 2 TT per port
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0001 1x 1 bytes
    bInterval 12

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 9 Hub
    bDeviceSubClass 0 Unused
    bDeviceProtocol 1 Single TT
    bMaxPacketSize0 64
    idVendor 0x1d6b Linux Foundation
    idProduct 0x0002 2.0 root hub
    bcdDevice 4.01
    iManufacturer 3
    iProduct 2
    iSerial 1
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xe0
    Self Powered
    Remote Wakeup
    MaxPower 0mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 9 Hub
    bInterfaceSubClass 0 Unused
    bInterfaceProtocol 0 Full speed (or root) hub
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0004 1x 4 bytes
    bInterval 12

  • Auch auf die Gefahr, dass ich mir wieder einen Rüffel einfange, weil ich hier auf einen alten Thread antworte, aber es ist doch schade, dass niemand hier bisher helfen wollte.
    Kann es sein, dass es sich um einen Datenlogger oder sowas aehnliches bei "Dem Geraet" handelt? Oder ein USB-zu-Seriell-Adapter (evtl. im Geraet intern verwendet?)
    Das wuerde zur Konfiguration passen. Wenn es letzteres ist, kann man mit Glück ttyUSB0 verwenden, wenn der richtige Treiber vom Kernel geladen wurde. Das ist aber meistens nicht der Fall. Dann muss man mit libusb arbeiten und die (in diesem Fall) control_transfers und bulk_transfers selber Programmieren. Hierzu ist natuerlich das WIssen über das verwendetet Protokoll nötig. Wenn es aber ein einfacher Seriell-Adapter ist (weiss man ggf von der Orginal-Software auf Windows) dann gibt es eine chance. Ansonsten musst Du irgendwie das Protokoll rausfinden. Ist etwas aufwaendig, aber machbar.

  • Das mit dem Motorola CGISS muss nicht stimmen. Er hat lsusb ja ohne su ausgefuehrt, also bekommt er keine Identifikationsinfos vom geraet direkt. Die Motorola Info kommt aus der lokalen Datenbank. Aber manchmal verwenden auch andere Geraete dieselbe Vendor- und device-id. Leider wird dann auch manchmal der falsche Treiber in den Kernel geladen, den man dann mit rmmod wieder entfernen muss.

    Jedenfalls finde ich, dass zwar einige Informationen noch fehlen, aber auch schon eine ganze Menge da stehen, mit denen aber noch niemand was gemacht hat.
    Und wenn der OP nicht mehr Preisgeben will, weil ihm sien Projekt doch nicht mehr wichitg ist, dann kommt eben vielleicht spaeter jemand anderes, der dieses Thema gefunden hat, ein ähnlichees Gerat hat und den Faden wieder aufnimmt.

    Darf ich noch eine persönliche Bemerkung anfügen?:
    Wenn ich eine Frage poste oder ein Projekt vorstelle und dann die ersten Reaktionen sind: "erkundige Dich lieber woanders" oder "lies die Frage und überleg mal wie schlau das ist" (sinngemaess), dann wuerde ich auch nicht gerne wiederkommen. Vor allem, wenn nach 2 Monaten immernoch niemand eine hilfreiche Antwort geben konnte. Es gibt keine Garantie auf Hilfe, aber versuchen darf man es. Dafuer sind die Foren ja da. Aber die visionaeren Themen-Eröffner verdienen es, in der Anfangsphase ihres Projektes, dass andere interessierte erstmal positiv reagieren, die Vision weiterspinnen und sich gerade noch nicht mit "öh, geht gar nich", oder "das lohnt nicht" oder "o backe, das kann schwierig werden" äußern. Sonst stirbt der ursprüngliche Entusiasmus sofort ab, und es wird nix daraus, und es verbleibt eine Themen-Leiche. Wenn es nachher an die Realisierung des Projektes geht, dann kann man gucken, welche Fallen und Schwierigkeiten überwunden werden müssen, aber erst dann.

  • Kannst du denn jetzt sagen welches Gerät er hat? Den Hinweis mehr Infos raus zu rücken hat er bekommen. Klar geht das höflicher, aber wer eine Vision hat darf sich auch nicht unterkriegen lassen und bis jetzt kann jeder nur spekulieren. Die Device Info kommt nicht aus der lokalen Datenbank sondern von Google [emoji12]

  • Nein, das kann ich jetzt nicht erraten. Aber genauso eine Konfiguration ist mir schon bei einem Temperatur und Feuchte-Datenlogger untergekommen (ich glaub, das war ein Lascar oder Voltcraft teil). Das ging nacher aber auch unter linux, nach einigen Schwierigkeiten, und ich glaube, der Fall hier liegt ähnlich. Also könne man es versuchen, wenn der OP noch Interesse oder Lust dazu hat. (oder in einem Jahr oder so jemand anderes da weitermachen will).
    Mein Fazit waere: Wenn es keinen passenden Linux-USB-zu-seriell treiber schon gibt, in welchen fall man dann /dev/ttyUSB0 benutzen kann, dann libusb benutzen und das Kommunikationsprotokoll selbst implementieren. Vorausgesetzt man hat das Ding an einem anderen (Windows oder so) Rechner am laufen und kann das Protokoll da abschauen, oder man findet schon was dazu im Internet.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!