Einfachen USB-Treiber für ein Gerät entwickeln
Hallo, zusammen,
ich habe ein spannendes Produkt gefunden - hierbei handelt es sich um einen USB Knopf, mit dem ich eine Software steuern kann. Ich kann nach links drehen, nach rechts drehen und draufdrücken - das war es. Allerdings will ich jetzt das Gerät für einen komplett anderen Einsatzzweck verwenden - der Hersteller stellt jedoch keinen Gerätetreiber zur Verfügung, mit dem man das Gerät an andere Programme anbinden kann.
Jetzt habe ich mir mit https://freeusbanalyzer.com/ die Kommunikation angeschaut, und es handelt sich wohl tatsächlich um ganz einfache 4-Byte-Infos - "links um 10 Ticks gedreht", "rechts um 15 Ticks gedreht", "gedrückt", fertig.
Hat jemand einen Tipp für mich, was ich mir anlesen muss, um für das Gerät einen eigenen Windows-Treiber zu schreiben? Oder kann mir jemand so etwas anbieten?
Vielen Dank!
ich habe ein spannendes Produkt gefunden - hierbei handelt es sich um einen USB Knopf, mit dem ich eine Software steuern kann. Ich kann nach links drehen, nach rechts drehen und draufdrücken - das war es. Allerdings will ich jetzt das Gerät für einen komplett anderen Einsatzzweck verwenden - der Hersteller stellt jedoch keinen Gerätetreiber zur Verfügung, mit dem man das Gerät an andere Programme anbinden kann.
Jetzt habe ich mir mit https://freeusbanalyzer.com/ die Kommunikation angeschaut, und es handelt sich wohl tatsächlich um ganz einfache 4-Byte-Infos - "links um 10 Ticks gedreht", "rechts um 15 Ticks gedreht", "gedrückt", fertig.
Hat jemand einen Tipp für mich, was ich mir anlesen muss, um für das Gerät einen eigenen Windows-Treiber zu schreiben? Oder kann mir jemand so etwas anbieten?
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 348449
Url: https://administrator.de/forum/einfachen-usb-treiber-fuer-ein-geraet-entwickeln-348449.html
Ausgedruckt am: 23.04.2025 um 05:04 Uhr
22 Kommentare
Neuester Kommentar
Nun vermutlich wird es ne einfache Steuerung sein.
Würde vermuten das es sich als Serialport? oder Ähnlich am System Meldet und per VendorID oder Ähnlich von der Software erkannt wird.
Aber es gibt ja schon etliche Projekte wie zb Pic (hat ja Atml -> AVR übernommen) , Arduino wo du auch per USB das Gerät Anbinden kannst und so Aktionen am PC machen kannst.
Hängt aber auch alles von der Kenntnis ab wobei es da schon eine große Community zu gibt.
Es gibt aber auch IO Module wie zb www.codemercs.com/de/io wo du selbst deine Anwendung zu Schreiben kannst und so Flexibler bist.
Für die Anwendung kannst du zb Prfilab nehmen www.abacom-online.de/html/profilab-expert.html
Aber es gibt dazu viele Module, Software und jeder hat andere die er mehr verwendet oder Beruflich nutzt sowie auch ob man alles ins Detail Coden will oder mehr Klicken ziehen Läuft machen will ohne sich mit den Coden zu Beschäftigen.
Würde vermuten das es sich als Serialport? oder Ähnlich am System Meldet und per VendorID oder Ähnlich von der Software erkannt wird.
Aber es gibt ja schon etliche Projekte wie zb Pic (hat ja Atml -> AVR übernommen) , Arduino wo du auch per USB das Gerät Anbinden kannst und so Aktionen am PC machen kannst.
Hängt aber auch alles von der Kenntnis ab wobei es da schon eine große Community zu gibt.
Es gibt aber auch IO Module wie zb www.codemercs.com/de/io wo du selbst deine Anwendung zu Schreiben kannst und so Flexibler bist.
Für die Anwendung kannst du zb Prfilab nehmen www.abacom-online.de/html/profilab-expert.html
Aber es gibt dazu viele Module, Software und jeder hat andere die er mehr verwendet oder Beruflich nutzt sowie auch ob man alles ins Detail Coden will oder mehr Klicken ziehen Läuft machen will ohne sich mit den Coden zu Beschäftigen.
Ich weiß nicht, wie fit Du im Programmieren bist, aber wie wäre es mit folgendem Trick?
Du besorgst Dir testweise so etwas:
https://www.amazon.de/Digitus-USB-seriell-RS232-Adapterkabel/dp/B00007FV ...
Damit sollte Dein USB-Knopf zu einem seriellen werden.
Die Signalverarbeitung an der seriellen Schnittstelle setzt seltenst einen Treiber voraus und Du kannst direkt darauf zugreifen.
Du besorgst Dir testweise so etwas:
https://www.amazon.de/Digitus-USB-seriell-RS232-Adapterkabel/dp/B00007FV ...
Damit sollte Dein USB-Knopf zu einem seriellen werden.
Die Signalverarbeitung an der seriellen Schnittstelle setzt seltenst einen Treiber voraus und Du kannst direkt darauf zugreifen.
Hi,
jedes USB Device hat 2 Seiten. Firmware + Treiberseite. Je nach Chiptyp bedeutet das mehr oder weniger Aufwand.
Einfacher:
greif dir einen Chip der USB kann, z.B. den PIC18F4550(oder einen kleineren wenn man nicht soviele I/Os braucht) von Microchip.
Im SDK hast du dann alles drinnen was du brauchst, sowohl Firmwareseitig als auch die Grundlagen wie du die HW dann ansprichst.
Wenn du dein Device nicht als HID benutzen magst kannst du natürlich auch einen KMDF oder UMDF Treiber fürs Windows zusammenbauen, wenn der Knopf unter Windows laufen soll, such dazu einfach nach WDF Treiberentwicklung.
Da gibts viel zu lernen. =)
Wenn du dein Gerät als HID auslegst brauchst du auch keinen separaten Treiber bauen, da das dann mit dem generischen von MS läuft.
VG
jedes USB Device hat 2 Seiten. Firmware + Treiberseite. Je nach Chiptyp bedeutet das mehr oder weniger Aufwand.
Einfacher:
greif dir einen Chip der USB kann, z.B. den PIC18F4550(oder einen kleineren wenn man nicht soviele I/Os braucht) von Microchip.
Im SDK hast du dann alles drinnen was du brauchst, sowohl Firmwareseitig als auch die Grundlagen wie du die HW dann ansprichst.
Wenn du dein Device nicht als HID benutzen magst kannst du natürlich auch einen KMDF oder UMDF Treiber fürs Windows zusammenbauen, wenn der Knopf unter Windows laufen soll, such dazu einfach nach WDF Treiberentwicklung.
Da gibts viel zu lernen. =)
Wenn du dein Gerät als HID auslegst brauchst du auch keinen separaten Treiber bauen, da das dann mit dem generischen von MS läuft.
VG
Zitat von @IndustrialProduction:
Hat jemand einen Tipp für mich, was ich mir anlesen muss, um für das Gerät einen eigenen Windows-Treiber zu schreiben? Oder kann mir jemand so etwas anbieten?
Hat jemand einen Tipp für mich, was ich mir anlesen muss, um für das Gerät einen eigenen Windows-Treiber zu schreiben? Oder kann mir jemand so etwas anbieten?
Klar, schreib mir eine PM (mit deinen Vorstellungen, Link zur Hardware) und ich mache Dir einen Preis für einen passenden USB-Treiber.
MfG
PS: ca. 1-2 K € je nach Aufwand..
Nun es gibt viele Möglichkeiten so etwas zu machen.
Aber viele Geräte haben halt auch eine Rückmeldung und es hängt ja auch von der Verwendung ab.
Wenn du das Gerät eh für was anderes Verwenden willst, würde es meist Einfacher sein je nach Elektronik diese auszutauschen gegen ein IO Modul wo du selbst die Komponenten Ansteuern kannst und daher auch gleich das Protokoll ect kennst und Flexibler bist und noch mehr machen kannst.
Sowie auch eine eigene Software für die Steuerung machen kannst.
Diesbezüglich würde sich zb auch ein Arduino oder auch Raspberry anbieten wo du auch Lan oder Wlan nutzten könntest.
Aber das hängt mehr vom Einsatz ab.
Projekt für dich selbst oder für ein Besonderes Kind?
Aber viele Geräte haben halt auch eine Rückmeldung und es hängt ja auch von der Verwendung ab.
Wenn du das Gerät eh für was anderes Verwenden willst, würde es meist Einfacher sein je nach Elektronik diese auszutauschen gegen ein IO Modul wo du selbst die Komponenten Ansteuern kannst und daher auch gleich das Protokoll ect kennst und Flexibler bist und noch mehr machen kannst.
Sowie auch eine eigene Software für die Steuerung machen kannst.
Diesbezüglich würde sich zb auch ein Arduino oder auch Raspberry anbieten wo du auch Lan oder Wlan nutzten könntest.
Aber das hängt mehr vom Einsatz ab.
Projekt für dich selbst oder für ein Besonderes Kind?
Nun "einfach" ist Relativ.
Du hast ein Gerät/Produkt wo der Hersteller keine Details zum Protokoll/Daten-Austausch gibt was du anders verwenden willst als es der Hersteller "vorgesehen" hat.
Daher muss zum Gerät ja ein Reverse Engineering gemacht werden wo die Kommunikation geht sowie dann die Software/Treiber Angepasst bzw neu geschrieben werden was halt wie runasservice schon sagte auch was Kostet da dies auch was Zeit in Anspruch nimmt.
Es ist eine Individuelle Anpassung das es geht.
Du hast ein Gerät/Produkt wo der Hersteller keine Details zum Protokoll/Daten-Austausch gibt was du anders verwenden willst als es der Hersteller "vorgesehen" hat.
Daher muss zum Gerät ja ein Reverse Engineering gemacht werden wo die Kommunikation geht sowie dann die Software/Treiber Angepasst bzw neu geschrieben werden was halt wie runasservice schon sagte auch was Kostet da dies auch was Zeit in Anspruch nimmt.
Es ist eine Individuelle Anpassung das es geht.
Zitat von @H41mSh1C0R:
Wie wird die HW denn eingebunden? Nutzen die einen Propritären Treiber oder erscheint es unter HID Devices?
Wenn letzteres könntest du natürlich versuchen es direkt anzusprechen in deiner Anwendung, wenn du die Request richtig zusammenbaust.
Wie wird die HW denn eingebunden? Nutzen die einen Propritären Treiber oder erscheint es unter HID Devices?
Wenn letzteres könntest du natürlich versuchen es direkt anzusprechen in deiner Anwendung, wenn du die Request richtig zusammenbaust.
Das ist der richtige Ansatz. Für HID Devices muss kein (teurer)Treiber geschrieben werden, man braucht nur das entsprechende Modul für die eigende Software. Diese Modul schreibt sich aber nicht von selbst. Auch wenn man sich im Internet, bei den vielen Code-Schnippseln bediehnt, gehen schell 1-2 Arbeitstage ins Land ( je nach Erfahrung und Können, werden es dann auch schnell mal einige Wochen)
MfG
Zitat von @runasservice:
je nach Erfahrung und Können, werden es dann auch schnell mal einige Wochen)
je nach Erfahrung und Können, werden es dann auch schnell mal einige Wochen)
*unterschreib* ^^
Du hättest uns ja mal veraten können um welche USB-Hardware es sich handelt (Link)? Vielleicht gibt ein fertiges/passendes Tool aus der Schublade
hierbei handelt es sich um einen USB Knopf, mit dem ich eine Software steuern kann. Ich kann nach links drehen, nach rechts drehen unddraufdrücken - das war es.
Gab es auch mal von ELV (15,- €) nannte sich USB-BAT (Bedien-Anzeige-Terminal USB powered) Du wirst das aber schon richtig machen...
Viel Erfolg....