Features/PlayStationBDRemote

From FedoraProject

< Features(Redirected from PlayStation/BDRemote)
Jump to: navigation, search

Contents

PlayStation 3 Blu-ray Disc Remote

Questions and Comments

What's the best way to implement a driver?

Someone else started to tinker with this some time ago. I can't find more than the first version of a python script . This won't run on Fedora PPC because of an endianness bug in pybluez. And hidd needs to be stopped to get it working.

Test Script

Here's a python script I wrote for testing purposes:

It's based on WillWoods' wiimote script .

Device Information

Output of Command Line Tools

Inquiring ...
00:19:C1:2D:91:F2	clock offset: 0x30b3	class: 0x00250c

Requesting information ...
BD Address:  00:19:C1:2D:91:F2
Device Name: BD Remote Control
LMP Version: 2.0 (0x3) LMP Subversion: 0x229
Manufacturer: Broadcom Corporation (15)
Features: 0xbc 0x02 0x04 0x38 0x08 0x00 0x00 0x00
<encryption> <slot offset> <timing accuracy> <role switch>
<sniff mode> <RSSI> <power control> <enhanced iscan>
<interlaced iscan> <interlaced pscan> <AFH cap. slave>

Sequence
Attribute 0x0000 - ServiceRecordHandle
UINT32 0x00010000
Attribute 0x0001 - ServiceClassIDList
Sequence
UUID16 0x1124 - HumanInterfaceDeviceService (HID)
Attribute 0x0004 - ProtocolDescriptorList
Sequence
Sequence
UUID16 0x0100 - L2CAP
UINT16 0x0011
Sequence
UUID16 0x0011 - HIDP
Attribute 0x0005 - BrowseGroupList
Sequence
UUID16 0x1002 - PublicBrowseGroup
Attribute 0x0006 - LanguageBaseAttributeIDList
Sequence
UINT16 0x656e
UINT16 0x006a
UINT16 0x0100
Attribute 0x0009 - BluetoothProfileDescriptorList
Sequence
Sequence
UUID16 0x1124 - HumanInterfaceDeviceService (HID)
UINT16 0x0100
Attribute 0x000d - AdditionalProtocolDescriptorLists
Sequence
Sequence
Sequence
UUID16 0x0100 - L2CAP
UINT16 0x0013
Sequence
UUID16 0x0011 - HIDP
Attribute 0x0100
String BD Remote Control
Attribute 0x0101
String BD Remote Control
Attribute 0x0102
String Sony Computer Entertainment Inc
Attribute 0x0200
UINT16 0x0100
Attribute 0x0201
UINT16 0x0111
Attribute 0x0202
UINT8 0x0c
Attribute 0x0203
UINT8 0x21
Attribute 0x0204
Bool True
Attribute 0x0205
Bool True
Attribute 0x0206
Sequence
Sequence
UINT8 0x22
Data 05 01 09 05 a1 01 85 01 15 00 26 ff 00 75 08 95
0b 06 00 ff 09 01 81 00 85 01 95 0b 09 01 b1 00 85 02 95 0b 09 01 b1 00 85 03 95 0b 09
01 b1 00 85 04 95 0b 09 01 b1 00 85 05 95 0b 09 01 b1 00 85 06 95 0b 09 01 b1 00 c0 00
Attribute 0x0207
Sequence
Sequence
UINT16 0x0409
UINT16 0x0100
Attribute 0x0208
Bool False
Attribute 0x0209
Bool True
Attribute 0x020a
Bool True
Attribute 0x020b
UINT16 0x0100
Attribute 0x020c
UINT16 0x1f40
Attribute 0x020d
Bool False
Attribute 0x020e
Bool False
Sequence
Attribute 0x0000 - ServiceRecordHandle
UINT32 0x00010001
Attribute 0x0001 - ServiceClassIDList
Sequence
UUID16 0x1200 - PnPInformation
Attribute 0x0004 - ProtocolDescriptorList
Sequence
Sequence
UUID16 0x0100 - L2CAP
UINT16 0x0001
Sequence
UUID16 0x0001 - SDP
Attribute 0x0006 - LanguageBaseAttributeIDList
Sequence
UINT16 0x656e
UINT16 0x006a
UINT16 0x0100
Attribute 0x0009 - BluetoothProfileDescriptorList
Sequence
Sequence
UUID16 0x1200 - PnPInformation
UINT16 0x0100
Attribute 0x0101
String BD Remote Control
Attribute 0x0200
UINT16 0x0100
Attribute 0x0201
UINT16 0x054c
Attribute 0x0202
UINT16 0x0306
Attribute 0x0203
UINT16 0x0100
Attribute 0x0204
Bool True
Attribute 0x0205
UINT16 0x0002

