Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bluetooth Low Energy API for Windows 7.0

Windows 8 exposes an API to communicate to Bluetooth Low Energy (Smart) devices, but this API is not available in previous versions of Windows, so how can I communicate with a BLE dongle on Windows 7?

The BLE dongle I'm currently using (BLED112) exposes a virtual serial port, over which you can send commands using their custom proprietary API, but if I implement this in my software, it will not work with dongles from other manufacturers.

So is there a way to communicate with BLE devices on Windows 7 which is manufacturer-independent?

like image 462
Maestro Avatar asked Jan 18 '13 14:01

Maestro


People also ask

Does Windows 7 support Bluetooth Low Energy?

Windows 7 and 8 don't have any Bluetooth Low Energy (BLE) support whatsoever so you will need to use a USB Bluetooth dongle in order to connect the Tracker. The USB Bluetooth dongle must be BLE compatible and must use a CSR8510 A10 chipset. On Windows 10 things start to get a bit more complicated.

Does Windows support Bluetooth Low Energy?

Mobile operating systems including iOS, Android, Windows Phone and BlackBerry, as well as macOS, Linux, Windows 8, Windows 10 and Windows 11, natively support Bluetooth Low Energy.

What version of Bluetooth is low energy?

Versions 4.0 – 5.0: Bluetooth Low Energy In order to meet the increasing demand for wireless connectivity between small devices, Bluetooth 4.0 was introduced to the market with a new category of Bluetooth: Bluetooth Low Energy (BLE).


1 Answers

So it turns out that some people have found a workaround. Basically the idea is to not use the Windows BLE API (which doesn't work on Windows 7) but instead to talk to the dongle directly. You can do that using WinUSB (a user-space USB driver). That driver can be installed using Zadig.

Here is an example:

https://github.com/sandeepmistry/node-bluetooth-hci-socket#windows

It has C++ code to let you send HCI commands. There is also a Node library of how to use HCI for higher level BLE stuff:

https://github.com/sandeepmistry/bleno

I don't know if there are any non-JS libraries that do the same, but I don't think it would be hard to convert Bleno to C++ in any case.

like image 157
Timmmm Avatar answered Oct 25 '22 09:10

Timmmm