Recently Purchased a "TOOGOO(R) T45 USB Host Shield" from Amazon. I attempted to use the "USB Host Shield Library" from Github, but It seems like it might not support this particular shield.

I would really like to learn how to use this shield to interact with my joystick but the only tutorial information I have found to help me with this is from Circuits@home and they seem to be using a specific shield in their development of the code library.

Can anyone point me to a tutorial or Github library that can help me learn to work with this setup?

I'm using an Arduino Uno and a Thrustmaster USB joystick.

Thanks in advance.


I fixed the initial problem of accessing the HIDDESC report. I now have the report, but the formatting of the report is particularly hard to understand. Using the Circuits@home articles I'm a little lost on how to read the report data I was given. It does not seem to be formatted in the same way as the example. Can anyone help with interpreting my device report?

0000: 05 01 09 04 A1 01 09 01 A1 00 09 30 09 31 09 32
0010: 09 BB 15 80 25 7F 46 FF 00 66 00 00 66 00 00 75
0020: 08 95 04 81 02 C0 09 39 15 01 25 08 35 00 46 3B
0030: 01 65 14 75 04 95 01 81 02 05 09 19 01 29 04 15
0040: 00 25 01 75 01 95 04 81 02 95 08 81 01 05 08 09
0050: 43 15 00 26 FF 00 35 00 46 FF 00 75 08 95 04 91
0060: 82 55 00 65 00 55 00 65 00 55 00 C0
Usage Page Gen Desktop Ctrls(01)
Usage Game Pad
Collection Application
Usage Pointer
Collection Physical
Usage X
Usage Y
Usage Z
Usage Undef
Logical Min(80)
Logical Max(7F)
Physical Max(FF00)
Report Size(08)
Report Count(04)
End Collection
Usage Hat Switch
Logical Min(01)
Logical Max(08)
Physical Min(00)
Physical Max(3B01)
Report Size(04)
Report Count(01)
Usage Page Button(09)
Usage Min(01)
Usage Max(04)
Logical Min(00)
Logical Max(01)
Report Size(01)
Report Count(04)
Report Count(08)
Usage Page LEDs(08)
Usage Slow Blk On Time
Logical Min(00)
Logical Max(FF00)
Physical Min(00)
Physical Max(FF00)
Report Size(08)
Report Count(04)
Unit Exp(00)
Unit Exp(00)
Unit Exp(00)
End Collection Game Pad Pointer X Y Z Undef(00)(00)(7F)(00)
Hat Switch(00)
(00) Btn0002
(00) Btn0003
(00) Btn0004
Slow Blk On Time

  • I think you will need to get the library for your shield. Apr 12 '18 at 10:17
  • 1
    Identify the chip on your shield, and identify the chip on the shields that are supported. Typically these fly-by-night boards are just clones of better supported ones, but you could have anything including an inert paperweight. Worth considering that a host shield on an Arduino is generally a bad idea to begin with; if you want to host a USB peripheral, use a processor that can do so natively - it will be both cheaper and less roundabout. Also realize that only trivial well documented USB peripherals make sense for MCUs; for more complex things you probably want an embedded Linux system. Apr 12 '18 at 14:12
  • @code Gorilla, where would I get the library for my shield? Apr 13 '18 at 3:08
  • @ChrisStratton the chip is a max 3421EE 1637. It seems to work fine, and be designed well enough, but thanks for the input. Apr 13 '18 at 3:11
  • @B.Guisgand - The library, if it exists, will be somewhere on the internet, I know that isn't helpful but what else can I say. I think you might have misunderstood Chris's point. Put bluntly you well down S creek with no paddle and he was handing you an outboard motor. Apr 13 '18 at 9:37

The photos on Amazon show a clone of the circuit@home board so the same library should work. You may be running into the problem mentioned in the following page.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.