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

BLE long range is not working steadily

Dear community,

I'm using BM833A chips which contains a nRF52811 nordic chipset. I use a S140 softdevice, for both, beacon sender and central.

I have configured both to use coded phy, the sender repeating it's beacon each second (this has been tested and verified with similar settings i 1Mbit mode).

I also receive these beacons in the central, but it seems I drop beacons.

Now I read:

https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.api.v6.1.1%2Fgroup___b_l_e___g_a_p___f_u_n_c_t_i_o_n_s.html

For function: sd_ble_gap_scan_start

The scanner will automatically stop in the following cases:

(...)

If a BLE_GAP_EVT_ADV_REPORT event is received with ble_gap_adv_report_type_t::status set to BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA, the scanner will continue scanning, and the application will receive more reports from this advertising event. The following reports will include the old and new received data.

I tried to get a configuration, where the scanner continues scanning, but following the instructions in further documentation, I failed:

#define BLE_GAP_ADV_DATA_STATUS_INCOMPLETE_MORE_DATA   0x01

More data to be received.

Note
This value will only be used if ble_gap_scan_params_t::report_incomplete_evts and ble_gap_adv_report_type_t::extended_pdu are set to true.

When I set ble_gap_scan_params_t::report_incomplete_evts to true, the Firmware failed reporting to be "weak".

Maybe you can assist at this point and tell me, what to configure to get a smooth, continuous sanning.

Best regards,

Richard

Parents
  • Hi Sigurd,

    Yes, I set the ble_gap_scan_params_t::timeout to 0. The interval and window are both set to 160, which works in normal 1MBit mode to see a continuous beacon reception.

    By stating, that I drop beacons, I meant, that I have a BLE sender that emits a beacon every second; so I'd expect the scanner to report a received beacon once every second - and it does in 1Mbit mode. But when I switch to phy-code, I sometimes see beacon reception pausing for some seconds.

    Best regards,

    Richard

  • Hi,

    It cannot be guaranteed that you pick up all beacon packets, regardless of PHY. 

    Even if scan interval==scan window, there is a chance that the packet is sent when the radio is busy switching to a new channel to scan on. For Coded PHY, the packet takes longer to send (each data bit is represented 8 symbols), so it could be more effect by this than 1M PHY.  You also have RF interference, and that the radio could be busy processing other beacon packets it might be receiving at the same time.

Reply
  • Hi,

    It cannot be guaranteed that you pick up all beacon packets, regardless of PHY. 

    Even if scan interval==scan window, there is a chance that the packet is sent when the radio is busy switching to a new channel to scan on. For Coded PHY, the packet takes longer to send (each data bit is represented 8 symbols), so it could be more effect by this than 1M PHY.  You also have RF interference, and that the radio could be busy processing other beacon packets it might be receiving at the same time.

Children
No Data
Related