{"id":228,"date":"2022-03-22T11:20:16","date_gmt":"2022-03-22T11:20:16","guid":{"rendered":"https:\/\/www.bleuio.com\/blog\/?p=228"},"modified":"2022-07-01T10:25:28","modified_gmt":"2022-07-01T10:25:28","slug":"ble-usb-dongle-throughput-measurement","status":"publish","type":"post","link":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/","title":{"rendered":"BLE USB dongle throughput measurement"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Here we will describe two quick ways of measuring the data throughput of the BleuIO Dongle.<br>For both examples we are going to need a&nbsp;<strong>BleuIO Dongle<\/strong>, another Bluetooth device (like another&nbsp;<strong>Bleuio Dongle<\/strong>) and a computer with&nbsp;<strong>Python<\/strong>&nbsp;(minimum version:&nbsp;<strong>3.6<\/strong>) installed.<\/p>\n\n\n\n<p>For the first measurement example, measuring the BLE data throughput, you will need one of the following supported development kits from Nordic Semiconductor:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>nRF52840 DK (PCA10056)<\/li><li>nRF52840 Dongle (PCA10059)<\/li><li>nRF52833 DK (PCA10100)<\/li><li>nRF52 DK (PCA10040)<\/li><li>nRF51 DK (PCA10028)<\/li><li>nRF51 Dongle (PCA10031)<\/li><\/ul>\n\n\n\n<p>The first measurement example is the actual BLE data throughput. For this we will use a BleuIO Dongle and Wireshark. (For help on how to setup Wireshark and requirements go to this link: https:\/\/infocenter.nordicsemi.com\/topic\/ug_sniffer_ble\/UG\/sniffer_ble\/intro.html ).<br>We will also utilize a simple python script that sends a set amount of data. For this measurement you can ignore the throughput print at the end of the script.<\/p>\n\n\n\n<p>The second measurement example is for measuring the actual data being transferred over the USB as a Virtual COM port (via the CDC protocol).<br>We will be using the same simple script that will send a set amount of data and time when the transfer starts and then stops. Then divide the amount of data with the time the transfer took to get the throughput.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-throughput-measure-1024x530.jpg\" alt=\"\" class=\"wp-image-231\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-throughput-measure-1024x530.jpg 1024w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-throughput-measure-300x155.jpg 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-throughput-measure-768x397.jpg 768w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-throughput-measure.jpg 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Notice : Interference can be caused by other wireless networks, other 2.4 GHz frequency devices, and high voltage devices that generate electromagnetic interference. This have impact on the measurement of throughput. To avoid interference, select wireless free space or use a shield box.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Instructions for BLE data throughput<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>For best result place the nRF Dev Kit between the BleuIO Dongle and your target device.<\/li><li>Open Wireshark and double-click the&nbsp;<strong>\u2018nRF Sniffer for Bluetooth LE\u2019<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"213\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/start_sniffer.png\" alt=\"\" class=\"wp-image-232\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/start_sniffer.png 396w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/start_sniffer-300x161.png 300w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Make sure the target Bluetooth device is advertising and find in the the scroll-down list.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"208\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/select_device.png\" alt=\"\" class=\"wp-image-234\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/select_device.png 461w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/select_device-300x135.png 300w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Choose&nbsp;<strong>\u2018IO\/Data\u2019<\/strong>&nbsp;under the&nbsp;<strong>\u2018Analysis\u2019<\/strong>&nbsp;menu tab.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"264\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/open_IO_graphs.png\" alt=\"\" class=\"wp-image-235\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/open_IO_graphs.png 360w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/open_IO_graphs-300x220.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Click the&nbsp;<strong>\u2018+\u2019<\/strong>&nbsp;button to add new graphs. Add \u2018bytes per seconds\u2019 and\/or \u2018bit per seconds\u2019.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"133\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/add_graphs.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/add_graphs.png 886w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/add_graphs-300x45.png 300w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/add_graphs-768x115.png 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Modify the script by filling in the relevant information into the variables&nbsp;<strong>\u2018your_com_port\u2019<\/strong>,&nbsp;<strong>\u2018target_mac_addr\u2019<\/strong>&nbsp;and&nbsp;<strong>\u2018write_handle\u2019<\/strong>.<\/li><li>Run the python script.<\/li><li>You can now observe the graph showing the BLE Data throughput!<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"723\" src=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/wireshark2_graph.png\" alt=\"\" class=\"wp-image-237\" srcset=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/wireshark2_graph.png 675w, https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/wireshark2_graph-280x300.png 280w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Instructions for USB port data throughput<\/h2>\n\n\n\n<p>This is the second measurement example for measuring the actual point to point data transfer between the two USB ports.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Connect the dongle to your computer. (Look up the COM port your dongle uses and paste it in the script in the variable&nbsp;<strong>\u2018your_com_port\u2019<\/strong>)<\/li><li>Scan (Using AT+GAPSCAN) after the device you wish to send the data to. Copy the mac address of the device into the script in the variable&nbsp;<strong>\u2018target_mac_addr\u2019<\/strong>.<\/li><li>Connect to the device and look up the handle of the characteristic you want to write to and paste into the script in the variable&nbsp;<strong>\u2018write_handle\u2019<\/strong>.<\/li><li>Finally just run python script and the throughput will be displayed at the end!<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The script<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>import datetime\nimport serial\nimport time\nimport string\nimport random\n\nconnecting_to_dongle = True\ntrying_to_connect = False\n\n# Change this to the com port your dongle is connected to.\nyour_com_port = \"COM20\"\n# Change this to the mac address of your target device.\ntarget_mac_addr = \"&#91;0]40:48:FD:E5:2C:F2\"\n# Change this to the handle of the characteristic on your target device.\nwrite_handle = \"0011\"\n\n# You can experiment with the packet length, increasing or decreasing it and see how that effect the throughput\npacket_length = 150\n# 1 Megabytes = 1000000 Bytes\nfile_size = 0.5 * 1000000\nend_when = file_size \/ packet_length\nsend_counter = 0\n\n# Random data string generator\ndef random_data_generator(size=packet_length, chars=string.digits + string.digits):\n    return \"\".join(random.choice(chars) for _ in range(size))\n\n\nprint(\"Connecting to dongle...\")\nwhile connecting_to_dongle:\n    try:\n        console = serial.Serial(\n            port=your_com_port,\n            baudrate=115200,\n            parity=\"N\",\n            stopbits=1,\n            bytesize=8,\n            timeout=0,\n        )\n        if console.is_open.__bool__():\n            connecting_to_dongle = False\n    except:\n        print(\"Dongle not connected. Please reconnect Dongle.\")\n        time.sleep(5)\n\nprint(\"Connected to Dongle.\")\nconsole.write(str.encode(\"AT+GAPDISCONNECT\\r\"))\nstart = input(\"Press Enter to start.\\n\\r&gt;&gt; \")\n\nconsole.write(str.encode(\"ATE0\\r\"))\nconsole.write(str.encode(\"AT+DUAL\\r\"))\nconnected = \"0\"\nwhile connected == \"0\":\n    time.sleep(0.5)\n    if not trying_to_connect:\n        # change to Mac address of the device you want to connect to\n        console.write(str.encode(\"AT+GAPCONNECT=\" + target_mac_addr + \"\\r\"))\n        trying_to_connect = True\n    dongle_output2 = console.read(console.in_waiting)\n    time.sleep(2)\n    print(\"Trying to connect to Peripheral...\")\n    if not dongle_output2.isspace():\n        if dongle_output2.decode().__contains__(\"\\r\\nCONNECTED.\"):\n            connected = \"1\"\n            print(\"Connected!\")\n            time.sleep(8)\n        if dongle_output2.decode().__contains__(\"\\r\\nDISCONNECTED.\"):\n            connected = \"0\"\n            print(\"Disconnected!\")\n            trying_to_connect = False\n        dongle_output2 = \" \"\n\nstart2 = input(\"Press Enter to sending.\\n\\r&gt;&gt; \")\nstart_time = time.mktime(datetime.datetime.today().timetuple())\nconsole.write(\n    str.encode(\n        \"AT+GATTCWRITEWRB=\" + write_handle + \" \" + random_data_generator() + \"\\r\"\n    )\n)\nwhile 1:\n    dongle_output = console.read(console.in_waiting)\n    if send_counter &gt; end_when:\n        end_time = time.mktime(datetime.datetime.today().timetuple())\n        break\n    # Change to the handle of the characteristic you want to write to\n    if \"handle_evt_gattc_write_completed\" in str(dongle_output):\n        console.write(\n            str.encode(\n                \"AT+GATTCWRITEWR=\" + write_handle + \" \" + random_data_generator() + \"\\r\"\n            )\n        )\n        send_counter = send_counter + 1\n    try:\n        if not dongle_output.decode() == \"\":\n            print(dongle_output.decode())\n    except:\n        print(dongle_output)\n\ntime_elapsed = end_time - start_time\ntime.sleep(0.1)\n\nprint(\"*\" * 25)\nprint(\"Transfer Complete in: \" + str(time_elapsed) + \" seconds\")\nprint(str(packet_length * send_counter) + \"bytes sent.\")\nprint(\"*\" * 25)\nprint(\n    \"Throughput via USB (Virtual COM port): \"\n    + str((packet_length * send_counter) \/ time_elapsed)\n    + \" Bytes per seconds\"\n)\nprint(\"*\" * 25)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Here we will describe two quick ways of measuring the data throughput of the BleuIO Dongle.For both examples we are going to need a&nbsp;BleuIO Dongle, another Bluetooth device (like another&nbsp;Bleuio Dongle) and a computer with&nbsp;Python&nbsp;(minimum version:&nbsp;3.6) installed. For the first measurement example, measuring the BLE data throughput, you will need one of the following [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":229,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bleuio","category-bleuio-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"og:description\" content=\"Introduction Here we will describe two quick ways of measuring the data throughput of the BleuIO Dongle.For both examples we are going to need a&nbsp;BleuIO Dongle, another Bluetooth device (like another&nbsp;Bleuio Dongle) and a computer with&nbsp;Python&nbsp;(minimum version:&nbsp;3.6) installed. For the first measurement example, measuring the BLE data throughput, you will need one of the following [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/\" \/>\n<meta property=\"og:site_name\" content=\"BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-22T11:20:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-01T10:25:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"674\" \/>\n\t<meta property=\"og:image:height\" content=\"404\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"BleuIO\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/\"},\"author\":{\"name\":\"BleuIO\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"headline\":\"BLE USB dongle throughput measurement\",\"datePublished\":\"2022-03-22T11:20:16+00:00\",\"dateModified\":\"2022-07-01T10:25:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/\"},\"wordCount\":521,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/ble-data-measuring-throughput.jpg\",\"articleSection\":[\"BleuIO\",\"BleuIO tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/\",\"name\":\"BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/ble-data-measuring-throughput.jpg\",\"datePublished\":\"2022-03-22T11:20:16+00:00\",\"dateModified\":\"2022-07-01T10:25:28+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/ble-data-measuring-throughput.jpg\",\"contentUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/ble-data-measuring-throughput.jpg\",\"width\":674,\"height\":404,\"caption\":\"ble data measuring throughput\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/ble-usb-dongle-throughput-measurement\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"BLE USB dongle throughput measurement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\",\"name\":\"BleuIO - Create Bluetooth Low Energy application\",\"description\":\"Learn Bluetooth Low Energy programming and build Bluetooth Low Energy Application\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\",\"name\":\"BleuIO\",\"sameAs\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/author\\\/biadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/","og_locale":"en_US","og_type":"article","og_title":"BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application","og_description":"Introduction Here we will describe two quick ways of measuring the data throughput of the BleuIO Dongle.For both examples we are going to need a&nbsp;BleuIO Dongle, another Bluetooth device (like another&nbsp;Bleuio Dongle) and a computer with&nbsp;Python&nbsp;(minimum version:&nbsp;3.6) installed. For the first measurement example, measuring the BLE data throughput, you will need one of the following [&hellip;]","og_url":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/","og_site_name":"BleuIO - Create Bluetooth Low Energy application","article_published_time":"2022-03-22T11:20:16+00:00","article_modified_time":"2022-07-01T10:25:28+00:00","og_image":[{"width":674,"height":404,"url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg","type":"image\/jpeg"}],"author":"BleuIO","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#article","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/"},"author":{"name":"BleuIO","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"headline":"BLE USB dongle throughput measurement","datePublished":"2022-03-22T11:20:16+00:00","dateModified":"2022-07-01T10:25:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/"},"wordCount":521,"commentCount":0,"image":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg","articleSection":["BleuIO","BleuIO tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/","url":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/","name":"BLE USB dongle throughput measurement - BleuIO - Create Bluetooth Low Energy application","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#primaryimage"},"image":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg","datePublished":"2022-03-22T11:20:16+00:00","dateModified":"2022-07-01T10:25:28+00:00","author":{"@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"breadcrumb":{"@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#primaryimage","url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg","contentUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/03\/ble-data-measuring-throughput.jpg","width":674,"height":404,"caption":"ble data measuring throughput"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bleuio.com\/blog\/ble-usb-dongle-throughput-measurement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bleuio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"BLE USB dongle throughput measurement"}]},{"@type":"WebSite","@id":"https:\/\/www.bleuio.com\/blog\/#website","url":"https:\/\/www.bleuio.com\/blog\/","name":"BleuIO - Create Bluetooth Low Energy application","description":"Learn Bluetooth Low Energy programming and build Bluetooth Low Energy Application","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bleuio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80","name":"BleuIO","sameAs":["https:\/\/www.bleuio.com\/blog"],"url":"https:\/\/www.bleuio.com\/blog\/author\/biadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":4,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":375,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions\/375"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media\/229"}],"wp:attachment":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}