[Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend

Axel Jäger axeljaeger at googlemail.com
Mon Jan 26 23:39:19 CET 2015


Hello,

I solved it: Denis gave the hint: My bluetooth dongle from CSR does not show the Bluetooth LE enumerator on windows although it works as Bluetooth LE Dongle on my old Macbook Air. Today I got a new USB dongle that is using a broadcom chip: It shows a Bluetooth LE enumerator in the device manager. Using this dongle, I see my bluegiga heart rate demo when trying to pair to devices.

 

Thank you all and best regards,

 

Axel

 

Von: Denis Shienkov [mailto:denis.shienkov at gmail.com] 
Gesendet: Dienstag, 13. Januar 2015 12:28
An: Axel Jäger; Blasche Alexander; interest at qt-project.org
Betreff: Re: [Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend

 

> Windows is successfully installing a driver and shows the bluetooth icon in the system tray. 
> For me it looks like my Windows/Desktop does not care for bluetooth LE at all.

Make sure that your DeviceManager has "Bluetooth *LE* enumerator" device. 

 

2015-01-13 14:25 GMT+03:00 Denis Shienkov <denis.shienkov at gmail.com <mailto:denis.shienkov at gmail.com> >:

> I can choose to „Add Bluetooth devices“ in the menu of that icon but the scan does neither show my peripheral nor my TVBluetooth

This means that your demo FW has errors in its implementation. Windows support BLE stack according to specification, so, maybe your FW uses wrong states or handshake sequence and so on.

BR, 
Denis

 

2015-01-13 1:28 GMT+03:00 Axel Jäger <axeljaeger at googlemail.com>:

Hello Denis, Hello Alex,

thank you for your help, here is a description of my setup:

 

Bluetooth peripheral:

I use a BLE112-Bluetooth-Module from bluegiga. It is programmed with a demo firmware that implements a Heart Rate service. I added one line to the initalisation of the firmware:  sm_set_bondable_mode which enables bonding.

 

Windows Phone

I use a Nokia Lumia 930. After a software update yesterday evening, I can see and pair to my bluegiga heart rate demo now. Also, I see a second device called TVBluetooth. I cannot pair to that device.

 

Windows 8.1 Desktop

I use a desktop PC with a bluetooth 4.0 dongle that looks like this one: 

http://i01.i.aliimg.com/wsphoto/v0/1680100575_1/Mini-font-b-Bluetooth-b-font-V4-0-USB-font-b-Bluetooth-b-font-font-b.jpg

Windows is successfully installing a driver and shows the bluetooth icon in the system tray. 

I can choose to „Add Bluetooth devices“ in the menu of that icon but the scan does neither show my peripheral nor my TVBluetooth

I also tried an example project from Microsoft that also cannot find any peripheral. This is no surprise because the application tells me to first pair my device.

 

For me it looks like my Windows/Desktop does not care for bluetooth LE at all.

 

Best regards,

 

Axel

 

Von: Denis Shienkov [mailto:denis.shienkov at gmail.com <mailto:denis.shienkov at gmail.com> ] 
Gesendet: Montag, 12. Januar 2015 10:14
An: Blasche Alexander
Cc: Axel Jäger; interest at qt-project.org <mailto:interest at qt-project.org> 


Betreff: Re: [Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend

 

Hi all,

> So far, I was not able to communicate with a custom BLE peripheral using either Windows Phone 8.1 or Windows 8.1 on a desktop.

Hmm, it is strange. Can you please describe your steps and your env? Maybe your custom BLE peripheral chip has wrong firmware.
I'm too faced earlier with a similar situation when a BLE peripheral works on Max/Linux, but does not works on Windows 8.1 Desktop (the reason was in a wrong FW).

BR,
Denis

 

2015-01-12 12:01 GMT+03:00 Blasche Alexander <alexander.blasche at theqtcompany.com <mailto:alexander.blasche at theqtcompany.com> >:

How do you define a custom BLE peripheral (aka what BLE devices work and which don't) on Win 8.1? Is it one that is not defined by some well known service or characteristic UUID?

 

--

Alex


  _____  


From: Axel Jäger <axeljaeger at googlemail.com <mailto:axeljaeger at googlemail.com> >
Sent: Sunday, January 11, 2015 22:35
To: Blasche Alexander; interest at qt-project.org <mailto:interest at qt-project.org> 
Subject: AW: [Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend 

 

Hello Alex,

thank you for your answer. So if there is someone working on a port of windows, time might be my friend and I might start on my mac using 5.5. However, in the meantime I found out that the implementation of Bluetooth LE on Windows behaves differently regarding the need to bond and pair devices. 

 

So far, I was not able to communicate with a custom BLE peripheral using either Windows Phone 8.1 or Windows 8.1 on a desktop.

 

I guess an implementation of the Qt Bluetooth LE API will inherit this behaviour. If this is case and currently I guess it is the case, I better go with the bluegiga SDK directly.

 

Best regards,

 

Axel

 

Von: interest-bounces+axeljaeger=googlemail.com at qt-project.org <mailto:googlemail.com at qt-project.org>  [mailto:interest-bounces+axeljaeger <mailto:interest-bounces%2Baxeljaeger> =googlemail.com at qt-project.org <mailto:googlemail.com at qt-project.org> ] Im Auftrag von Blasche Alexander
Gesendet: Mittwoch, 7. Januar 2015 09:28
An: interest at qt-project.org <mailto:interest at qt-project.org> 
Betreff: Re: [Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend

 

Hi Axel,

 

Your assumption about 5.5 is correct. Android gets LE support and ios/OSX get classic and LE support.

 

Windows is currently work in progress. There is a wip/win branch on codereview. The windows port is mostly community driven at this stage which makes prediction somewhat hard. Ccurrently, you can find devices and I believe the initial connect to a BTLE device is somewhat done. This is done for classic desktop windows (which would cover win 8.1). There is no WinRT code at this stage.

 

to your questions:

 

1.) I am confident Windows should have no unfixable problems. In many cases it is better than ios/OSX/Android when it comes to LE. I cannot say much about WinRT.

 

2.) I am not the WinRT expert but I was told in some cases it works in other's it doesn't. QtPositioning apparantly couldn't use RT on desktop. Qt doesn't mix desktop and RT and I got the feeling that the responsiple devs would like to keep it that way.

 

3.) The QtBluetooth library doesn't use a backend plugin. It is hardcoded into the library.

 

--

Alex


  _____  


From: interest-bounces+alexander.blasche=theqtcompany.com at qt-project.org <mailto:interest-bounces+alexander.blasche=theqtcompany.com at qt-project.org>  <interest-bounces+alexander.blasche=theqtcompany.com at qt-project.org <mailto:interest-bounces+alexander.blasche=theqtcompany.com at qt-project.org> > on behalf of Axel Jäger <axeljaeger at googlemail.com <mailto:axeljaeger at googlemail.com> >
Sent: Tuesday, January 6, 2015 23:51
To: interest at qt-project.org <mailto:interest at qt-project.org> 
Subject: [Interest] Bluetooth Low Energy on Windows: Options and feasabilty of implementing own backend 

 

Hello,

I have created a Bluetooth Low Energy Peripheral and need to develop a companion application on a windows desktop for it. I see that windows is currently not in the list of supported plattforms of Qt’s Low Energy Module and it looks like it will not be in Qt 5.5 according to this commit:

https://qt.gitorious.org/qt/qtconnectivity/commit/ffbb91da8e8f14d7d5ffa8bbeace3e6c42eb525b

 

I am using bluetooth modules from bluegiga and they also offer a bluetooth stick with an own C API.

 

I see three options getting my task done and I am asking you which one you think is most sensible one:

1) Implement my application using bluegiga’s API 

2) Implement a backend for Qt to use bluegiga’s hardware 

3) Implement a backend for Qt to use the Windows Bluetooth API from WinRT/Windows 8.1

 

The options are ordered by estimated amount of work from least to most. Surprisingly I get the same order when sorting by sustainability.

 

This means that actually option 3) is to be prefered. This brings me to a couple of questions:

1)      Has anyone already looked into the Windows API and wants to make a statement whether mapping Qt’s API to the Windows API is feasable?

2)      Is it actually possible to use WinRT on the Desktop as backend for Qt?

3)      Is there an API or a plugin interface for Bluetooth LE backends in Qt?

 

Can you comment on any of my points?

 

Best regards,

 

Axel

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150126/5fe38cda/attachment.html>


More information about the Interest mailing list