Sony Sisxaxis device, pairing without pairing, and bluetooth HID connection timeouts
site_archiver@lists.apple.com Delivered-To: bluetooth-dev@lists.apple.com --- Jenna Fox Way prettier than that Colin Munro guy _______________________________________________ Do not post admin requests to the list. They will be ignored. Bluetooth-dev mailing list (Bluetooth-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/bluetooth-dev/site_archiver%40lists.a... Hi, I am writing a set of user space tools to make use of Sony's Sixaxis controller's from Tiger. This device has a few quirks. It doesn't accept incoming connections, it doesn't send valid hid reports until issued a hid feature request asking it to change to its "operational" mode, and it doesn't support the normal bluetooth pairing procedure. Pairing is done like this: The Sixaxis is connected to host via USB cord. Host detects Sixaxis device and sends a get_report feature type request over USB with a report id of 0xF2, sixaxis returns data we do not know the meaning of but is never the less in operational mode now and can be used as a USB HID device after pushing the PS button on the controller. Host then issues a set_report feature type request, with a report id of 0xF5, and a buffer containing the following bytes: 0x01, 0x00, and then six bytes representing the BD_ADDR of the host computer/playstation. This is all implemented and working, the trouble is when trying to turn on the device. The sixaxis will connect to the mac host and seems to go through all the procedures for connecting and initializing. Then one minute and two seconds (on my macbook) after the sixaxis first started the connection, the mac will tell it to disconnect, it obeys, the bluetooth chip in the mac change to idle, and the lights on the Sixaxis go dark, apparently completely shut off. Note that the initial connection takes about two seconds, so it appears to disconnect after precisely one minute of inactivity. This timeout is problematic because we want the device to stay connected so applications and games will be able to connect with it and receive reports. How would this be avoided? If a user space application were to open a hid interface to the sixaxis might that be enough to keep it from being disconnected by inactivity? Would that tool also need to actively request reports every 50 seconds or so to keep it from timing out or merely have a reference to the device in its memory? Also, is it at all an issue that the mac seems to not consider the sixaxis device paired, as its never gone through a traditional passkey based pairing procedure. Would it be worthwhile to try to mess with blued's configuration plist's to convince it that the device is paired, and then kill it to get the daemon to restart and reread those files? I would rather avoid this if its not likely to bring any benefits as requiring a root password and messing with things like that will make me and surely my users squeamish. This email sent to site_archiver@lists.apple.com
participants (1)
-
Blueberry