All about PS3 SixAxis controller USB communications

[Austyn] is currently working on reverse engineering a PlayStation 3 SixAxis controller’s USB communications. You may be thinking that this has already been done but [Austyn] was unable to find useful source code so he’s started his own project called libopenaxis.

The process he used to sniff out USB communications makes for an interesting read. He utilized GlovePIE to get the USB request block for the controller. With that in hand he grabbed the Python script used in a DIY Kinect hacking tutorial to start dumping controller data. With each keypress the script reads out the full data packet, which is used to figure out how the data structures are organized.

The project has come as far as knowing all of the data types, but right now the purpose for the majority of those variables is unknown. Hopefully the blanks will be filled in over time. Two things are for sure; if you’re interested in writing Python code that can communicate with PS3 controllers this is a great source of info, and the Kinect hacking that was so fun to watch over the last few months is still bearing fruit.