I'm researching the maximum direct connection distance between two Android phones for transfering small amount of data - which lead me to BLE Coded PHY S8 as a promising option. As a first test I used your nRF Connect Android app to do some field testing.
But I cannot get any longer distance connection via coded phy to work. After 20 meters I loose the connection. So maybe (hopefully) I'm doing something wrong or coded phy is far away from the 1000m I've read about...
I hope this is the right place to ask. If not please let me know.
Anyhow... here are the details of my test:
Phone 1 (server) is a Nokia 2.3:
I set up a GANTT server (get current time for testing purposes):
And started an advertiser:
Phone 2 (client) is a OnePlus 7 Pro:
Where I've scanned and connected to the Nokia 2.3, and read the PHY which is set to LE Coded:
But once I walk away with the client phone from the server the read/refresh of time fails and the connection gets lost after 20m or so.
The server phone is placed inside at the window sill and I'm walking away outside on the lawn with no obstacles in between.
Things I've tried:
I have found a couple of threads:
The last 3 say that S8 is used by default anyhow or are not really helpful...
The first one is exactly my issue! But as far as I can interpret the discusion there I would conclude: It does not really get better than the 20 meter.
Is that true?
soko said:1) Bluetooth LE (long range) Coded PHY S8 is designed for non WiFi environment and line of sight
I wouldn't say it was designed for these situations only, but I think it is fair to say…
Bluetooth range is affected by many factors, and an issue when trying to predict what kind of range you get when phones is involved is that the radio performance of the phone itself is an unknown factor. Because there is no Nordic hardware involved anywhere in your test it is a bit limited what support we can provide, but I will try to provide some general advice.
I discussed this with one of our Android experts, and he mentioned that you already reported this on github, so I will let him deal with the nRF Connect related questions.
Could you try to replicate this test in normal mode (1M PHY) ?
It would be interesting to know how the range differs between 1M and CODED.
Also, it could be interesting to redo the coded test in an outdoor environment to see if the range might be affected by radio interference (WiFi is the most common cause of interference in the 2.4GHz band). Because coded phy uses longer packets you are more susceptible to be hit by interference in this mode.
I appreciate your help and yes, I've raised an issue on github as I was not sure about the best place for my question...
My original concern was me using the app the wrong way or not knowing about a setting I have to do to get real CODED PHY... but it seems to be a hardware issue and not on Layer 8 of the ISO/OSI model
I have tried it with normal mode (1M). It does not seem to make a difference. I may be able to do the test again with no wifi nearby... but it will be just out of curiousity as my use-case has wifi in close range for sure.
So lets how your android expert can help over on github.
But maybe you can point me into the right direction when swapping both phones for some Nordic hardware:
I have two Arduino Nano 33 BLE (sense) in my hands but kinda lack of a source code example on how to redo the test with them. So basically putting them into CODED PHY S8.
Can you help me out here?
I would recommend you read through a tutorial written by one of my colleagues:Testing Long Range with Nordic solution
It goes through the steps involved of testing out coded PHY using 2 nRF52840DK's.
It's worth mentioning that the ranges quoted in the tutorial can be hard to achieve in more typical urban environments. As mentioned the range drops significantly if you have WiFi interference in the area, and all 2.4GHz based RF signals are heavily attenuated by things getting in the way of the signal, such as buildings or scenery.
I was curious if the issue is hardware related or system/design related so I did an outdoor test.
Client: Oneplus 7 Pro
Server: Huawei P30 Pro
I've placed the Server on a chair on the lawn in front of my house, connected the client and started to walk away in a direction with no other wifi.
As long as both phones had line of sight the connection was stable.
"line of sight" means: My body between the phones was not an issue. But i.t. a little hill in the landscape was.
I've tested successfully 500m distance. After that my landscape dropped off so I lost line of sight.
I've repeated the test with the Nokia 2.3 as the server. I lost connection after ~200m even with line of sight.
1) Bluetooth LE (long range) Coded PHY S8 is designed for non WiFi environment and line of sight
2) It also highly depends on the hardware you use
Especially point 1 is a killer for my application as I need a connection of ~100m through walls and where wifi is active.
I wouldn't say it was designed for these situations only, but I think it is fair to say that the impact of WiFi interference on the longer coded PHY packets was underestimated when the protocol was designed.
For situations where you need longer range indoor with a lot of interference it is probably better to add an RF frontend to the BT chipset, in order to increase TX output power and receiver sensitivity. The advantage then is that you can use the standard 1M mode for improved datarate and reduced latency, while the drawbacks are increased current consumption and BOM cost.
soko said:2) It also highly depends on the hardware you use