Example Code

LabVIEW Bluetooth Low Energy Driver development using Universal Windows Platform (UWP)

Products and Environment

This section reflects the products and operating system used to create the example.

To download NI software, including the products shown below, visit ni.com/downloads.


  • RF|Wireless


  • LabVIEW


  • NI RF Device Drivers

    Operating System

  • Windows

    Programming Language

  • .NET
  • C Sharp
  • LabVIEW G

Code and Documents



This example demonstrate on how to use the windows 10 BLE native library to communicate with BLE devices (Smart watch, bulb or any device which support BLE). Developed the DLL to interact with windows 10 BLE library in C# platform and integrated the dll into LabVIEW by using .Net constructor node.


Here demonstrates usage of the Bluetooth Generic Attribute (GATT) Client APIs for Universal Windows Platform (UWP), along with sample code for common GATT client tasks:

  • Query for nearby devices
  • Connect to device
  • Enumerate the supported services and characteristics of the device
  • Read and write to a characteristic
  • Subscribe for notifications when characteristic value change




How to Use

Following are the methods available in BLE library:



  1. BLE_Initialize.vi - Initialize the DLL
  2. BLE_StartWatcher.vi - listening advertisement of near by BLE devices
  3. BLE_Get_WatcherResponse.vi - Gets the manufacture data, BLE address from BLE advertisement
  4. BLE_Get_WatcherReceivedData.vi - Decodes the watcher response
  5. BLE_StopWatcher.vi - Stop getting advertisement from near by BLE devices
  6. BLE_Request_Connect.vi - Initiates the connection to BLE device and returns with response of connection status and GATT Services list from BLE device
  7. BLE_Get_ServicesUUIDs_Property.vi - Gets the GATT service UUIDs and Property UUIDS from BLE device
  8. BLE_Notify.vi - Initiate the BLE notification of UUIDs from BLE device
  9. BLE_Notify_Listener.vi - Gets the notification of UUIDs from BLE device
  10. BLE_Read_Characteristic.vi - Reads the UUIDs of BLE device
  11. BLE_Read_CharacteristicArray.vi - Reads the array of UUIDs of BLE device
  12. BLE_Request_ServiceUUIDs.vi - Get the Service UUIDs
  13. BLE_Write.vi - Write the UUIDs of BLE device
  14. BLE_Write_Without_Response.vi - Write the without response UUIDs of BLE device and not return response

Additional Information

When setting the debug logs to true, C# library created the BLE log files under C drive


Development Environment:

LabVIEW 2020 32 Bit

OS: Win 10 64 bit


Added the Example code in HLD where user has to change the BLE address before run. The BLE address can be get after running the watcher.

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.




Screen shot of BLE device communication using windows UWP library. I have used my smart watch to communicate by using LabVIEW and C# library




I was waiting for this.
I was able to capture my heart rate monitor with this example.
Thank you Bharathi-CLD.😆