Indoor BLE Range Improvements

Hello everyone!

Background

We are in development phase for indoor household appliances with many wireless connected entities. There is a requirement to support following topology: 8 battery powered devices and single mains powered device. As the target environment is indoor and low rate of data exchange (low bandwidth) is needed, we agree to test out BLE5 LE CODED PHY (S=8, 125kbit/s) aka. LongRange, using Minew MS88SF3 module that features nRF52840 chipset

So, we prepare a simple mockup test application to check out how the system will behave in real-life scenarious. Test application was very simple, central BLE device scans continuously and stops after all 8 connections are established. Peripheral BLE devices advertise when not in connection. With such approach system shall always converge to have all devices connected, as if one device gets disconnected advertising/scaning shall re-started and the drop connections should re-established. Every second 64 bytes of dummy data were exchange between central and peripheral device based on server-initiate update (notification type). Tx power for adverising and connection was set to 8dBm. Connection interval was set to 1500ms, SlaveLatency to 2 and Supervision Timeout to 15000ms. Well, it works perfectly on a desk! 

After couple of tests with single BLE central device and 8 peripheral devices on real life scenarios (each developer took mockup system home and tested) we found out that stability/reliability of the BLE connection was not consistent. As expected, house construction and size did have a great impact on overall system. In one case there was zero problems, devices was connected immediately after power-on and connections was stable over one week of measurement period. On the other cases there was quite the opposite. Some of the devices did not connect at all, some of the devices were connected and couple of hours later was permanently disconnected.  

Typically, house construction that we plan to use the system consist of bricks and reinforced concrete slabs. 

Platform description:

  • IC:               nRF52840
  • Module:       Minew MS88SF3
  • SDK:            nRF5_SDK_17.1.0_ddde560
  • Softdevice:  s140_nrf52_7.2.0 
  • IDE:             SEGGER Embedded Studio for ARM Release 7.10a Build 2022121504.52072
  • OS:              Windows 10

Test Setup

Questions

  1. As posted on other DevZone threads improving BLE range from SW point of view boils down to TX power settings (and PHY afcourse, as mentioned we are using CODED PHY). So all we can do in SW to increase BLE range is to adjust TX power output? How about connection/advertisement parameters, do they play a role in BLE range?
  2. How can we increase reliability/stablity of BLE connections indoor?
  3. Are there any general BLE parameters guidence for indoor applications?
  4. What connection/advertisment parameters do Nordic recommends to achieve stable/reliable BLE CODED PHY connections, without consideration of power consuption? 
  5. Should we considering making a non-battery powered repetitor devices in order to achieve stable/reliable BLE connections when used in larger houses?

Additional

Interesting effect arose at larger houses where it was observed that some peripheral devices block other from being connected. Moving most distant peripheral device closer to central device did not only cause to re-establish connection with that device, but also triggers re-connection of other peripheral devices. It seems as it some peripheral device blocks other from being connected. At least those were observations.

So what can be a couse of that? Can that be test application logic, that after connection is drop peripheral start advertising? Do you have any recommendations for mitigation of that effect?

Thank you for all the help!

BR, Žiga

Related