EPox Presenter ============== # hcitool inq Inquiring ... 00:04:61:aa:bb:cc clock offset: 0x1ded class: 0x004000 # hcitool info 00:04:61:aa:bb:cc Requesting information ... BD Address: 00:04:61:aa:bb:cc OUI Company: EPOX Computer Co., Ltd. (00-04-61) Device Name: EPox BT-PM01B aabbcc LMP Version: 1.1 (0x1) LMP Subversion: 0xf78 Manufacturer: Cambridge Silicon Radio (10) Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <hold mode> <sniff mode> <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> # sdptool records --raw 00:04:61:aa:bb:cc Sequence Attribute 0x0000 - ServiceRecordHandle UINT32 0x00010000 Attribute 0x0001 - ServiceClassIDList Sequence UUID16 0x1101 - SerialPort Attribute 0x0004 - ProtocolDescriptorList Sequence Sequence UUID16 0x0100 - L2CAP Sequence UUID16 0x0003 - RFCOMM UINT8 0x01 Attribute 0x0100 String Cable Replacement J-Three Keyboard ================ # hcitool inq Inquiring ... 00:0A:3A:aa:bb:cc clock offset: 0x3039 class: 0x001f00 # hcitool info 00:0A:3A:aa:bb:cc Password: Requesting information ... BD Address: 00:0A:3A:aa:bb:cc OUI Company: J-THREE INTERNATIONAL Holding Co., Ltd. (00-0A-3A) Device Name: KEYBOARD LMP Version: 1.1 (0x1) LMP Subversion: 0x2c2 Manufacturer: Cambridge Silicon Radio (10) Features: 0xbc 0x06 0x07 0x00 0x00 0x00 0x00 0x00 <encryption> <slot offset> <timing accuracy> <role switch> <sniff mode> <RSSI> <channel quality> <CVSD> <paging scheme> <power control> # sdptool records --raw 00:0A:3A:aa:bb:cc Sequence Attribute 0x0000 - ServiceRecordHandle UINT32 0x00010000 Attribute 0x0001 - ServiceClassIDList Sequence UUID16 0x1101 - SerialPort Attribute 0x0004 - ProtocolDescriptorList Sequence Sequence UUID16 0x0100 - L2CAP Sequence UUID16 0x0003 - RFCOMM UINT8 0x01 Attribute 0x0006 - LanguageBaseAttributeIDList Sequence UINT16 0x656e UINT16 0x006a UINT16 0x0100 Attribute 0x0100 String SPP slave Celluon Laserkey Keyboard ========================= # hcitool inq Inquiring ... 00:0B:24:aa:bb:cc clock offset: 0x3ab6 class: 0x400210 # hcitool info 00:0B:24:aa:bb:cc Requesting information ... BD Address: 00:0B:24:aa:bb:cc OUI Company: AirLogic (00-0B-24) Device Name: CL800BT LMP Version: 1.1 (0x1) LMP Subversion: 0x291 Manufacturer: Cambridge Silicon Radio (10) Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00 <3-slot packets> <5-slot packets> <encryption> <slot offset> <timing accuracy> <role switch> <hold mode> <sniff mode> <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> <power control> <transparent SCO> # sdptool records --raw 00:0B:24:aa:bb:cc Sequence Attribute 0x0000 - ServiceRecordHandle UINT32 0x00010000 Attribute 0x0001 - ServiceClassIDList Sequence UUID16 0x1101 - SerialPort Attribute 0x0004 - ProtocolDescriptorList Sequence Sequence UUID16 0x0100 - L2CAP Sequence UUID16 0x0003 - RFCOMM UINT8 0x01 Attribute 0x0100 String Serial Port Packet format is as follows (all fields little-endian): 0 uint16 magic # 0x5a5a 2 uint32 unknown # ??? 6 uint8 action # 0 = keyup, 1 = keydown, 2 = repeat # 3, 4, 5, 6 = ??? (Mouse mode) 7 uint8 unknown[9] # ??? 16 uint8 action2 # ??? same as action 17 uint16 x # Horizontal coordinate 19 uint16 y # Vertical coordinate 21 uint16 time # Some sort of timestamp 23 uint8 unknown[5] # ??? 28 uint8 key[] # single byte keycode or 0xff byte # follwed by special keycode byte. Each packet followed by a checksum byte.