Sixpair-emu

[deprecated – see newer post]

The code to get a teensy++ pair a bluetooth device with a PS3 is available there.

Disclaimer:

  • use it at your own risk
  • the vendor id and the product id are the property of Sony

To get it working, the following changes have to be done:

In sixaxis_pair_emu.c, edit the following lines:

uint8_t EEMEM DeviceBdaddr[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};
uint16_t EEMEM VendorId = 0x03EB;
uint16_t EEMEM ProductId = 0x2042;

If your bdaddr is 11:22:33:44:55:66 then replace {0x01, 0x02, 0x03, 0x04, 0x05, 0x06 } with {0x11, 0x22, 0x33, 0x44, 0x55, 0x66 }.
The vendor id of a sixaxis is 0x054c, and the product id is 0x0268.

For now, you have to compile the firmware yourself.

Enhancements that I planned to do:

  • make the PS3 bdaddr be learnt by the device (but not persistent) done
  • write the variables that have to be modified in the eeprom done
  • make a specific usb request to modify them done
  • make a definitive firmware
  • make a linux/windows gui app

2 Replies to “Sixpair-emu”

  1. I don't understand. What exactly does this do? Are you using the teensy to act as a sixaxis controller? Or are you interfacing a bluetooth adapter with the teensy and then pairing with the PS3?

  2. To get a bluetooth connection with a sixaxis, the PS3 has first to register the device address (bdaddr) of the sixaxis. This operation is done the first time you plug the sixaxis with the usb cable to the PS3 (the 4 leds are blinking, and when you press the PS3 button, a single led goes on).

    To emulate a sixaxis, we have to use an address already registered by the PS3.

    There are two ways to do that:
    1/ replace the address of the dongle with the address of an already used sixaxis
    or
    2/ make the PS3 register the address of the dongle

    The problem with the 1/ is that all dongles do not support this operation (this is not an usual operation, it requires a specific hardware). Moreover, it does not enables to use the emulator and the sixaxis at the same time, because they have the same address!.

    2/ can be done with a teensy++ that will interface with the PS3 as if it is an unknown sixaxis (so that the new address is registered).

    The great thing with the 2/ is that any dongle can be used, so that you don't have to care about getting a specific dongle, which can be painful because manufacturers may change the hardware. In fact, 2/ enables any bluetooth device to become a sixaxis (even a cellphone!).

Leave a Reply

Your email address will not be published. Required fields are marked *