Hello,
I've been looking into the performance of the coded PHY (S8) to see if it fits the needs for a product we intend to make. All research and documentation I found about the long range feature of BT5 did not focus on relevant aspects for our situation. I would like to get some feedback on the results of the tests I have done with coded and 1Mbps PHY in a connected and non-connected scenario.
Let me first elaborate a bit about the details of this product so it's clear what the requirements are with regards to the Bluetooth communication.
The idea is to make an energy meter which send its captured data to some other device. This other device can then use the captured energy data for control purposes. For installation convenience the communication between both devices needs to be wireless. As being used in houses/buildings/vehicles the wireless communication should be as robust as possible, though this is difficult to quantify.
The energy data consist of Power, Voltage and Current (each 12 bytes payload) and is time critical. The maximum latency should not exceed 300ms (but preferred is below 100ms). The Power data should be received at a minium of 4Hz and the Voltage/Current should be received at a minimum of 1Hz. As there is no constraint on power usage of both devices, data may be transmitted at a higher rate than 4 Hz (to increase robustness).
As said, I've been testing the connected scenario and the non-connected scenario by using the nRF52840 PCA10056 both for sending and receiving. The connected scenario uses a 7.5 ms connection interval and data packets are sent 10 times/sec. In the non-connected scenario advertisement packets (BLE_PACKET_TYPE_ADV_NONCONN_IND) are transmitted every 20msec (thus 50 times/sec which as I understand is allowed for BT5).
In my test setup I store the number of received packets per second. This gives the following graph for the connected scenario (1Mpbs & S8 Coded):
For both coded and 1Mbps the same route in and around the house was taken. The Coded PHY was behaving better in terms of packetrate and disconnections. Still, from everything being said and promised about the long range feature I found the improvement in reallife a bit disappointing. The locations where 1Mbps disconnections happened were on the edge of the range, not way beyond the range. I expected that on those "on edge" locations, the coded PHY would not disconnect and would also not have a decrease in packet rate.
Then I cranked up the packets/sec to 90 and did some latency tests with coded PHY:
As expected, when the link budget decreases the retransmissions start to kick in and introduce latency. Although the latency in this graph is acceptable, it does show that when using the connected mode some kind of latency detection is required to filter out packets with a latency >300ms.
The advantage of using non-connectable advertisement packets to convey the energy data, is that latency is automatically handled: either a packet is received (with no latency) or a packet is not received (and no retransmission). However the lack of retransmission also makes the system more prone to data loss I think:
1 Mbps PHY non-connectable test; TX 8dBm
Coded PHY non-connectable test; TX 8dBm
To be honest, I'm not impressed at all with the performance of the coded PHY when using non-connectable advertisements. Possibly there's a small performance gain, but the effect is minimal in the testing I've done.
To come to a conclusion, I would like to get some feedback from Nordic on the above results:
-What is Nordics experience when using coded PHY for non-connectable advertisment packets? Should it show the same improvements as seen in the connected scenario?
-In general, do you consider non-connectable advertisements less robust than a connection for conveying data with a low bitrate (but with latency requirements)?
-Does the lack of retransmissions (and possibly also due to only using the 3 advertisement channels instead of all channels) indeed negatively influence the range when using non-connectable advertisements?
-Do you have quantifyable data you can share regarding 1Mbps vs S8 in and around buildings? So a more reallife scenario and not an optimized scenario without obstacles etc. Also, what to expect from the effective data bitrate and latency under such conditions?
-Any hints or feedback in general to improve the range under the given circumstances/requirements?