industrialproduction
Goto Top

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!

Content-Key: 348449

Url: https://administrator.de/contentid/348449

Printed on: April 16, 2024 at 08:04 o'clock

Member: kaiand1
kaiand1 Sep 07, 2017 at 08:28:57 (UTC)
Goto Top
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.
Member: beidermachtvongreyscull
beidermachtvongreyscull Sep 07, 2017 at 08:31:45 (UTC)
Goto Top
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.
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 08:52:31 (UTC)
Goto Top
Danke für die schnelle Antwort!

Es meldet sich unter "Softwaregeräte" zwei mal an - ein Mal "In" und ein Mal "Out" (Out ist vermutlich, weil die Software ein Licht am Knopf ein- und ausschalten kann, um einen Status zu signalisieren, das wäre aber für mich verzichtbar).

Die genannten Projekte schaue ich mir gerne an. Danke!
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 updated at 08:57:15 (UTC)
Goto Top
beidermachtvongreyscull, danke für die Idee!

Leider haben heute kaum noch PCs serielle Schnittstellen, das könnte das schwierig machen face-smile Im Grunde müsste ja mit dem "USB" wegen dem "S" face-smile auch seriell kommunizieren können, oder?
Member: H41mSh1C0R
H41mSh1C0R Sep 07, 2017 updated at 09:12:50 (UTC)
Goto Top
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
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 09:16:02 (UTC)
Goto Top
Zitat von @H41mSh1C0R:
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.

Danke für den Hinweis.

Liest sich für mich allerdings so, als würde ich auch das Gerät selbst entwickeln - das ist nicht der Fall. Darauf, wie sich das Gerät anmeldet, habe ich also leider keinen Einfluss face-smile

Ich neige auch dazu, jemanden mit dieser Entwicklung zu beauftragen. Dafür muss ich das Thema aber zumindest so weit verstehen, dass ich weiß, wonach ich fragen muss face-smile face-smile
Member: eisbein
eisbein Sep 07, 2017 at 09:17:25 (UTC)
Goto Top
Hallo!

Leider haben heute kaum noch PCs serielle Schnittstellen

Kann ich so nicht zustimmen. Die meisten Mainboards haben noch serielle Schnittstellen, sie sind eben nur nicht mit einem Stecker ausgestattet. Schau dir dein Mainboard einmal genau an face-wink

Gruß
eisbein
Member: runasservice
runasservice Sep 07, 2017 updated at 09:39:02 (UTC)
Goto Top
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?


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..
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 09:44:27 (UTC)
Goto Top
Zitat von @runasservice:
PS: ca. 1-2 K € je nach Aufwand..

Reicht mir als Aufwandschätzung schon einmal aus! Ich recherchiere mal die verschiedenen Möglichkeiten und komme dann per PM auf Dich zu.

Danke!
Member: kaiand1
kaiand1 Sep 07, 2017 at 09:44:42 (UTC)
Goto Top
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?
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 09:47:14 (UTC)
Goto Top
Zitat von @kaiand1:
Projekt für dich selbst oder für ein Besonderes Kind?

Für mich selbst.

Gebe aber zu, dass mich eine Hardware-Entwicklung eher abschreckt face-smile Ich kann mir nicht vorstellen, dass man um ein augenscheinlich so einfaches Protokoll keinen Treiber bauen kann. Ehe ich da die Hardware umstricke, gebe ich lieber 100 Euro mehr für die Entwicklung aus face-smile
Member: kaiand1
kaiand1 Sep 07, 2017 at 09:54:25 (UTC)
Goto Top
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.
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 10:30:56 (UTC)
Goto Top
Zitat von @kaiand1:
Nun "einfach" ist Relativ.

Punkt für Dich face-smile

Zitat von @kaiand1:
Du hast ein Gerät/Produkt wo der Hersteller keine Details zum Protokoll/Daten-Austausch gibt

Die kann ich ja im Tool sehen und sogar als Hardware-Laie sehr gut interpretieren. Was heißt links / rechts, wie weit wurde gedreht, wurde gedrückt, kann ich alles sehen. Zumindest das Protokoll ist sehr simpel.

Aber mir ist schon klar: Alles, was man nicht selbst machen muss, ist ja mit zwei Klicks erledigt.
Member: H41mSh1C0R
H41mSh1C0R Sep 07, 2017 at 10:38:18 (UTC)
Goto Top
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.

VG
Member: runasservice
runasservice Sep 07, 2017 updated at 10:56:09 (UTC)
Goto Top
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.

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) face-wink

MfG
Member: H41mSh1C0R
H41mSh1C0R Sep 07, 2017 at 11:09:51 (UTC)
Goto Top
Zitat von @runasservice:
je nach Erfahrung und Können, werden es dann auch schnell mal einige Wochen) face-wink

*unterschreib* ^^
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 11:20:39 (UTC)
Goto Top
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.

Es erscheint unter "Softwaregeräte", und zwar zwei Mal, ein Mal für In, ein Mal für Out.
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 14:40:12 (UTC)
Goto Top
So, habe jetzt einen Entwickler beauftragt, der kompetente Fragen gestellt hat face-smile Mal schauen, was dabei raus kommt face-smile

Danke Euch für Euren Rat!
Member: brammer
brammer Sep 07, 2017 at 15:42:52 (UTC)
Goto Top
Hallo,


der kompetente Fragen gestellt hat 

Was soviel heißt wie hier wurden keine kompetenten Fragen gestellt....

Brammer
Member: IndustrialProduction
IndustrialProduction Sep 07, 2017 at 16:59:31 (UTC)
Goto Top
Aargh - so war das nicht gemeint face-smile Ich gebe aber zu, dass die Formulierung mißverständlich war. Sorry dafür.

Ich habe den Job auf einer Plattform ausgeschrieben, und es war jemand dabei, der Fragen gestellt hat, die darauf schließen ließen, dass er sich mit dem Thema auskennt.

Ich werde von meinen Erfahrungen berichten face-smile
Member: brammer
brammer Sep 07, 2017 at 17:13:16 (UTC)
Goto Top
Hallo,

Aargh - so war das nicht gemeint 

Okay...
Hab ich auch nicht so erwartet....
Member: runasservice
runasservice Sep 07, 2017 updated at 17:32:05 (UTC)
Goto Top
Zitat von @IndustrialProduction:

Ich werde von meinen Erfahrungen berichten face-smile

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 face-wink

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....