Moved: link.
» Outdated content «
Warning: I’m not responsible for any wrong hardware you can buy, or anything you can do with this.
Required hardware:
- a usb to serial TTL converter – 1Mbps recommended – chip examples: FT232R, CP2102
- a usb development board with a chip among the following: at90usb82, at90usb162, at90usb646, at90usb647, at90usb1286, at90usb1287, atmega16u4, atmega32u4
Examples:
USB to serial TTL converter:
- CP2102 converters on ebay (as low as 4$)
- FT232R converters on ebay (as low as 15$)
- CP2102 converter at sparkfun (22$ excl. shipping costs)
- FT232R converter at sparkfun (15$ excl. shipping costs)
- Some devices like the arduino have an on-board usb to serial chip
- A second usb development board can also be programmed as a usb to serial converter.
USB development board:
- Teensy board (atmega32u4, 16$ excl. shipping costs)
- Boards used for the psgroove hack (check the on-board chip).
The hardware I used for my tests is the following:
- Arduino duemilanove (on-board FT232RL) + Bumble-b (discontinued, at90usb162)
- Arduino duemilanove (on-board FT232RL) + Teensy++ (at90usb1286)
- CP2102 board (from ebay) + Teensy 2.0 (atmega32u4)
I suggest the CP2102 converter from ebay (very low price, but unknown quality and probably low delivery) and the Teensy board (low price, good quality, and standard delivery). I didn’t tested this hardware myself, and I will test it as soon as I receive it.
So, you have a usb to serial TTL converter, and a compatible usb dev board?
I/ Load the firmware on the usb dev board
The following archive contains all firmwares: link. I only tested the at90usb162, at90usb1286 and atmega32u4 firmwares.
Load the proper hex file to your board with the Teensy loader, the Flip utility from Atmel, or the dfu-programmer command-line tool.
dfu-programmer example:
sudo dfu-programmer at90usb162 erase ; sudo dfu-programmer at90usb162 flash at90usb162.hex
II/ Connect the two devices
The only thing you have to do is to solder 3 wires between these two devices:
GND <–> GND
RX <–> TX
TX <–> RX
The example below shows how to connect a CP2102 converter (left) to a Teensy board (right):
Warning: Rx and Tx may be inverted on the usb to serial TTL board.
The CP2102 converter in the above example has inverted Rx and Tx.
If you use the arduino on-board USB to serial converter, Rx and Tx are inverted.
III/ Connect it & use Sixemugui-serial
Connect the USB to serial converter to your PC, and connect the usb dev board to your ps3. Turn the PS3 on (the ps3 button is not working yet). The ps3 should detect a joystick (turn a sixaxis on, it should be detected as controller #2).
If it’s not already done, install the sixemu package (v0.23 or higher).
Start Sixemugui-serial:
The USB to serial TTL converter should be detected as “ttyUSB0”.
Start emuclient & play!
Notes:
- Don’t set the frequency to a value higher than the mouse frequency (ask google about your mouse frequency, or let the value to 100Hz).
- It’s not recommended to run at 500Hz or 1000Hz, unless you have a realtime linux kernel (running at 500Hz with a 500Hz mouse may generate some small glitches).
- For details about the installation & the configuration of the sixemu software, read the sixaxis emulator tutorial.
- Multiple usb connections should work (not tested).
- The calibration GUI lags for frequencies higher than 100Hz.
Limitations:
- All buttons are “digital” (i.e. value is 0/1, not in 0-255).
- No PS3 button yet.
Enjoy!!
OUTSTANDING!! I am building a custom board for this right now.
Updated: the CP2102 board also has inverted Rx and Tx.
Any chance of getting the source code to the firmware as I would like to try and port it to a PIC
http://code.google.com/p/diyps3controller/
http://code.google.com/p/diyps3controller/source/browse/#svn%2Ftrunk%2Frs232_joystick
Thanks
Can you use the software as it is with PC built-in RS-232 port, instead of the converter?
If not, can this feature be added?
Thanks.
Unfortunately, the rs232 port on a PC does not operate at the same voltage levels than the TTL levels. In the end you still will need a converter. I think it's better to directly buy a usb to serial TTL converter.
Oooh, very tempted to try this, but I think I need to use jumper wires instead of soldering this stuff. Does this look like a good kit?:
http://cgi.ebay.com/Serial-Converter-USB-2-0-TTL-UART-6PIN-Module-CP2102-/120726707813
http://www.dealextreme.com/p/breadboard-jumper-wires-for-electronic-diy-70-cable-pack-80208?r=99788910
http://www.dealextreme.com/p/30cm-breadboard-wires-for-electronic-diy-40-cable-pack-80207?r=99788910
http://www.dealextreme.com/p/designer-s-teensy-usb-development-board-for-ps3-47609?r=99788910
The Teensy seems to be a fake one but apparently it has the right chip (at90usb162)
I'll definitely make a video of me putting it all together and using it if it works 😀
I won't recommend buying counterfeit products:
http://www.pjrc.com/teensy/counterfeit.html
The other parts are fine.
Thanks, I'll order it soon and report back (and post a video) when it arrives 🙂
i dont get it, where does this pulg into the ps3? neither my pc or ps3 has a serial port.
Look at the schematic: one side plugs into the pc (usb to serial converter = type A usb), and the other side to the ps3 (teensy = mini-A usb).