Quick update. Trying to see if I can use this to talk to some other Bluetooth hardware. SO far, no luck with XBOX One controller.
However, the Micrsoft Mouse:
Code:
Bluetooth® Low Energy Central - Peripheral Explorer
Found e1:59:47:7a:f2:be 'Surface Arc Mouse' 1812
Connecting ...
Connected
Discovering attributes ...
Attributes discovered
Device name: Surface Arc Mouse
Appearance: 0x0
Service 1800
Characteristic 2a00, properties 0xA, value 0x5375726661636520417263204D6F757365
Descriptor 2803, value 0x020500012A
Descriptor 2a01, value 0xC203
Characteristic 2a01, properties 0x2, value 0xC203
Descriptor 2803, value 0x020700042A
Descriptor 2a04, value 0x060006003C002C01
Characteristic 2a04, properties 0x2, value 0x060006003C002C01
Service 1801
Service 180a
Characteristic 2a29, properties 0x2
Descriptor 2803, value 0x020D00502A
Descriptor 2a50, value 0x
Characteristic 2a50, properties 0x2
Service 180f
Characteristic 2a19, properties 0x12
Descriptor 2902, value 0x0000
Service 1812
Characteristic 2a4e, properties 0x6
Descriptor 2803, value 0x1A16004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A1A004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A1E004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A22004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A26004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A2A004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A2E004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A32004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A36004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x1A3A004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2908, value 0x
Descriptor 2803, value 0x0E3E004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xE
Descriptor 2908, value 0x
Descriptor 2803, value 0x0E41004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xE
Descriptor 2908, value 0x
Descriptor 2803, value 0x0A44004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xA
Descriptor 2908, value 0x
Descriptor 2803, value 0x0A47004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xA
Descriptor 2908, value 0x
Descriptor 2803, value 0x0A4A004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xA
Descriptor 2908, value 0x
Descriptor 2803, value 0x0A4D004D2A
Descriptor 2a4d, value 0x
Characteristic 2a4d, properties 0xA
Descriptor 2908, value 0x
Descriptor 2803, value 0x0250004B2A
Descriptor 2a4b, value 0x
Characteristic 2a4b, properties 0x2
Descriptor 2803, value 0x1A5200332A
Descriptor 2a33, value 0x
Characteristic 2a33, properties 0x1A
Descriptor 2902, value 0x0000
Descriptor 2803, value 0x0255004A2A
Descriptor 2a4a, value 0x
Characteristic 2a4a, properties 0x2
Descriptor 2803, value 0x
Descriptor 2a4c, value 0x
Characteristic 2a4c, properties 0x4
Disconnecting ...
Disconnected
Needed to first setup the mouse into pairing mode and then it found this information.
Now to see in the library how to do the pairing...
EDIT: I hacked up their sketch to show the standard names for many of the standard 16 bit UUIDs
So now looks like:
Code:
Device name: Surface Arc Mouse
Appearance: 0x0
Service 1800 //Generic Access service
Characteristic 2a00, properties 0xA, value 0x5375726661636520417263204D6F757365 //Device Name
Descriptor 2803, value 0x020500012A //Characteristic
Descriptor 2a01, value 0xC203 //Appearance
Characteristic 2a01, properties 0x2, value 0xC203 //Appearance
Descriptor 2803, value 0x020700042A //Characteristic
Descriptor 2a04, value 0x060006003C002C01 //Peripheral Preferred Connection Parameters
Characteristic 2a04, properties 0x2, value 0x060006003C002C01 //Peripheral Preferred Connection Parameters
Service 1801 //Generic Attribute service
Service 180a //Device Information service
Characteristic 2a29, properties 0x2 //Manufacturer Name String
Descriptor 2803, value 0x020D00502A //Characteristic
Descriptor 2a50, value 0x //PnP ID
Characteristic 2a50, properties 0x2 //PnP ID
Service 180f //Battery service
Characteristic 2a19, properties 0x12 //Battery Level
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Service 1812 //Human Interface Device service
Characteristic 2a4e, properties 0x6 //Protocol Mode
Descriptor 2803, value 0x1A16004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A1A004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A1E004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A22004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A26004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A2A004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A2E004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A32004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A36004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x1A3A004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0x1A //Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0E3E004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xE //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0E41004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xE //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0A44004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xA //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0A47004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xA //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0A4A004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xA //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0A4D004D2A //Characteristic
Descriptor 2a4d, value 0x //Report
Characteristic 2a4d, properties 0xA //Report
Descriptor 2908, value 0x //Report Reference
Descriptor 2803, value 0x0250004B2A //Characteristic
Descriptor 2a4b, value 0x //Report Map
Characteristic 2a4b, properties 0x2 //Report Map
Descriptor 2803, value 0x1A5200332A //Characteristic
Descriptor 2a33, value 0x //Boot Mouse Input Report
Characteristic 2a33, properties 0x1A //Boot Mouse Input Report
Descriptor 2902, value 0x0000 //Client Characteristic Configuration
Descriptor 2803, value 0x0255004A2A //Characteristic
Descriptor 2a4a, value 0x //HID Information
Characteristic 2a4a, properties 0x2 //HID Information
Descriptor 2803, value 0x0457004C2A //Characteristic
Descriptor 2a4c, value 0x //HID Control Point
Characteristic 2a4c, properties 0x4 //HID Control Point
Disconnecting ...
Disconnected