This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

No measurable range increase using long range bluetooth (LE coded phy)

Hello,

I wanted to test the range of long range bluetooth using two nRF52840 USB dongles with the blinky example firmware of the nordic SDK 15.3 combined with softdevice version 6.1.1.

All test were made outdoors at the same location with no physical obstructions.

I adapted the central part according this tutorial: https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial.

Using the examples with unchanged settings I archived an range of 100 meters which is comparable to my tests with other bluetooth devices (for example a smartphone with bluetooth 4.1) which was to be expected.

Using this range as a baseline I added the option to change the connection type in the peripheral part to coded phy using the sd_ble_gap_phy_update(m_conn_handle, &phys) with

ble_gap_phys_t phys = {

   .tx_phys = BLE_GAP_PHY_CODED,

   .rx_phys = BLE_GAP_PHY_CODED,

};

which is triggered by the dongle button. I tested both with setting 0 (auto) and 4 (coded phy) for NRF_BLE_SCAN_SCAN_PHY in the sdk_config.h of the central part.

To confirm that the connection type in peripheral is changed successfully I checked the return value for NRF_SUCCESS. When successful the advertising LED is set to on. Additionally I added a function call to the ble_evt_handler() in central changing the RGB LED color when a connection type change request was received and the type was changed successfully.

I tested changing the connection type to coded phy with the dongle button, which was successful according to the changed LED states on both dongles.

However when I tested the range I could not measure any improvements compared to my previous tests without coded phy.

Additionally I set the tx power to 8dbm with sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV, m_adv_handle, 8), again with no improvements.

Do you have any ideas what I am doing wrong here?

Thanks a lot

mort

sdk_config_central.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* Copyright (c) 2014 - 2019, Nordic Semiconductor ASA
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form, except as embedded into a Nordic
* Semiconductor ASA integrated circuit in a product or a software update for
* such product, must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
* contributors may be used to endorse or promote products derived from this
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* Copyright (c) 2015 - 2019, Nordic Semiconductor ASA
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form, except as embedded into a Nordic
* Semiconductor ASA integrated circuit in a product or a software update for
* such product, must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
* contributors may be used to endorse or promote products derived from this
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX