Well, it's a bank holiday weekend here in the UK and that means I have an extra day to do all the things I normally do on a weekend.
I had planned to entertain myself with a USB host shield, but I couldn't get one.
So I picked up one of these instead http://www.vinculum.com/prd_vdip1.html
From what I know, the VDIP1 has one USB port connected, but also has a second port which has no connector. I have the VDIP2 which has both ports available to use.
Searching the web (and this forum), you'd find that the unit is great for usb disk access; but port 2 is also supposed to be capable of talking to other USB devices although there's a caveat stating that you'd have to write your own code to handle things like HID. Because I couldn't find any info out there, I thought I'd post and share some findings.
This isn't a beginners guide to hooking these units up to an Arduino or using the commands to access storage devices. I suppose I *might* be able to answer a few basic questions if people wanted.
I decided to try reading a Thrustmaster Firestorm 2 USB gamepad from my Arduino via the VNC1L. This pad is an HID device, transmitting button states through an interrupt IN endpoint. This is where we hit the first "problems" and lack of information. You'd expect to have to write code to deal with the HID class specific options etc. So I spent hours trying to figure this out... and failed.
Then purely by chance I noticed something strange: something was sitting on the data line from the VDIP2. Took me a few minutes to make the mental leap but then I realised, the VNC1L was receiving the interrupt transactions and sending the 'payload' to the Arduino. That data which was sitting there (and re-appearing) was the 7-byte status of all the gamepad's buttons and analogue sticks.
So now I have a very simple Arduino sketch that can use a Thrustmaster gamepad... and more importantly, proof that these Vinculum boards are good for more than just reading a USB flash drive.
Hope someone finds this informative.