I made a BLE peripheral (nRF52 + SDK11.0.0 + s132) and have so far been using Android devices (that supports 7.5ms connection events) to connect to it. I want to connect to a PC now and support various Windows operating systems.
I am a little confused on how these dongles interface with the PC. Do they use the BLE APIs or do they use the CDC/HID APIs (so that almost any Windows OS can communicate via CDC/HID and the API does the translation to the BLE interface)? If the prior, then Windows XP/7 wouldn't support the dongle, correct? But an app written in C# would use Window's BLE API to communicate with the dongle, correct? If the latter, an app written in C# would simply use HID/CDC send commands to the dongle to control the BLE (and have it connect to the peripheral and read/write etc), correct?
The peripheral can stream data over notifications using 7.5ms connection events (which works great with some Android devices). Are there any BLE dongles that support 7.5ms connection events and use HID? Or am I better off creating a central with the desired USB-HID interface (i.e., a nRF52 + separate USB MCU or using the new nRF52840)? To be clear, I will supply this PC dongle to my customers (or they can buy it if off-the-shelf) but it cannot be something bulky like the nRF52-DK.
Microsoft added BLE support in either Windows 8 or 8.1, and its supposed to be in W10.
However I tried a CSR Bluetooth dongle on WIndows 10, and could not detect any BLE devices.
Depending on which versions of Windows you intend to support, I suspect the thing that is most likely to work is a dongle acting as central, which enumerates on USB as a HID device.
Windows seems to accept HID devices very easily, but getting other types of USB devices to work e.g. CDC ( serial ) is a pain on W7.
I have tried Nordics CDC and HID examples for the nRF52840 and the driver installation for CDC is not straight forward.
You could look for a dongle in this list, but I don't think one exists
There was also a question about a dongle, last year, but I don't think one was found
PS. Please PM me if you are serious about the idea of a dongle, as I have a similar development in the pipeline.
Which dongle you are asking about ?
If you are talking about our Nordic dongle, then the protocol is simply CDC UART via USB and we what is transferred via UART is the BLE APIs converted to serialization protocol we have. The firmware on the dongle is the ble_connectivity as in \examples\ble_central_and_peripheral.
You can have a look at the ble_driver we have here.
If you are talking about generic Bluetooth dongle, then you would need to use Windows BLE API to control it.
Seems that the nRF52840 is only in preview now and DK is hard to get. I might go about using a nRF52 and a separate USB MCU, but I will study the dongle as mentioned by Hung below to see if that will do the job. If you are making one, with a good HID-to-BLE API, please let me know.
I am developing a board / dongle using the nRF52840 as it has built in USB and can act as HID (or anything else), but like you say, the nRF52840 is only in preview until later this year (probably Q3)
At the moment I don't know of any off the shelf products which would do what you want, and provide HID
I suspect the cheapest option would be an nRF51822 paired with something like a STM32F103C8 (or similar MCU with built in USB support)
You could probably reprogram Nordic's own dongle as I think they use a Atmel SAM ARM processor to interface to USB and act as the SWD programmer, but its not a very cost effective option for a commercial product as you are paying for a lot of things you won't use. e.g the debugger software licensed from Segger and a high spec interface MCU