{"id":61,"date":"2021-04-01T14:09:05","date_gmt":"2021-04-01T14:09:05","guid":{"rendered":"https:\/\/www.bleuio.com\/blog\/?p=61"},"modified":"2022-04-27T14:47:21","modified_gmt":"2022-04-27T14:47:21","slug":"create-a-bluetooth-low-energy-repeater-using-multi-connection-feature","status":"publish","type":"post","link":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/","title":{"rendered":"Create a Bluetooth Low Energy repeater using Raspberry pi"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Bluetooth low energy technology offers a suitable way of connecting smart devices.<br>However, despite the convenience, you can bear witness that the range offered can be a little limiting. Sometimes the connection tends to drop or lag when you move a little further away from the device. Fortunately, it\u2019s easy to overcome this range limitation with the Bluetooth repeater.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article will explain how to create a BLE Repeater using BLE USB dongle called BleuIO and python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The BleuIO is Bluetooth low energy solution that can be used to create new BLE 5.0 applications in the fastest and easiest way. Using this dongle\u2019s multi-connection feature, we will make a simple repeater where one dongle scans nearby devices data and sends it to the repeater. At the same time, the repeater passes the data to the receiver dongle. And that\u2019s how a repeater will help us overcome the range limitation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For this project, sender dongle will scan for&nbsp;<a href=\"https:\/\/www.hibouair.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">air quality data from HibouAir<\/a>&nbsp;device and pass the advertised data along with timestamp to the repeater. The repeater dongle will be connected to a Raspberry pi which will forward data to the receiver dongle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have already created a sample script in python, which will help us to do the task.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Requirements :<\/h3>\n\n\n\n<ol class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.bleuio.com\/\" target=\"_blank\">3 pcs BleuIO Dongle.<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.hibouair.com\/\" target=\"_blank\">HibouAir&nbsp;<\/a>or any BLE device<\/li><li>Python 2.7 or Python 3.4 and newer<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/pypi.org\/project\/pyserial\/\" target=\"_blank\">pyserial 3.5<\/a><\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Task:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 1:&nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s start by cloning the repository from&nbsp;https:\/\/github.com\/smart-sensor-devices-ab\/bleuio_repeater_example<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you cloned the script, you will find three different python script called<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>repeater_example_reciever_dongle.py<\/li><li>repeater_example_repeter_dongle.py<\/li><li>repeater_example_sender_dongle.py<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dev.smartsensordevices.com\/wp-content\/uploads\/2021\/03\/image.png\" alt=\"\" class=\"wp-image-1276\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We need to update the ports on those scripts manually.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>repeater_example_reciever_dongle.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import time\nfrom bleuio_lib.bleuio_funcs import BleuIo\n\n\nreciever_dongle_port = \"COM74\"  # Change this to your dongle's COM port\nmac_addr_to_repeater = (\n    \"&#91;0]40:48:FD:E5:2D:74\"  # Change this to your repeater dongle's mac address\n)\n\nbuffer = \"\"\nconnected = False\nconnecting = \"\"\n\nreciever_dongle = BleuIo(port=reciever_dongle_port)\nreciever_dongle.start_daemon()\n\nprint(\"Dongle found.\")\n\n\ndef save_msg(buffer):\n    \"\"\"\n    Parses incomming data string for just the data and prints it out.\n    \"\"\"\n    result = buffer\n    result_array1 = result.split(\"\\r\\n\")\n    result_array = result_array1&#91;2].split(\" \")\n    msg_to_save = str(result_array&#91;0])\n    print(\"Recieved = \" + msg_to_save)\n\n\ntry:\n    reciever_dongle.at_dual()\n\n    ready = input(\n        \"Press enter to connect to the repeater dongle. (This should be connected first).\"\n    )\n    print(\"Connecting...\")\n    reciever_dongle.at_gapconnect(mac_addr_to_repeater)\n    time.sleep(5)\n    while not connected:\n        connected_status = reciever_dongle.ati()\n        if \"\\r\\nConnected\" in connected_status&#91;0]:\n            connected = True\n            break\n        if \"\\r\\nNot Connected\" in connected_status&#91;0]:\n            reciever_dongle.at_gapconnect(mac_addr_to_repeater)\n            time.sleep(5)\n        print(\"Trying to connect...\")\n        time.sleep(2)\n\n    print(\"Connected.\")\n    print(\"Waiting to recieve...\")\n\n    while 1:\n        buffer = reciever_dongle.rx_buffer.decode(\"utf-8\", \"ignore\")\n        if \"\\r\\nhandle_evt_gattc_notification:\" in buffer:\n            save_msg(buffer)\n        time.sleep(0.5)\nexcept KeyboardInterrupt:\n    reciever_dongle.at_cancel_connect()\n    reciever_dongle.at_gapdisconnect()\n    reciever_dongle.at_advstop()\n    print(\"Shutting down script.\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>repeater_example_repeter_dongle.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import time\nfrom bleuio_lib.bleuio_funcs import BleuIo\n\nrepeter_dongle_port = \"COM38\"  # Change this to your dongle's COM port\n\nrepeter_dongle = BleuIo(port=repeter_dongle_port)\nrepeter_dongle.start_daemon()\n\nbuffer = \"\"\nnum_of_connected_devices = 0\nconnection_list = &#91;]\n\nprint(\"Dongle found.\")\n\nrepeter_dongle.at_dual()\nrepeter_dongle.at_advstart()\nrepeter_dongle.rx_state = \"rx_waiting\"\nprint(\"Waiting for other dongles to connect...\")\n\n\ndef send_msg(buffer):\n    \"\"\"\n    Parses incomming data string for just the data and sends it forward via the Serial Port Service.\n    \"\"\"\n    try:\n        result = buffer\n        msg_to_send = \"\"\n        result_array1 = result.split(\"\\r\\n\")\n        for line in result_array1:\n            if \"&#91;Received]:\" in line:\n                msg_to_send = line.split(\" \")\n                msg_to_send = msg_to_send&#91;1]\n                break\n        print(\"Forwarding data to reciever:\")\n        print(msg_to_send)\n        if not msg_to_send == \"\":\n            repeter_dongle.at_spssend(msg_to_send)\n            repeter_dongle.rx_state = \"rx_waiting\"\n    except:\n        print(\" \")\n\n\ntry:\n    while 1:\n        buffer = repeter_dongle.rx_buffer.decode(\"utf-8\", \"ignore\")\n        if \"\\r\\nCONNECTED.\" in buffer:\n            num_of_connected_devices = num_of_connected_devices + 1\n            print(\"A Dongle has connected!\")\n            repeter_dongle.at_advstart()\n            repeter_dongle.rx_state = \"rx_waiting\"\n        if \"DISCONNECTED.\" in buffer:\n            num_of_connected_devices = num_of_connected_devices - 1\n            connection_list = &#91;]\n            print(\"No Dongles connected.\")\n        if num_of_connected_devices &gt; 1:\n            if \"\\r\\n&#91;Received]:\" in buffer:\n                # print(buffer)\n                send_msg(buffer)\n        buffer = \"\"\n        time.sleep(0.1)\nexcept KeyboardInterrupt:\n    repeter_dongle.at_advstop()\n    repeter_dongle.at_gapdisconnect()\n    print(\"Shutting down script.\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>repeater_example_sender_dongle.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import time\nfrom bleuio_lib.bleuio_funcs import BleuIo\nimport random\n\nsender_dongle_port = \"COM73\"  # Change this to your dongle's COM port\nmac_addr_to_repeater = (\n    \"&#91;0]40:48:FD:E5:2D:74\"  # Change this to your repeater dongle's mac address\n)\n\nsender_dongle = BleuIo(port=sender_dongle_port)\nsender_dongle.start_daemon()\n\nconnected = False\ndata = \"\"\nbuffer = \"\"\n\n\ndef scan_and_get_results():\n    \"\"\"\n    Starts a BLE scan for three seconds, looking for results including the 'FF' flag in the advertising data.\n    Then it saves the results in a list and returns one of the results as a string.\n    :return: string\n    \"\"\"\n    print(\"Scanning...\")\n    return_data = \"\"\n    result_list = &#91;]\n    time.sleep(0.5)\n    try:\n        scanning = sender_dongle.at_findscandata(\"FF\")\n        if \"SCANNING\" in scanning&#91;0]:\n            time.sleep(4)\n            sender_dongle.stop_scan()\n            time.sleep(0.5)\n            result_list = sender_dongle.rx_scanning_results\n            if not result_list == &#91;]:\n                if len(result_list) &gt; 3:\n                    lines = result_list&#91;2].split(\"\\r\\n\")\n                    if not lines&#91;1] == \"\":\n                        data_array = lines&#91;1].split(\" \")\n                        lenght = len(data_array)\n                        if lenght == 5:\n                            data = data_array&#91;4]\n                            return_data = data\n            else:\n                sender_dongle.stop_scan()\n                result_list = &#91;]\n                sender_dongle.rx_state = \"rx_waiting\"\n                return_data = \"\"\n    except:\n        sender_dongle.stop_scan()\n        result_list = &#91;]\n        sender_dongle.rx_state = \"rx_waiting\"\n        return_data = \"\"\n    return return_data\n\n\nprint(\"Dongle found.\")\n\ntry:\n    sender_dongle.at_dual()\n    ready = input(\n        \"Press enter to connect to the repeater dongle. (This should be connected last).\"\n    )\n    print(\"Connecting...\")\n    sender_dongle.at_gapconnect(mac_addr_to_repeater)\n    time.sleep(5)\n    while not connected:\n        connected_status = sender_dongle.ati()\n        if \"\\r\\nConnected\" in connected_status&#91;0]:\n            connected = True\n            break\n        if \"\\r\\nNot Connected\" in connected_status&#91;0]:\n            sender_dongle.at_gapconnect(mac_addr_to_repeater)\n            time.sleep(5)\n        print(\"Trying to connect...\")\n        time.sleep(2)\n\n    print(\"Connected.\")\n    print(\"Getting services...\")\n    get_services = sender_dongle.at_get_services()\n    sender_dongle.rx_state = \"rx_waiting\"\n    time.sleep(2)\n    ready = input(\"Press enter to start sending data to the repeater dongle.\")\n\n    while 1:\n        data = scan_and_get_results()\n        time.sleep(1)\n        if not data == \"\":\n            sent = sender_dongle.at_spssend(data)\n            time.sleep(0.1)\n            if len(sent) == 1:\n                if \"&#91;Sent]\" in sent&#91;0]:\n                    print(\"Data = (\" + data + \") sent.\")\n                    time.sleep(1)\n            data = \"\"\n        time.sleep(1)\n        sender_dongle.rx_state = \"rx_waiting\"\nexcept KeyboardInterrupt:\n    sender_dongle.at_gapdisconnect()\n    print(\"Shutting down script.\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 2:<\/strong><br>Connect two dongles on your PC. You can do the process on three different PC or Raspberry Pi.<br>For this project, I have connected both the sender and receiver dongles to one PC.<br>After connecting the dongles, open device manager (windows) to find ports of each dongle.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dev.smartsensordevices.com\/wp-content\/uploads\/2021\/04\/image.png\" alt=\"\" class=\"wp-image-1285\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On my PC, I have two dongles connected on port 5 and 6.<br>Let\u2019s make COM 5 as the sender, COM 6 as a receiver.<br>Now open the scripts and set the ports number accordingly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>We also need to know repeater dongles ID. To do that, we can simply advertise the dongle on Raspberry pi using&nbsp;<strong>AT+ADVSTART<\/strong>&nbsp;command .Then do a gapscan using&nbsp;<strong>AT+GAPSCAN<\/strong>&nbsp;from sender dongle and look for a dongle called&nbsp;<strong>BleuIO<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dev.smartsensordevices.com\/wp-content\/uploads\/2021\/03\/image-2-1024x625.png\" alt=\"\" class=\"wp-image-1278\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Once we have repeater dongles id, we can put it on our scripts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 3 :<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now lets run the script.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First move to the script directory on Raspberry pi and using command prompt type&nbsp;<strong>sudo python3 repeater_example_repeter_dongle.py<\/strong>&nbsp;to run repeater script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, run receiver and sender scripts accordingly on PC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As the name suggests, the repeater will repeat its content. On the terminal, we will see the message sent to the repeater from the sender, and the repeater forwards the data to the receiver dongle.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dev.smartsensordevices.com\/wp-content\/uploads\/2021\/04\/repeaterexample-1024x549.png\" alt=\"\" class=\"wp-image-1286\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Follow this video for a better understanding.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Create a Bluetooth repeater using BleuIO&#039;s multi-connection feature\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/TBIprzx2Cl8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Bluetooth low energy technology offers a suitable way of connecting smart devices.However, despite the convenience, you can bear witness that the range offered can be a little limiting. Sometimes the connection tends to drop or lag when you move a little further away from the device. Fortunately, it\u2019s easy to overcome this range limitation with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":62,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,2],"tags":[],"class_list":["post-61","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.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create a Bluetooth Low Energy repeater using Raspberry pi - 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\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Bluetooth Low Energy repeater using Raspberry pi - BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"og:description\" content=\"Bluetooth low energy technology offers a suitable way of connecting smart devices.However, despite the convenience, you can bear witness that the range offered can be a little limiting. Sometimes the connection tends to drop or lag when you move a little further away from the device. Fortunately, it\u2019s easy to overcome this range limitation with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/\" \/>\n<meta property=\"og:site_name\" content=\"BleuIO - Create Bluetooth Low Energy application\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-01T14:09:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-27T14:47:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"986\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\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\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/\"},\"author\":{\"name\":\"BleuIO\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"headline\":\"Create a Bluetooth Low Energy repeater using Raspberry pi\",\"datePublished\":\"2021-04-01T14:09:05+00:00\",\"dateModified\":\"2022-04-27T14:47:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/\"},\"wordCount\":543,\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/bleuio-repeater.gif\",\"articleSection\":[\"BleuIO\",\"BleuIO tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/\",\"name\":\"Create a Bluetooth Low Energy repeater using Raspberry pi - BleuIO - Create Bluetooth Low Energy application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/bleuio-repeater.gif\",\"datePublished\":\"2021-04-01T14:09:05+00:00\",\"dateModified\":\"2022-04-27T14:47:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/#\\\/schema\\\/person\\\/89bc581382d5964043f96efc54b75b80\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/bleuio-repeater.gif\",\"contentUrl\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/bleuio-repeater.gif\",\"width\":986,\"height\":512,\"caption\":\"Create a Bluetooth Low Energy repeater\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.bleuio.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Bluetooth Low Energy repeater using Raspberry pi\"}]},{\"@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":"Create a Bluetooth Low Energy repeater using Raspberry pi - 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\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/","og_locale":"en_US","og_type":"article","og_title":"Create a Bluetooth Low Energy repeater using Raspberry pi - BleuIO - Create Bluetooth Low Energy application","og_description":"Bluetooth low energy technology offers a suitable way of connecting smart devices.However, despite the convenience, you can bear witness that the range offered can be a little limiting. Sometimes the connection tends to drop or lag when you move a little further away from the device. Fortunately, it\u2019s easy to overcome this range limitation with [&hellip;]","og_url":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/","og_site_name":"BleuIO - Create Bluetooth Low Energy application","article_published_time":"2021-04-01T14:09:05+00:00","article_modified_time":"2022-04-27T14:47:21+00:00","og_image":[{"width":986,"height":512,"url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif","type":"image\/gif"}],"author":"BleuIO","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#article","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/"},"author":{"name":"BleuIO","@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"headline":"Create a Bluetooth Low Energy repeater using Raspberry pi","datePublished":"2021-04-01T14:09:05+00:00","dateModified":"2022-04-27T14:47:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/"},"wordCount":543,"image":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif","articleSection":["BleuIO","BleuIO tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/","url":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/","name":"Create a Bluetooth Low Energy repeater using Raspberry pi - BleuIO - Create Bluetooth Low Energy application","isPartOf":{"@id":"https:\/\/www.bleuio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#primaryimage"},"image":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif","datePublished":"2021-04-01T14:09:05+00:00","dateModified":"2022-04-27T14:47:21+00:00","author":{"@id":"https:\/\/www.bleuio.com\/blog\/#\/schema\/person\/89bc581382d5964043f96efc54b75b80"},"breadcrumb":{"@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#primaryimage","url":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif","contentUrl":"https:\/\/www.bleuio.com\/blog\/wp-content\/uploads\/2022\/01\/bleuio-repeater.gif","width":986,"height":512,"caption":"Create a Bluetooth Low Energy repeater"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bleuio.com\/blog\/create-a-bluetooth-low-energy-repeater-using-multi-connection-feature\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bleuio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create a Bluetooth Low Energy repeater using Raspberry pi"}]},{"@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\/61","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=61"}],"version-history":[{"count":3,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/61\/revisions"}],"predecessor-version":[{"id":268,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/posts\/61\/revisions\/268"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media\/62"}],"wp:attachment":[{"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/media?parent=61"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/categories?post=61"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bleuio.com\/blog\/wp-json\/wp\/v2\/tags?post=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}