The Kinect is sure to swarm the homes of Xbox 360 gamers this holiday season. Even though some of us are amazed at the hands-free gaming capabilities it offers, others feel it to be frustratingly limited. Adafruit Industries is one of them.
They recently held a competition with a $3000 prize (they call it a bounty) to see who could hack the Kinect and provide open source drivers to the public, with the goal of getting RGB out with distance values being used. Héctor Martín Cantero was the declared winner, and his take on the Kinect driver supports depth and RGB images and displays them on an OpenGL window. Check out his demo video below.
Pretty cool, huh?
And now you can hack the Xbox 360 Kinect, too! Thanks to a super complex hacking manual by Ladyada (who works for Adafruit). Seriously, if you considered yourself a hacker because you use Cheat Engine or like to screw with batteries, then you're going to have a difficult time with this one. But you're more than welcome to try it out and get the Kinect doing your bidding, rather than Microsoft's.
Here just a little bit of what Adafruit has to say about reverse engineering the Kinect and other USB devices:
USB is a very complex protocol, much more complicated than Serial or Parallel, SPI and even I2C. 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.
USB is also very structured. This is good for reverse engineering because it means that at least the format of packets is agreed upon and you won't have to deal with check-sums. The bad news is it means you have to have software assistance to decode the complex packet structure. The good news is that every computer now made has a USB host core, that does a lot of the tough work for you, and there are many software libraries to assist.
Today we're going to be reverse engineering the Xbox Kinect Motor, one part of the Kinect device.
Start hacking now!