HID Descriptor

See attribute 0x0206 of the first sequence of sdptool output. Decoded with Device Class Definition spec available at www.usb.org .

05 01		Usage Page (Generic Desktop)
09 05		Usage ID (Game Pad)
a1 01		Collection (Application)
85 01			Report ID (1)
15 00			Logical Minimum (0)
26 ff 00		Logical Maximum (255)
75 08			Report Size (8)
95 0b			Report Count (11)
06 00 ff		Usage Page (Vendor Defined Page 1)
09 01			Usage (Vendor Usage 1)
81 00			Input (Data,Array,Absolute)
85 01			Report ID (1)
95 0b			Report Count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
85 02			Report ID (2)
95 0b			Report Count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
85 03			Report ID (3)
95 0b			Report Count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
85 04			Report ID (4)
95 0b			Report Count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
85 05			Report ID (5)
95 0b			Report count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
85 06			Report ID (6)
95 0b			Report count (11)
09 01			Usage (Vendor Usage 1)
b1 00			Feature (Data,Array,Absolute)
c0		End Collection
00

Key Mapping

Byte 0

See Human Interface Device Profile spec available at www.bluetooth.com .

Byte 1

Bytes 2-4 - Mapping for buttons to be pressed with others

Byte 2

Bit 0SELECT
Bit 1L3
Bit 2R3
Bit 3START
Bit 4UP
Bit 5RIGHT
Bit 6DOWN
Bit 7LEFT

Byte 3

Bit 0L2
Bit 1R2
Bit 2L1
Bit 3R1
Bit 4OPTIONS
Bit 5BACK
Bit 6CROSS
Bit 7VIEW

Byte 4

Bit 0PSBUTTON
Bit 1None
Bit 2None
Bit 3ENTER
Bit 4None
Bit 5None
Bit 6None
Bit 7None

Byte 5 - Mapping for single button presses

NUM10x00
NUM20x01
NUM30x02
NUM40x03
NUM50x04
NUM60x05
NUM70x06
NUM80x07
NUM90x08
NUM00x09
ENTER0x0B
RETURN0x0E
CLEAR0x0F
EJECT0x16
TOPMENU0x1A
TIME0x28
PREV0x30
NEXT0x31
PLAY0x32
FASTRWD0x33
FASTFWD0x34
STOP0x38
PAUSE0x39
POPUPMENU0x40
PSBUTTON0x43
SELECT0x50
L30x51
R30x52
START0x53
UP0x54
RIGHT0x55
DOWN0x56
LEFT0x57
L20x58
R20x59
L10x5A
R10x5B
OPTIONS0x5C
BACK0x5D
CROSS0x5E
VIEW0x5F
SLOWRWD0x60
SLOWFWD0x61
SUBTITLE0x63
AUDIO0x64
ANGLE0x65
DISPLAY0x70
BLUE0x80
RED0x81
GREEN0x82
YELLOW0x83

Byte 6-10

Byte 11 - Button pressed or released

RELEASED0x00
PRESSED0x01

Byte 12