Surface 3 Pen (BLE HID) not sending events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey,

The Surface 3 pen (part of the 2nd generation of Surface pens[1]) uses
Bluetooth LE for its top button, which one can assign to a function,
usually a note taking application on Windows.

After pairing, bluez throws away all the characteristics, UUIDs and
other properties it gathered[2].

Subsequent attempts at pressing the pen button just throws a wobbly[3].

Any ideas? This apparently used to work, and there's some very hacky
solutions for those devices:
https://github.com/frebib/surface-scripts/blob/master/pend

Cheers

[1]: https://en.wikipedia.org/wiki/Surface_Pen#Second_generation
[2]:

# pair C5:2A:C6:5C:CC:BD
Attempting to pair with C5:2A:C6:5C:CC:BD
[CHG] Device C5:2A:C6:5C:CC:BD Connected: yes
[CHG] Device C5:2A:C6:5C:CC:BD UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device C5:2A:C6:5C:CC:BD UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device C5:2A:C6:5C:CC:BD UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device C5:2A:C6:5C:CC:BD UUIDs: 00001812-0000-1000-8000-00805f9b34fb
[CHG] Device C5:2A:C6:5C:CC:BD ServicesResolved: yes
[CHG] Device C5:2A:C6:5C:CC:BD Paired: yes
[NEW] Primary Service
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service0008
	00001801-0000-1000-8000-00805f9b34fb
	Generic Attribute Profile
[NEW] Characteristic
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service0008/char0009
	00002a05-0000-1000-8000-00805f9b34fb
	Service Changed
[NEW] Descriptor
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service0008/char0009/desc000b
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
[NEW] Primary Service
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service000c
	0000180a-0000-1000-8000-00805f9b34fb
	Device Information
[NEW] Characteristic
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service000c/char000d
	00002a29-0000-1000-8000-00805f9b34fb
	Manufacturer Name String
[NEW] Characteristic
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service000c/char000f
	00002a27-0000-1000-8000-00805f9b34fb
	Hardware Revision String
[NEW] Characteristic
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service000c/char0011
	00002a26-0000-1000-8000-00805f9b34fb
	Firmware Revision String
[NEW] Characteristic
	/org/bluez/hci0/dev_C5_2A_C6_5C_CC_BD/service000c/char0013
	00002a50-0000-1000-8000-00805f9b34fb
	PnP ID
Pairing successful
[CHG] Device C5:2A:C6:5C:CC:BD Modalias: usb:v045Ep07C5d0001
[CHG] Device C5:2A:C6:5C:CC:BD ServicesResolved: no
[CHG] Device C5:2A:C6:5C:CC:BD Connected: no

[3]:

