Hallo liebe Forenmitglieder, könnt Ihr mir sagen, ob folgende Idee technisch realisierbar ist: Ist es möglich alle gängigen Peripheriegeräte wie USB-Tastatur oder USB-Maus, die an sich kabelgebunden sind, per Bluetooth mit dem Computer kommunizieren zu lassen? D.h. Man schließt das Gerät nicht direkt an den PC, sondern an einen Bluetoothsender, der gleichzeitig die Stromversorgung für dieses Gerät liefert. Der Sender schickt dann ganz stur die Signale an den Empfänger, der am USB-Port des PCs angeschlossen ist. Der PC soll denken, die Tastatur (o.ä.) sei direkt per Kabel angeschlossen. Und die Tastatur soll auch denken, sie sei direkt am PC angeschlossen. Laptops haben zwar meistens bereits einen Bluetoothempfänger eingebaut, aber ich denke, dass dann auch spezielle Software erforderlich ist, die sozusagen einen virtuellen USB-Anschluss kreiert, an dem die Tastatur sozusagen angeschlossen ist. Wie aufwändig ist es, sowas selbst zu basteln? Es gibt ja bereits im hauseigenen Wiki einen einfachen Schaltplan für ein Bluetoothmodul. Ist es wirklich so einfach wie ich es mir vorstelle? Sobald die Tastatur mit Strom versorgt wird, und man auf die Tasten haut, lassen sich dann einfach die Signale abzwacken? Mit freundlichen Grüßen WL
Meines Erachtens ist das prinzipiell denkbar, aber nicht einfach. So gut wie alle USB-Implementierungen sind ja in Hardware und sowas wie ein Endpoint wird vom USB-Controller gehandhabt. Sich da irgendwo dazwischenzusetzen und das per Bluetooth rauszuschicken und dann auf der anderen Seite wieder zusammenzusetzen ... hm. Denkbar, aber das wird bestimmt ein frustrierendes und aufwändiges Projekt. Du musst das auf einer relativ hohen Protokollebene tun, einfach das physikalische Layer vom USB über Bluetooth routen wird nicht gehen, ich denke schon vom Timing her nicht und auch wegen ein paar anderen Dingen die das so macht. Und das wird bestimmt aufwendig. Ich würde mir lieber eine andere Lösung überlegen für das Problem was du hast. Anders sieht es vielleicht aus, wenn du dich auf eine bestimmte Geräteklasse beschränkst, zum Beispiel Tastaturen. Sowas würde ich ganz normal als USB Client betreiben, die gedrückten Tasten über Bluetooth weiterleiten und mich dann auf der anderen Seite als Tastatur ausgeben. Immer noch ein gewisser Aufwand, aber scheint mir einen machbaren Umfang für ein Bastelprojekt zu haben.
:
Bearbeitet durch User
Wieso stelle ich es mir so einfach vor? Bzw. wo ist der Haken an der Sache? Jetzt wo Du von "Zusammensetzen" sprachst, fällt mir natürlich ein Punkt auf: Die Signale enthalten ja nicht instantan die volle Information, sondern ich muss warten, bis das Zeug gänzlich ankommt. Aber der einzige Unterschied zwischen Bluetoothübertragung und Kabel ist ja die Störanfälligkeit, oder? Ich meine, das Zusammensetzen ist ja nicht mein Problem. Das macht der USBTreiber des Geräts, den ich vorher kabelgebunden auf dem PC installiert hab.
Ja, also die Geräteklasse, auf die ich mich beschränken will sind reine Eingabegeräte: Tastatur, Maus, Grafiktablett, etc.
Naja, du kannst ja mal ganz vorne anfangen in der Kommunikation. Das USB hat zwei differentielle Datenleitungen, D+ und D-. Je nach dem, ob D+ oder D- vom Device High gezogen wird, ist das Gerät im Low- oder Full-Speed-Modus. Für High-Speed wird ein ganz merkwürdiger Initialisierungs-Pattern gesendet, und irgendwelche Serienwiderstände in die Leitungen geschaltet ... das physikalische Layer ist einfach nicht so aufgebaut, dass du einfach Nullen und Eisen rauslesen und über das Bluetooth schicken kannst, und auf der anderen Seite wieder auf die Leitungen schreiben. Das ginge bei SPI, aber nicht bei USB. Das USB macht einige Dinge die sich darauf verlassen dass da tatsächlich ein Kabel ist, was die Datenleitungen darstellt, mit höchstens einer bestimmten Länge etc. Ich denke schon wegen des strikten Timings von USB könntest du nicht schnell genug reagieren wenn du das so umsetzen wolltest. Es kann sein dass du irgendein Subset von Features wählen kannst, sodass das Ganze irgendwie machbar ist ("Low-Speed Geräte mit nur Control / Interrupt Endpoints"). Das kann ich nicht abschätzen. Einfach wird es jedenfalls nicht. Es gibt drahtlose USB-Hubs, vielleicht kaufst du einfach sowas? Da hat schon jemand ordentlich gelitten um das umzusetzen ;) In jedem Fall erscheint es mir aussichtslos (einfach aus Gefühl, ich kann dir nicht genau sagen woran es als erstes scheitern würde) zu versuchen die Datenübertragung stumpf weiterzuleiten. Du müsstest schon einen einigermaßen intelligenten Empfänger haben, der das angeschlossene Gerät sozusagen emuliert, also einigermaßen versteht was da abgeht in der Kommunikation (welche Endpoints gibt es, welche Deskriptoren haben die, etc.). Dann könnte der Empfänger die eigenlichen Daten die über die Endpoints gesendet werden an den Host weiterleiten, und andersrum. Bei diesem Konzept hättest du quasi Device <-> Host-Controller <------[Bluetooth]------> Device-Emulator <-> Host-Controller.
:
Bearbeitet durch User
Wenn Du Dich mit den verwendeten Protokollen gut auskennst, besteht tatsächlich eine Chance -- sowohl USB als auch BT kennen eine Geräteklasse namens HID. Also müsste der BT-Sender ein USB-Host sein, der USB-HID-Geräte ansprechen kann, die interessanten HID-Daten extrahieren und in passende BT-HID-Informationen übersetzen, die wiederum zum BT-Gegenstück gesendet werden. Zu klären ist allerdings, ob ein BT-Gerät auch mehrere HID-Geräte gleichzeitig nachbilden kann (das ist nötig, wenn gleichzeitig Maus und Tastatur betrieben werden sollen). Geht das nicht, ist für jedes einzelne USB-Gerät ein entsprechender BT-"Sende-Adapter" erforderlich. Bei Mäusen vermag ich den Sinn des ganzen nicht so recht nachzuvollziehen; BT-Mäuse (die native BT-Geräte sind) kann man ab ca. 12 EUR bekommen, sie sind also nur unwesentlich teurer als Funkmäuse mit proprietärem Protokoll und Prömpel für USB. Sobald aber etwas anderes als simple Standardgeräte wie Mäuse und Tastaturen ins Spiel kommt --wie z.B. ein Graphiktablett--, dürfte die Angelegenheit deutlich komplizierter aussehen. Gibt es eine BT-Geräteklasse für Graphiktabletts? Gibt es überhaupt von irgendeinem Hersteller BT-Graphiktabletts? Wenn nein, bedeutet das, die erforderliche Treiberunterstützung auf PC-Seite nachzubilden. Denn was nicht möglich ist, ist ein transparentes "Tunneln" der USB-Daten durch BT, um eine Art "virtuelle USB-Schnittstelle" zu erhalten; BT ist dafür schlicht und einfach zu langsam und hat zu große Verzögerungszeiten.
Ganz kurz: Das ist so saumäßig kompliziert, dass es nicht ansatzweise lohnt
Stichwort "Wireless USB" Drahtloses USB gibts, aber nicht über Bluetooth.
Wireless USB ist praktisch tot. Dazu mussten aber auch die Geräte direkt wireless sein, oder es war ein entsprechender Hub notwendig.
Grüßen, ist schon bissl her aber ich suche aktuell das gleiche und wollte mal fragen ob bei dir was rausgekommen ist?
Man könnte z.B. einen MAX3421E als USB Host IC nehmen und diesen mit einem ESP32 verbinden. Der ESP32 kann dann ein Bluetooth Keyboard nachbilden, z.B. https://gist.github.com/manuelbl/66f059effc8a7be148adb1f104666467
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.