ovrebekk gravatar image

Posted 2017-02-14 12:46:03 +0100


nRF52840 long range demo

In December we published a video showing a long range test with the newly released nRF52840 chip. The video showed that the nRF52840 had excellent range, and is fully compatible with the new Long Range feature of the just released Bluetooth 5 specification. This blogpost will go into more details about how this test was done. Below is the video for those that have not seen it yet.

The setup consisted of two nRF52840 Preview Development kits, one transmitter (TX) and one receiver (RX). Both kits were connected to a GPS module using serial communication (UART). The DK on the receiving end also had a display shield developed here at Nordic and was connected to a computer. On the computer a program was displaying the different RF parameters like TX ouput power, on air bitrate and Link Budget, and the received data like the distance between the kits, the Receiver Signal Strength Indicator (RSSI) and the GPS coordinates of both kits. The display shield also showed this information along with info about how to change the different parameters; tx output power and bitrate. The different parameters were simply changed by using the buttons on the development kit.

image description

The GPS modules output the data over UART as [NMEA data] (https://en.wikipedia.org/wiki/NMEA_0183). This data includes among others the time, latitude and longitude position, number of satellites used and altitude. You can read more about it in Sparkfuns GPS guide. The transmitter (the kit that was attached to the drone) stripped down the message from the GPS module to only include the relevant information and sent it to the receiver (the kit connected to the PC). The receiver then calculated the distance between the kits based on the received data from the transmitter and the data from its own GPS module. The distance was calculated using the same formulas as described here (only using C instead of Javascript).

The communication was done using the radio directly (no SoftDevice), with settings for 125 kbps Long Range mode. Data was sent in one direction with no ACKing. This is more or less the same as if we had used Bluetooth advertising with 125 kbps Long Range mode, one of the differences being that only one channel was used.

As shown in the video two tests were conducted. In the first test the output power was set to 4 dBm and the bitrate was set to 1 Mbit. This is the settings that would give the best range on the prior chip, the nRF52832, without using an external Power Amplifier (PA). The transmitter was then brought about 100 meters down range and the connection (RSSI) was still good. To get any further we needed something to carry the development kit a long way while still having the kit in line of sight. For this we used a quadcopter/drone – a remotely controlled helicopter with four rotors. The quadcopter was of the type DJI Phantom 2. The transmitter was mounted on the quadcopter legs using cable ties. For this test we turned the output power up to 8 dBm and the bitrate down to 125 kbps. This is the settings that gives the highest link budget on the nRF52840 and thereby the longest range.

image description

The second test we ran two times. The second time the drone was at one point almost 800 meters away from our “station” and we still had good connection with RSSI values of between -80 and -90 dBm. The reason we did go longer was that the pilot did not want to fly any further away because of the equipment and that he did not have a license for flying directly using the camera, which meant that he had to be able to see the drone at all times.

The test showed that under good conditions we can get much improved range with the nRF52840. The specified sensitivity for 125 kbps Bluetooth Low Energy Long Range mode is at -103 dBm (see the Product Specification), which means that there is in theory still over 12 dBm left. As a rule of thumb 6 dBm difference equals double the distance, so we should theoretically be able to go at least 4 times longer. Next time we do a range test we will make sure that we have the correct equipment to go even further than this time, so stay tuned for a new long range test with even longer range!

For those of you who wants to try it out for yourself, here are the hex files for the transmitter (ptx) and receiver (prx):



The GPS coordinates, distance between the kits and RSSI is printed using RTT. Connect the RTT viewer to the receiver (prx) kit. If the GPS does not have location fix, "no fix" will be printed out and the distance cannot be measured. If this is the case you should take the GPS module to a more open area to get location fix.

UART TX on the GPS module is connected to P1.09 on the receiver (prx) and to P0.04 on the transmitter (ptx). Vin on the GPS module is connected to VDD and GND to GND.


luisOn gravatar image

Posted Feb. 15, 2017, 7:32 a.m.

Thank you for the extra details, looking forward to an even longer range test. Two questions:

  • Why did you use ESB instead of BLE connection or BLE advertising? Any pros & cons?

  • What did you use to develop the desktop application that showed the parameters received by RTT? (language/ide...?)

olba gravatar image

Posted Feb. 15, 2017, 1:51 p.m.

ESB was used simply because the BLE stack for nRF52840 with long range mode (125kbps) was not developed at the time we where doing the test.

The application was developed in C#/.NET. Actually uart was used to transfer the data to the computer in the demo. I changed to RTT in the files I shared here.

olba gravatar image

Posted Feb. 22, 2017, 6:18 p.m.

Technically, ESB was actually not used, since the radio was set in BLE long range mode. The radio was configured directly without SoftDevice. I updated the blogpost to be more correct.

atrishabh gravatar image

Posted May 25, 2017, 11:27 a.m.

So technically with a bitrate of 125Kbps, you are telling me we can use nRF52840 boards can advertise packets up to a range of 800x4 i.e 3200 meters? This can be used for beacon applications as well? Also what about the scanning range?

tperson gravatar image

Posted Sept. 5, 2017, 11:25 a.m.

Hello, Is it possible to have access to the source code of this demo? I would like to test both 125kbits and 2Mbits mode with one appplication code.

Thank you

Stanley20150727 gravatar image

Posted Oct. 3, 2017, 3:41 a.m.

Hello, the hex file dosen't work, what is the softdevice version? Thanks you

Chasedavis3 gravatar image

Posted Nov. 3, 2017, 12:01 a.m.

When you refer to the display shield, "The DK on the receiving end also had a display shield developed here at Nordic and was connected to a computer." What is the display shield and how can that be replicated? Is it a product or software? Additionally, I have the same questions about the RTT Viewer, "Connect the RTT viewer to the receiver (prx) kit." Where can that be found?

I am wanting to reproduce this demo and outside of the parts listed (the nRF52840 chip and the GPS module) I believe these are the only two missing pieces and they are responsible for interpreting the data. Any help is greatly appreciated! Thanks in advance!

ovrebekk gravatar image

Posted Nov. 24, 2017, 9:05 a.m.

The RTT Viewer is a part of the J-Link Software and Documentation Pack install, which is required to use our devkits.

The display shield is not currently available, it was originally developed for internal use only. I will check if we can either start production of the display, or make the production files available if someone else wants to manufacture them.

c.malki gravatar image

Posted Nov. 28, 2017, 12:58 p.m.


Can you shar the source code for this example ? I'm only interested in measuring the RSSI.

ovrebekk gravatar image

Posted Nov. 30, 2017, 12:27 p.m.


The production files for the display shield can be found here:
PCA63520-Memory LCD shield for nRF51-DK 1_2_0.zip

This include the schematic and the layout.

Best regards

Sign in to comment.