HCI sniffer - Bluetooth packet analyzer ver 5.47
device: hci0 snap_len: 1500 filter: 0xffffffffffffffff
> HCI Event: LE Meta Event (0x3e) plen 12
    LE Advertising Report
      ADV_DIRECT_IND - Connectable directed advertising (1)
      bdaddr C5:2A:C6:5C:CC:BD (Random)
      RSSI: -67
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x00 (scanning disabled)
    filter duplicates 0x00 (disabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 2
    status 0x00
< HCI Command: LE Create Connection (0x08|0x000d) plen 25
    bdaddr C5:2A:C6:5C:CC:BD type 1
    interval 96 window 96 initiator_filter 0
    own_bdaddr_type 0 min_interval 6 max_interval 6
    latency 0 supervision_to 50 min_ce 0 max_ce 0
> HCI Event: Command Status (0x0f) plen 4
    LE Create Connection (0x08|0x000d) status 0x00 ncmd 2
> HCI Event: LE Meta Event (0x3e) plen 19
    LE Connection Complete
      status 0x00 handle 3585, role master
      bdaddr C5:2A:C6:5C:CC:BD (Random)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
  0000: 01 0e                                             ..
> HCI Event: Command Status (0x0f) plen 4
    LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
< HCI Command: LE Remove Device From White List (0x08|0x0012) plen 7
  0000: 01 bd cc 5c c6 2a c5                              ...\.*.
> HCI Event: Command Complete (0x0e) plen 4
    LE Remove Device From White List (0x08|0x0012) ncmd 1
    status 0x00
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7
    type 0x00 (passive)
    interval 60.000ms window 30.000ms
    own address: 0x00 (Public) policy: white list only
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Parameters (0x08|0x000b) ncmd 1
    status 0x00
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x01 (scanning enabled)
    filter duplicates 0x01 (enabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 2
    status 0x00
> HCI Event: LE Meta Event (0x3e) plen 12
    LE Read Remote Used Features Complete
      status 0x00 handle 3585
      Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
< HCI Command: LE Start Encryption (0x08|0x0019) plen 28
  0000: 01 0e 89 54 5e 69 a3 8e  13 1a 0d 3e 31 df c1
e7  ...T^i.....>1...
  0010: a2 a4 ab a1 f9 b2 54 35  dc 20 36 2b              ......T5. 6+
> HCI Event: Command Status (0x0f) plen 4
    LE Start Encryption (0x08|0x0019) status 0x00 ncmd 1
> HCI Event: Encrypt Change (0x08) plen 4
    status 0x00 handle 3585 encrypt 0x01
< ACL data: handle 3585 flags 0x00 dlen 7
    ATT: MTU req (0x02)
      client rx mtu 517
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 7
    ATT: MTU resp (0x03)
      server rx mtu 23
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Group req (0x10)
      start 0x0001, end 0xffff
      type-uuid 0x2800
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 24
    ATT: Read By Group resp (0x11)
      attr handle 0x0001, end group handle 0x0007
      value 0x00 0x18
      attr handle 0x0008, end group handle 0x000b
      value 0x01 0x18
      attr handle 0x000c, end group handle 0x0014
      value 0x0a 0x18
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Group req (0x10)
      start 0x0015, end 0xffff
      type-uuid 0x2800
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 12
    ATT: Read By Group resp (0x11)
      attr handle 0x0015, end group handle 0xffff
      value 0x12 0x18
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Group req (0x10)
      start 0x0001, end 0xffff
      type-uuid 0x2801
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 9
    ATT: Error (0x01)
      Error: Attribute not found (10)
      Read By Group req (0x10) on handle 0x0001
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Type req (0x08)
      start 0x0001, end 0xffff
      type-uuid 0x2802
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 9
    ATT: Error (0x01)
      Error: Attribute not found (10)
      Read By Type req (0x08) on handle 0x0001
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Type req (0x08)
      start 0x0001, end 0xffff
      type-uuid 0x2803
> ACL data: handle 3585 flags 0x02 dlen 15
    ATT: Handle notify (0x1b)
      handle 0x0019
      value 0x08 0x00 0x6f 0x00 0x00 0x00 0x00 0x00 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 15
    ATT: Handle notify (0x1b)
      handle 0x0019
      value 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
> ACL data: handle 3585 flags 0x02 dlen 27
    ATT: Read By Type resp (0x09)
      length: 7
        handle 0x0002, value 0x0a 0x03 0x00 0x00 0x2a 
        handle 0x0004, value 0x02 0x05 0x00 0x01 0x2a 
        handle 0x0006, value 0x02 0x07 0x00 0x04 0x2a 
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Type req (0x08)
      start 0x0007, end 0xffff
      type-uuid 0x2803
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 3585 packets 1
> ACL data: handle 3585 flags 0x02 dlen 27
    ATT: Read By Type resp (0x09)
      length: 7
        handle 0x0009, value 0x20 0x0a 0x00 0x05 0x2a 
        handle 0x000d, value 0x02 0x0e 0x00 0x29 0x2a 
        handle 0x000f, value 0x02 0x10 0x00 0x27 0x2a 
< ACL data: handle 3585 flags 0x00 dlen 11
    ATT: Read By Type req (0x08)
      start 0x0010, end 0xffff
      type-uuid 0x2803
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 3585 reason 0x08
    Reason: Connection Timeout
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x00 (scanning disabled)
    filter duplicates 0x00 (disabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 2
    status 0x00
< HCI Command: LE Add Device To White List (0x08|0x0011) plen 7
  0000: 01 bd cc 5c c6 2a c5                              ...\.*.
> HCI Event: Command Complete (0x0e) plen 4
    LE Add Device To White List (0x08|0x0011) ncmd 1
    status 0x00
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7
    type 0x00 (passive)
    interval 60.000ms window 30.000ms
    own address: 0x00 (Public) policy: white list only
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Parameters (0x08|0x000b) ncmd 1
    status 0x00
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x01 (scanning enabled)
    filter duplicates 0x01 (enabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 2
    status 0x00
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux