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

Need to change RF RCV/TX distance through software not hardware

My Issue,

I need to be able to set radio RCV/TX signals to a specific distance. I would like to control this through the firmware. Do you have any recommendations or examples using Nordic products.

I want to do RCV/TX at 5 feet 8 feet 12 feet 16 feet 22 feet and 30 feet of distance ranges. I want to preset these so I can choose them through a debug interactive interface.

I do not want to modify the RF board by changing inductors or capacitors to increase or decrease range using PI tuning.

If you have any examples for this I would appreciate any recommendations.

Any recommendations would be greatly appreciated.

Parents
  • Hello Gillgen1

    Setting signals to achieve a specific range is a bit complicated, as there are many factors that affect this. Transmitter output power, matching between the transmitter amplifier and the antenna, matching between the receiver amplifier and antenna, antenna types, polarization of transmitting and receiving antenna in relation to each other, line of sight, multipath propagation, noise sources etc.

    If you already have a board, there's a couple of things you can do. First, you can adjust the radio output power, to try to achieve the range you want. If you are using a proprietary radio protocol you can adjust the radio output power with the TXPOWER hardware peripheral register. If you are using our softdevices you can use the sd_ble_gap_tx_power_set() API call. Do note that there are limitations to what output powers you can choose.

    The maximum range between two devices can be approximated with Friis propagation equation (for an introduction see this link) when you know transmitted power, antenna gains, and the requirement for minimum received power. Do note that this equation is based on free space propagation and it does not take things like multipath fading or obstructions into consideration. The environment your devices are in will affect the range you can achieve.

    Another way to affect range would be to adjust the bitrate of your transfer. Lower bitrates give the receiving system more time to make out the transmitted signal from noise, which results in longer range. In an environment with a lot of obstructions or noise, you could also transmit smaller packets, with a short connection interval. This way the system will not have to retransmit large amounts of data whenever a packet is lost, and packets are transmitted often.

    At short range, with few obstructions, you can go for larger packets and higher throughput.

    For adjusting throughput, you can look at the ble_app_att_mtu_throughput example in the examples->ble_central_and_peripheral->experimental folder.

    For adjusting the transmit power using the hardware peripheral registers see

    nRF51 reference manual, page 93, table 112: TXPOWER.

    nRF52832 PS, page 219, table 23.14.10: TXPOWER

    nRF52840 PS, page 274, table 22.14.10: TXPOWER

    For adjusting the transmit power using the BLE Softdevice call see the sd_ble_gap_tx_power_set function description at the Infocenter

    Best regards

    Jørn Frøysa

Reply
  • Hello Gillgen1

    Setting signals to achieve a specific range is a bit complicated, as there are many factors that affect this. Transmitter output power, matching between the transmitter amplifier and the antenna, matching between the receiver amplifier and antenna, antenna types, polarization of transmitting and receiving antenna in relation to each other, line of sight, multipath propagation, noise sources etc.

    If you already have a board, there's a couple of things you can do. First, you can adjust the radio output power, to try to achieve the range you want. If you are using a proprietary radio protocol you can adjust the radio output power with the TXPOWER hardware peripheral register. If you are using our softdevices you can use the sd_ble_gap_tx_power_set() API call. Do note that there are limitations to what output powers you can choose.

    The maximum range between two devices can be approximated with Friis propagation equation (for an introduction see this link) when you know transmitted power, antenna gains, and the requirement for minimum received power. Do note that this equation is based on free space propagation and it does not take things like multipath fading or obstructions into consideration. The environment your devices are in will affect the range you can achieve.

    Another way to affect range would be to adjust the bitrate of your transfer. Lower bitrates give the receiving system more time to make out the transmitted signal from noise, which results in longer range. In an environment with a lot of obstructions or noise, you could also transmit smaller packets, with a short connection interval. This way the system will not have to retransmit large amounts of data whenever a packet is lost, and packets are transmitted often.

    At short range, with few obstructions, you can go for larger packets and higher throughput.

    For adjusting throughput, you can look at the ble_app_att_mtu_throughput example in the examples->ble_central_and_peripheral->experimental folder.

    For adjusting the transmit power using the hardware peripheral registers see

    nRF51 reference manual, page 93, table 112: TXPOWER.

    nRF52832 PS, page 219, table 23.14.10: TXPOWER

    nRF52840 PS, page 274, table 22.14.10: TXPOWER

    For adjusting the transmit power using the BLE Softdevice call see the sd_ble_gap_tx_power_set function description at the Infocenter

    Best regards

    Jørn Frøysa

Children
No Data
Related