The DFRobot Bluno Boards are a series of Arduino-compatible development boards (e.g., Bluno Uno, Bluno
Nano) developed by DFRobot that
integrate a Bluetooth 4.0 (BLE or Bluetooth Low Energy) module (specifically, a TI CC2540 chip). This integration allows
developers to add wireless communication, smartphone control (via associated apps for iOS and Android), and
even wireless programming capabilities to their Arduino projects with ease. The boards are fully compatible
with Arduino Nano, Arduino UNO, Arduino Mega 1280, and
Arduino Mega 2560.
DFRobot provides a mobile SDK for their boards so you can easily use it with Android and iOS devices. However, there is no Windows SDK, that makes it almost impossible to use the boards with the standard Windows Bluetooth API.
How the Bluetooth Framework Helps
While Bluno boards are designed for easy use, connecting them to a standard Windows operating system can present challenges due to specifics of how Windows handles generic Bluetooth LE devices. The Bluetooth Framework helps resolve this issue for the following reasons:
- Missing standard descriptor: The Bluno boards do not have a standard client configuration descriptor configured for their custom Bluetooth GATT (Generic Attribute Profile) characteristic. Standard Microsoft Bluetooth APIs, particularly on Windows 10 and later, often require this descriptor to properly receive notifications when a characteristic's value changes (which is how the board sends data wirelessly).
- Force notifications feature: A dedicated Bluetooth Framework provides specific functionality to bypass this missing descriptor requirement. This forces the connection to receive notifications from the Bluno board, enabling proper data reception and communication on the Windows platform where the standard API fails.
- Simplified API: The framework simplifies access to complex Bluetooth functions on Windows, handling low-level operating system intricacies, which accelerates development and reduces the burden on the developer to manage OS-specific compatibility issues.
- Reliable communication: By using a robust framework, developers ensure stable and reliable communication with the Bluno boards on Windows, which might otherwise be problematic due to variations in Microsoft's Bluetooth stack implementation over different OS versions.
How It Works
To connect to a Bluno board, use the wclGattClient class. The class has the ForceNotifications property, which must be set to true to enable receiving the characteristic change notifications from the Bluno boards (or from any other GATT-enabled device that does not have the client configuration descriptor). The board will be paired during connection establishing, so your application must handle the OnPinRequest event of the wclBluetoothManager class. The default PIN is "0000".
When the connection is established, your application can start receiving notifications by simply calling the Subscribe method of the wclGattClient class. Your application must not call the WriteClientConfiguration in this case because the boards do not have the client configuration descriptor configured for the characteristic.
Should you have any questions, please do not hesitate to contact us.