usb "pass trough device" met stellaris launchpad

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik zou graag proberen om een deel van de werking van de xim3 na te maken met behulp van een stellaris launchpad (en waarschijnlijk een extra usb host chip). Met een deel bedoel ik dan dat net als bij de xim3 de launchpad tussen de xbox controller en de 360 zit en de beveiligings check doorlaat, maar de andere signalen kan aanpassen. Zodat je dus vrij eenvoudig een extra knop op je stellaris kunt aansluiten die je dan (bijvoorbeeld) in plaats van de "A" op je controller kunt gebruiken.

Doel hiervan is niet om cheaten te bevorderen, maar om een goedkoop open source alternatief voor de dure varianten van mijn idee uit te brengen dat mensen met een beperking in staat stelt op maat gemaakte apparatuur te gebruiken voor de besturing van de xbox.

Het probleem met de xbox is namelijk dat de xbox een paar keer om een verificatie vraagt aan de controller wanneer je de controller aansluit, deze verificatie wordt gegenereerd door een aparte (verder onbekende) chip in de controller. Je kunt dus niet zomaar een usb apparaat aansluiten, het werkt alleen als je de beveiliging doorlaat en de rest eventueel aanpast.

Iemand anders heeft ook zoiets gedaan, maar dan met een laptop ertussen in combinatie met een tweetal teensy bordjes (om een usb device te simuleren). Daarnaast heeft hij ook een log van de communicatie gemaakt.

Mijn vraag is nu of dit (voor mij) te doen is. Ik heb mij namelijk de afgelopen paar dagen maar eens wat meer in usb verdiept maar ik begrijp nog niet veel van zijn log. Mijn tweede vraag is dan ook of iemand bereid is dit wat toe te lichten.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Niemand?

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Gokje: Het is heel erg lastig. Sowieso hangt het er nogal vanaf hoe makkelijk USB libraries in gebruik zijn. Ik heb weleens wat van USB protocol bekeken, maar dat is verre van triviaal. Het zou me misschien lukken iets van een muis te maken, maar zowel een USB host en USB slave implementeren en de juiste communicatie doorlaten is niet bepaald triviaal.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik ben (en ga ervan uit dat dit nodig is) ook bereid er best wat tijd in te steken. Een HID device met meegeleverde drivers maken heb ik al een paar keer gedaan, en naar mijn weten wordt een groot deel van de communicatie gedaan door de hardware.

Voordeel is ook dat de beveiliging alleen bij het aansluiten moet worden doorgelaten, daarna wordt er niet meer gecontroleerd. Je zou dus ook tot een bepaald control package door kunnen laten (als ik hier de juiste termen tenminste gebruik), en de rest aanpassen.

Acties:
  • 0 Henk 'm!

  • Infant
  • Registratie: Januari 2008
  • Laatst online: 07-10 21:10

Infant

It's a floating Dino!

Als het verkeer na het aanmelden onversleueld heen en weer gaat, zou dit moeten werken.

Je zou moeten uitvinden wat elke van de transfers zijn. Bij een XBox controller kan ik me voostellen dat de data over de knopjes en hendeltjes niet al te veel ruimte in beslag nemen, en over de bus gaan als je aan een knop zit. Net als bij een muis/of toetsenbord.

Tot en met halverwege dat excel file, zijn allemaal vrij standaard berichten, de laatste grote "Get String Descriptor" leest:

code:
1
2
3
4
5
6
7
8
9
10
11
12
00000864                                  58 00 62 00 6F 00             X.b.o.
00000880   78 00 20 00 53 00 65 00  63 00 75 00 72 00 69 00   x. .S.e.c.u.r.i.
00000896   74 00 79 00 20 00 4D 00  65 00 74 00 68 00 6F 00   t.y. .M.e.t.h.o.
00000912   64 00 20 00 33 00 2C 00  20 00 56 00 65 00 72 00   d. .3.,. .V.e.r.
00000928   73 00 69 00 6F 00 6E 00  20 00 31 00 2E 00 30 00   s.i.o.n. .1...0.
00000944   30 00 2C 00 20 00 A9 00  20 00 32 00 30 00 30 00   0.,. .©. .2.0.0.
00000960   35 00 20 00 4D 00 69 00  63 00 72 00 6F 00 73 00   5. .M.i.c.r.o.s.
00000976   6F 00 66 00 74 00 20 00  43 00 6F 00 72 00 70 00   o.f.t. .C.o.r.p.
00000992   6F 00 72 00 61 00 74 00  69 00 6F 00 6E 00 2E 00   o.r.a.t.i.o.n...
00001008   20 00 41 00 6C 00 6C 00  20 00 72 00 69 00 67 00    .A.l.l. .r.i.g.
00001024   68 00 74 00 73 00 20 00  72 00 65 00 73 00 65 00   h.t.s. .r.e.s.e.
00001040   72 00 76 00 65 00 64 00                            r.v.e.d.


En dat vertaalt naar de PC die vraagt: "Hallo! Hoe heet jij?"

Kennelijk heeft die gast het gedaan, dus het is te doen.

Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 22:06
Er zijn gewoon chips te krijgen met 2 USB peripherals.
Bijv de STM32F4xx of de NXP LPC18xx/LPC43xx, nog wel meer merken denk ik.
Bij STM kan je als particulier samples krijgen.

Stellaris is opgeheven, geen strategische keuze dus.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik heb alvast een stm32f4 besteld.
Als ik kijk naar deze pagina:
http://www.hacknowledge.org/drupal/?q=usbsniffer

Dan lijkt het erop dat je eigenlijk alleen de initialisatie moet kopiëren en doorsturen (dus alle get XXX commandos en de control transfers), de rest kan je dan aanpassen. Dit lijkt mij eigenlijk nog wel te doen.

Is dit laatste stukje uit de log misschien al data van de inputs van de contoller?

924 0:03.432.228 10.166 us 3 B 3 1 IN txn 01 03 0E
925 0:03.432.228 2.833 us 3 B 3 1 IN packet 69 83 E0
926 0:03.432.232 4.833 us 6 B 3 1 DATA0 packet C3 01 03 0E 5E CB
927 0:03.432.237 1.500 us 1 B 3 1 ACK packet D2
Pagina: 1