Adafruit Technologies has announced the winner of the Open Source Kinect contest. [Hector], who we mentioned yesterday has won, providing both RGB and depth access to the device. Some of you were asking at that time, why the contest was not over yet. Well, Adafruit had to verify. The image you see above are of another user[qdot], verifying the drivers on his machine.
What is interesting is how Adafruit has chosen to close this contest. Not only are they giving [Hector] his prize money, they are also donating an additional $2,000 to the EFF who fight for our right to legally hack and reverse engineer our own equipment.
[Hector] is being generous as well, using his prize money to help pay for gadgets to hack with some teams he is involved with, mainly the iPhone Dev Team and the Wii hacker team “Twiizers”
damn straight.
That didn’t take long :D
I would be very interested to learn how someone achieves such a feat. Where does one even begin to pick up these skills? I’m so jealous!
These are the kind of contests we need. Also, this was done quickly. Simply awesome.
@mfunk: There’s a few different tactic. You can insert a snooper between the xbox and the kinect and see how data is passed (knowing it uses the well defined usb protocol) or you can connect it to your computer and try sending it whatever data and seeing how it responds (which is apparently how the guy who won did it).
Not something I could do easily either, so I’m also jealous.
mfunk: By learning, experimenting, and hopefully learning some more.
Congrats to Twiizers as well.
Very impressive…what was that, a week? Two? And well done to adafruit, for offering the challenge, and for supporting EFF.
Wow, the whole contest was full of WIN in every possible aspect.
Now to implement this in hax.. :-) so many ideas, $150 to save.
@Gdogg: according to the README, he got the logs from Adafruit which he used to work out the initialization and data format.
http://git.marcansoft.com/?p=libfreenect.git;a=blob;f=README.txt;h=80598b4464074975f0c157e2cc20426056693402;hb=HEAD
@Mike: Do you know where I should start with step one?
I guess microsoft left that wide open
I’m still learning to program. Can anyone explain to me what happens when you write to negative indexes on arrays, like he does with his Bayer conversion?
Ben:
maybe it wraps around circular?
so if you have
char string[5];
string[4] == string[-1];
not sure; code it up, add a watch variable and run thru with a debugger.
@Ben:
I don’t see where he’s doing that. But to answer your question:
In C, arrays aren’t really arrays. The variable itself is a pointer, and the [] operator is basically just shorthand for *(array + index). Accessing a negative index will access the space in memory that many elements before the array. Generally not what you’re looking to do…
@mrfunk
I’m no where even close to this level of reverse engineering. But I’ve made some steps towards it. What worked for me was I found a device that provided source code, the Leapfrog Didj, plus it was woot.com cheap too. The source code is kind of like having the answers in the back of the book, so I could get a feel for embedded Linux, and the things that were going on. The Didj uses a special program to allow access to the storage on it, so I decided I wanted to make my own program. From there I had to learn a few things, USB stuff, SCSI commands, and with some help from the source code, I was able to, figure out what was going on, how it was doing it, why it was doing it, and then, I was able to manipulate it to my own needs. I had no prior experience before this, and had the same feelings you do towards it. This exercise helped me get my feet wet, get some ground to stand on, and then I could learn new things from there. Which is how it has seemed to go. Start out with something you do know, then push forward to new grounds, get an understanding for that, and repeat. I had actually started by doing some web stuff on it, because thats what most of my knowledge was, then just stepped thru the process until I ended up writing my first C program which allowed access to the usb drive. I think it helped that starting out, I had no specific goal, other than to learn about the device and process. So I could just go where it took me, with out getting overwhelmed I wasn’t turning it into some specific thing I wanted. You’ll find something that interests you, and go with it, you’ll find something to figure out, and when you do, you will be greatly rewarded for it, in the satisfaction you get. I know its not very specific, but reverse engineering seems more of a mind set, than raw technical knowledge. They both work together, but its completely different than building things, where you are in control of what does what. It also helps to find a group of people interested in the same device, for pointers and tips, or help on things when you get stuck, my program was held up for days cause I didn’t understand what enum did in C, it finally got brought up in conversation, and it was that eureka moment.
Dear Microsoft,
HAW HAW!
Love,
The open source community
@Grayda, that seems a rather immature response, don’t you think? Yes, it’s impressive that the open-source community has reverse-engineered the protocol. It’s a testament to their creativity and skill as technical experts, and should be rightly celebrated as such. To deride Microsoft, on the other hand, disrespects many of the same engineers that made this possible in the first place. Do you honestly think they care any less about their work? Do you honestly think that they’re any less proud to have developed this product and brought it to market? Why on earth you’d want to shoot arrows at the very folks who are providing your hardware is beyond me.
@PhilKll: Thanks! Cool website by the way.
@ PE: Many of the same engineers who did their damnest to make this impossible, who willingly work with a company that threatens lawsuits and jail for those who “”tamper”” with the product.
@mrfunk, thanks for the compliment.
@cde, Then I’m guessing you don’t worry too much when the rest of the world lumps black-hats and white-hats together, or uses the term “hacker” in a derogatory context?
[Microsoft]: Don’t reverse engineer our products.
[Hector]: You’re resistance only makes me harder.
lol
Well, that was fast. Looking forward to get myself a kinect (I do not have an xbox) (There are only preorders avaliable in russia, and they are somewhat pricy – about 250-300 bucks.
@cde: ethics alone won’t put food on the table. yeah it’s nice to sit on your high horse, but in the real world people need to earn money.
Looking forward to the Wii kit for Kinect ;)
And the quest continues:
http://www.mattcutts.com/blog/open-kinect-contest/