sixaxis

[SJM4306] grabbed a used PlayStation 3 from a game store that was going out of business. He got a pretty good deal on what had obviously been the floor model for a number of years. The one real problem was the controller that came with it. The thing was so filthy that he literally used gloves to disassemble and sanitize it. It worked just fine after that,until he discovered that it wouldn’t charge from the USB port as it’s supposed to. But he managed to replace the charging circuitry with some of his own.

When cleaning the insides of the controller he found there were numerous deposits of sludge which he attributes to spilled soda. This must have damage one of the chips responsible for charging because he was probing an unstable 2V rather than the regulated 5V which should be coming in on the USB lines. His solution was to desolder the USB port in order to separate its 5V pin from the PCB. He then etched a tiny board to host a MAX1555 charging IC. With the new hardware in place the controller is back in action.

[Darrell Taylor] wanted to add a CNC control pendant to his mill but didn’t want to foot the bill which can often run several hundred dollars. These pendants are basically a physical remote control that operates the CNC software that controls the machine. Since he was already using a Linux box running EMC2, it wasn’t too hard to figure out how to operate the mill with a PlayStation controller.

To get the controller talking to his Linux machine he uses a package called QtsixA. The package identifies and loads the control through Bluetooth pairing. From there it can be used to map the buttons and joysticks as keys on the keyboard or as a mouse. In the video after the break [Darrell] demonstrates how he has his shortcuts set up. He’s able to move the machine head, and even start or step through the programmed routine. As he mentions, this is pretty nice if you’ve got dirty hands; just throw the controller in a zipper bag and you’re set to go.

Development has been progessing quite nicely on [Matlo’s] PlayStation 3 controller spoofing project. This is a package that allows you to identify a PC as a PS3 controller. We know what you’re thinking: why would you want to do that? When we originally looked in on the project about a year ago we mentioned that this allows you to use any Linux-friendly peripheral as a PS3 controller. In the clip embedded below you’ll see that nothing beats a good keyboard and gaming mouse when it comes to first-person shooters. [Matlo’s] solution not only allows you to use alternative control hardware, but there’s almost unlimited configurability.

And speaking of configuration, he’s done a ton of work on the GUI. After the initial package installation no terminal typing needs to be done to get the system configured. Once in place, you can set the MAC address of a Bluetooth dongle to spoof the address of your SixAxis controller. From there you can set up the button mapping, calibrate mouse hardware and the like, and even program macros (fantastic). Now go out and pwn everyone at deathmatch now that the PlayStation Network is back up and running.

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.

Recently, a Japanese coder on the DCEmu Forums released Windows drivers for DualShock 3 controllers. While the drivers only support using the controllers over USB and not bluetooth, they do include force feedback and Sixaxis support. Included with the drivers is a configuration tool, and though it appears to be in Japanese there is some explanation of how to use it included in the forum post. We have not tested these personally, but you can try out the drivers for yourself by downloading them from the forum here.

Here are a couple small programs to help you make the most of your Playstation 3 Sixaxis controllers. [netkas] heard that quite a few people were having trouble using the Sixaxis controller in Windows Vista. He solved it for himself and uploaded an exe for you to use. He then did essentially the same thing for OSX. This should make your PC gaming feel at least a little more familiar.