Go Down

Topic: USB Injection möglich (Read 1 time) previous topic - next topic

bennyborn

Hallo,

bin aktuell an einem kleinen Projekt bei dem ich meinen Arduino nutzen möchte um Daten als ein anderes Gerät zu senden.

Konkret geht es um einen XBOX 360 Controller.
Dieser hängt per USB an der Konsole und ich dachte ich könnte meinen Arduino jetzt einfach noch zusätzlich an die Datenleitungen (D+,D-) dazuhängen um zwischendurch immer mal wieder Buttons zu simulieren. Wie die entsprechenden USB Pakete dafür aussehen weis ich inzwischen schon da ich diese mit einem USB-Analyzer am Rechner mitgelesen habe.

Wäre sowas möglich technisch überhaupt möglich?
Wie gesagt es geht nur um Daten die ich zwischendurch immer mal wieder injecten möchte, der Arduino soll in keinster Weise als USB Host o.Ä. fungieren.

Besten Dank im Vorraus!

uwefed

Ich habe nie davon gehört, daß man ein Gerät "in serie" zu einem anderen an den USB-Kabel anschließen kann. USB-Verbindungen sind immer Punkt zu Punkt-Verbindungen.

Kann die X-Box (wie ein PC) nicht mehrere gleiche Geräte (Tastatur/Maus) am USB haben und diese gleichzeitig funktionieren?

Ansonsten sehe ich nur die Möglichkeit, daß der Arduino sich gegenüben dem Controller als Host ausgibt und gegenüber der X-Box als Controller und die Daten vom Controler an die Xbox durchreicht bzw wenns sein soll Daten dazugibt. Ob Arduino dafür schnell genug ist weiß ich nicht. Du brauchst auf alle Fälle einen USB-Host und eine Modification der Firmware des USB-Serial Adabter, damit der Arduino als Controller erkannt wird.   

Grüße Uwe

udoklein

Sowas ist möglich, aber unverhältnismäßig schwierig. Auch wenn die Antwort hier nicht gerne gehört wird: wer fragen muß wie sowas geht hat keine Chance das hinzubekommen. Es ist schon schwierig genug sich dazwischen zu hängen. Zuverlässiges Injecten kannst Du vergessen außer Du bist ein USB Gott.
Check out my experiments http://blog.blinkenlight.net

bennyborn

Erstmal besten Dank für die Antworten!

@uwefeld
Dein Vorschlag würde leider nicht funktionieren da die XBOX zum einen keine anderen Geräte als "Controller" akzeptiert, zum andern authentifizieren sich die Controller hardwareseitig an der Box per Challange-Response-Verfahren.

@Udo Klein
Gut zu wissen das es zumindest theorethisch die Möglichkeit gibt. Auch wenn ich jetzt von der Methode ablassen und stattdessen direkt auf die Testpoints des Controllers zugreifen werde, hast Du zufällig irgendwo ein Projekt indem jemand so eine USB Injection erfolgreich umgesetzt hat? Ich bin mir sicher ich und andere könnten da noch was lernen ;)

udoklein

Nein, open source kenne ich sowas nicht. Und closed source auch nicht. Mir würden Leute einfallen die sowas als Auftragsarbeit hinbekommen würden. Aber das Preisschild willst Du gar nicht erst wissen.
Check out my experiments http://blog.blinkenlight.net

DreiMalNull

#5
Mar 04, 2013, 07:35 pm Last Edit: Mar 04, 2013, 07:38 pm by DreiMalNull Reason: 1
Möglich ist es... neue Firmware (Vendor und Product-ID ändern) und die USB Daten einfach vom USB-Host-Port (Shield) an den USB Ausgang des Leonardo weiterleiten.

Musst Du mal unter Arduino und Gamepad in Google suchen:

http://blog.qwertymodo.com/2012/11/arduino-hid-gamepad-part-2.html
http://www.imaginaryindustries.com/blog/?p=80
http://forum.freetronics.com/viewtopic.php?t=734
http://hunt.net.nz/users/darran/

Wie man die Firmware-Brennt und verändert steht hier:
http://arduino.cc/forum/index.php/topic,143392.0.html


Ich nehme mal an Du möchtest auf der XBox etwas Cheaten :)


Brauchst Du nur noch das XBox 360 Protocol:
http://blog.tkjelectronics.dk/2012/12/xbox-360-receiver-added-to-the-usb-host-library/
http://www.circuitsathome.com/mcu/xbox360-controller-support-added-to-usb-host-shield-2-0-library

bennyborn

@DreiMalNull

Danke für die Info aber ich war eigentlich auf der Suche nach einer Lösung die man später auch selbst bauen kann da ich meinen Arduino (Duemilanove) natürlich nicht dafür dauerhaft opfern will. Natürlich könnte man sich den Leonardo und das Shield nachbauen aber das wäre preislich doch etwas overcharged ;)

Und nein, mir geht es nicht um cheaten, habe nicht mal nen LIVE Account :P

Soll einfach nur mal wieder ein kleines Projekt für mich sein. Konkret war mein Gedanke es zu ermöglichen an der XBOX mit Maus und Tastatur zocken zu können. Leider sind meine bestellten Shiftregister noch nicht da aber ich denke am Wochenende kann ich das in Angriff nehmen. Die Testpoints des Controllers habe ich mir schon rausgesucht und durchgemessen, ist alles ziemlich straight forward :)

Go Up