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

Mutiactivity beacon Timeslot packet loss

Hi,

* (i'am using sdk14.2 ans S140 V5.0.2)

i'am trying to inegrate a beacon application to my ble_uart example, so my purpose is to advertise ibeacon pachet format only

when i'am connected, then i found an example in SDK11 (multiactivity beacon  "advertiser_beacon_timeslot.c)  using Timeslot API, and after after

doing some changes to megrate to SDK14.2, i finally successed to do my example, and when i'am connected the i can see with NRF Connect the beacon advertisement,

well, it is fine, but after analysing the received packets, i notice that many packets are lost,

Some explanation: 

i configuered the adv_interval to 1000 ms, so , i must receive one packet per second and 1000 packets after 1000 seconds (or close to 1000 packets beacause i know that some 

packets will be lost) but in my case after 1000 seconds i received only 662 packets, and that is too much  packet loss, i use a BLE dongle to scan and capture the BLE packets, here a figure of what i have received .

You can notice that the ADV_INTERVAL changes every 2 or 3 received packets, and i have no idea why it changes.

any one have an idea why this packets loss (may be a configuration of the radio, or Sofdevice parameters or something else ...)?

thanks,

regards

Parents
  • Hi,

    I suspect that the reason you are missing packets and seeing changes in ADV_INTERVAL is caused by using the Radio Timeslot API and that modifications are made in the different slots.

    It should not be required to use the Radio Timeslot API for your application. An optional, and perhaps simpler, approach would be something like this:

    1. Advertise your connectable UART advertisement packet
    2. User connects (connected event is fired)
    3. Re-start advertising with non-connectable iBeacon advertising data whilst you are in connection

    You would also have to make sure that when the link is disconnected (disconnected event) that you restart with your connectable advertisement.

    I would recommend that you combine the ble_app_uart and ble_app_beacon examples from SDK 14.2.

    Ketil

Reply
  • Hi,

    I suspect that the reason you are missing packets and seeing changes in ADV_INTERVAL is caused by using the Radio Timeslot API and that modifications are made in the different slots.

    It should not be required to use the Radio Timeslot API for your application. An optional, and perhaps simpler, approach would be something like this:

    1. Advertise your connectable UART advertisement packet
    2. User connects (connected event is fired)
    3. Re-start advertising with non-connectable iBeacon advertising data whilst you are in connection

    You would also have to make sure that when the link is disconnected (disconnected event) that you restart with your connectable advertisement.

    I would recommend that you combine the ble_app_uart and ble_app_beacon examples from SDK 14.2.

    Ketil

Children
Related