BLE & Windows 10


#1

Hi,
I’m trying to connect from Windows 10 to the Duo with BLE. When I use one of the example programs, (Periphal or Simple Chat), I can see the duo in the devices list in Bluetooth settings but when I press “pair” it results in a failure.

As far as I know Windows apps need a paired device so I can develop with it.

Do I have to implement the pairing on the duo? Has anybody already connected a duo to windows 10 via BLE?

UPDATE:
I tried with several Windows 10 devices and checked the EVENTLOG where I found a BTHUSB id 29 message indicating a timeout.

UPDATE 2:
I was able to read the debug messages via serial:

LE Connection_complete (status=0) type 0, C0:33:5E:29:77:22
create_connection_for_addr C0:33:5E:29:77:22, type 0
New connection: handle 64, C0:33:5E:29:77:22
BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 1
Connection complete, handle 0x0040

Device connected!
sm: connected
New sm_conn, role slave
SM_EVENT_IDENTITY_RESOLVING_STARTED
LE Device Lookup: device 0/0
LE Device Lookup: not found
SM_EVENT_IDENTITY_RESOLVING_FAILED
sm_setup_tk: master io cap: 4, slave io cap: 3 -> method 0
SMP: generation method 0
sm: connection 0x0040 locked setup context as responder
L2CAP_EVENT_CHANNEL_CAN_SEND_NOW local_cid 0x4
L2CAP_EVENT_CHANNEL_CAN_SEND_NOW local_cid 0x6
sm_run: state 41
L2CAP_EVENT_CHANNEL_CAN_SEND_NOW local_cid 0x4
sm_run: state 42
sm_run: state 42
sm_run: state 42
sm_run: state 42
sm_run: state 42
sm_run: state 42
sm_run: state 42
sm_run: state 3
sm_run: state 3
SM timeout
sm: connection 0x40 released setup context
Disconnected.
Write value handler: 0
GATT Client: HCI_EVENT_DISCONNECTION_COMPLETE
Connection closed: handle 0x40, C0:33:5E:29:77:22
BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0
hci_run: gap_le: adv todo: 8

Thanks for help,

Raphael


#2

Hi @rhsraphael,

Sorry for that the Duo has not yet been implemented the paring function for now. We will definitely export those relative APIs in the future.


#3

Thanks, I’m really looking forward to this as I don’t own a Android/Ios device!


#4

Hi @guohui,

Has the relative APIs that implement the pairing function deployed?


#5

I think I banged on my head all week on this trying FindAll and FindAllAsync only to get an empty list in Windows. I assume that it is the case like you guys are mentioning where it has to be paired in Windows bluetooth devices first. Any news on this capability?


#6

This topic is already two years old. The newer Windows 10 Builds support Bluetooth LE without pairing the device.
I recommend you to try the sample code https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BluetoothLE/cs.

While pairing was still required in 2016, I used the WICED SDK on the Duo for developing the firmware, as pairing was supported there.


#7

I’m mostly trying to get this to work inside Unity for a VR project using SteamVR which is mostly only available in Standalone builds and not UWP (to my knowledge). This means I need a .NET 3.5 or .NET 4.x method to discover and connect. I’ve looked at feet32 which had a preview build using 3.5 for Unity, but alas it uses FindAll which to my knowledge requires devices to be paired before it can show up in the list. There is no pairing mechanism provided. From googling that is supposed to be done via a watcher but the samples I’ve found were all for UWP as well. I ended up going back to classic BT for now on Unity which pairs and opens up the classic BT as com ports.

Inside Unity, I just have to use SerialPort to interface with those devices. But to date, I’ve yet to get it to work in a standalone environment. Only gotten it to work on iOS and Android.