

Hacking the Kinect - How to hack USB device drivers - there
http://ladyada.net/learn/diykinect/

======
daeken
This is seriously awesome. While I've spent a lot of time reversing network
protocols (and thus had a good foundation on which to pick up USB hacking
(which I documented at <http://daeken.com/hacking-the-belkin-network-usb-hub>
and, to a lesser extent, at [http://daeken.com/emokit-hacking-the-emotiv-epoc-
brain-compu...](http://daeken.com/emokit-hacking-the-emotiv-epoc-brain-
computer-0) )), most people have never dropped to this level. We need more
articles like this. Good work.

Edit: So, I have an idea, and I think this may be the community to ask about
it. I'm considering going to a company (specifically, one that produces some
network software or a USB device) and asking them to get a copy/unit of their
product, which I will then reverse-engineer in full public view, with the
intention of making it fully transparent, and hopefully getting other people
into this stuff. It could be something that's already open (either
intentionally or by someone reversing it and publishing a driver or other
code), or something that's currently closed. But the whole goal is to end up
with a set of data that people can work through, along the lines of my Belkin
post (but better organized, and published as things go on).

Anyone have any suggestions for who I should approach about this? Or hell, any
startups want me to reverse their stuff for the greater good?

~~~
chime
What about the iPhone/iPad dock connector? There's lots of interesting devices
being hooked up to them.

For USB, what about barcode scanners and keyboards? It would be very
interesting to see how they communicate with the computer and I figure it
would be relatively simple, compared to say an external USB drive.

~~~
daeken
I really want to do this with the support of the manufacturer for a change;
that's what actually makes it difficult to choose a target. I've hacked a lot
of stuff in the past, but it's never been with the manufacturer's support, and
I think that somewhere out there, there's a perfect target. One which is not
only a good learning experience for people, but a good marketing opportunity
for some company.

~~~
chime
What about the Arduino USB connection? I don't know if it sounds interesting
enough to you but I suspect they would be open to it.

~~~
kqr2
I believe the Arduino USB is just a FTDI USB to serial converter.

<http://www.arduino.cc/en/Guide/troubleshooting#toc15>

~~~
follower
It used to be but the new Arduino UNO uses custom software on an Atmel
microcontroller that includes USB support:

<http://wiki.ladyada.net/arduino/unofaq#new_usb_chip>

------
gte910h
I've written USB drivers before (linux, but USB is the same for everything)
and this is exactly how you do it even if you know all the command you're
writing into the device. Spot on.

------
kanwisher
This is the most detailed explanation on howto explore a USB device I've seen.
Need more articles like this!

~~~
ladyada
lvr.com also has incredibly useful information. support jan axelson and buy
one of her books, they're essential for any usb development!

~~~
jonhendry
The website isn't very well laid out.

~~~
jonhendry
Well, it isn't. It's just a big mess barfed up onto html. Some links are to
elsewhere on the same site. Intermixed with those are links to some other
site.

I'm not saying there isn't useful information there, or that her book sucks.
I'm just saying her website is a poorly organized mess that makes it less
useful unless you know exactly what you're looking for. For a USB newbie it'd
just be a maze of links, all alike.

------
iantimothy
I asked about this a few days ago. This appearing now is just awesome. Would
like to say a big thanks for taking the time to share your knowledge.

~~~
ladyada
you're welcome! we write a new tutorial every tuesday - some beginner, some
advanced. if you subscribe to the blog rss feed you can get the notifications

------
lwhi
A straightforward, in-depth guide which is easy to understand. It's absolutely
superb ... but am I alone in being put off by the high cost of a USB analyser?

~~~
ladyada
a hardware usb analyzer is just one of those things that's terribly expensive,
not really even because of the hardware (its not that complicated) but because
of the software which must be _really_ good and this one runs on all OS's. I
will admit I used this project as an excuse to get one but good electrical
engineering tools cost in the thousands of $

~~~
lwhi
Maybe it could be possible to set-up a virtual hackspace-equipment sharing
service, where groups can purchase and pool resources .. allowing remote
groups to loan items like this on an adhoc-basis.

------
joshu
wait - the kinect has a motor?

~~~
dtf
To tilt the camera up and down, making it more adaptable to the range of
televisions it may be housed on or under.

~~~
dotBen
and to get a wider field of vision for the camera as it records and analyzes
your living room and sends it to advertisers and marketers to build an even
more detailed profile on you.

[http://www.engadget.com/2010/11/15/microsoft-exec-caught-
in-...](http://www.engadget.com/2010/11/15/microsoft-exec-caught-in-privacy-
snafu-says-kinect-might-tailor/)

~~~
eli
...is something that isn't actually happening and would violate Microsoft
privacy policy if it did.

