The write up for this project is split up into 4 parts – part 1: hacking the controller, part 2: decoding the protocol, part 3: the protocol definition, and part 4: hacks using the protocol. That way you can just jump to whatever interests you, or follow the whole thing first start to finish. There’s also a bonus post on achieving a similar goal by emulating the controller joysticks using an Arduino Uno.
The Protocol Specification
Here’s the cold, hard, RFC-style documentation of the reversed protocol for anyone who is looking to re-implement the protocol in their own projects or improve their interoperability:
If you spot any errors or mistakes, please let me know and I’ll update the spec.