So after reading your fill of reports about open-source drivers and user-created applications for Microsoft's Kinect motion-sensing controller, now seems like a good time to test your creative juices. Where do yo start, especially if you're a novice? Good thing you asked.
Ladyada from Adafruit Industries--the group behind the original contest to see who could create open-source drivers first--has published a guide on how the company helped steer the winner to create the Kinect driver while also offering instructions on how to reverse-engineer other USB devices in the process.
"USB is a very complex protocol, much more complicated than Serial or Parallel, SPI and even I2C," Ladyada explained. "USB uses only two wires but they are not used as 'receive' and 'transmit' like serial. Rather, data is bidirectional and differential--that is the data sent depends on the difference in voltage between the two data lines D+ and D- If you want to do more USB hacking, you'll need to read Jan Axelson's USB Complete books , they're easy to follow and discuss USB in both depth and breadth."
Unfortunately, the instructions only focus on the Kinect's motor. However it does point out that Kinect comprises of four USB devices: the motor, the camera, the microphone and a hub, the latter of which is used to combine the three components into a single cable. Curious minds should be able to apply the technique to the two other USB-based components.
Enthusiasts looking to take on Kinect should head here. The drawback is that you'll need a Mac or Linux system in addition to a PC-based rig to perform the reverse-engineering.