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

BLE Scan Packet Receive Latency When Done Along Side Mesh.

Hi,

Scenario:  Scanning  non mesh BLE packet with different stacks.

H/W Device -  nRF52DK

Observation:

Case 1. Non Mesh BLE Stack (Soft device):: Here able to receive scan packets in less than 1 sec interval.

Case 2. Mesh stack device                          : Here the scan packets are received around 10 to 15 secs of interval..

Is this expected behavior in mesh stack? Is there any way to decreases the latency between the reception of scan packets when done along with mesh?

Note: There is no difference in the advertisement frequency/packet in both the cases.

  • Hmm, that's a shame, as i would like to be able to actively scan and listen to the mesh all the time.

    Is this a feature that might be implemented later?

  • Hi,

    For details on future plans and roadmaps, please contact our Regional Sales Manager for your area. If you do not know who that is, please create a private ticket or send a private message and we will provide you with the contact details.

    Regards,
    Terje

  • Righto, will do. And if i were to add it myself, where would i start? Can i add scan requests to the mesh code? Or is there a way to let the scanner callbacks, call a function of the mesh that handles scanned advertisements?

  • Hi,

    The problem is that if you start modifying the mesh stack, in this case the link layer, it will no longer be covered by the qualification we have done and so you must do those qualifications yourself (which costs both time and money.) So the ideal situation is if you can either do with the current stack (taking a loss in latency and throughput) or if we add active scanning to the stack.

    There are mainly two things required for active scanning:

    1) The stack must provide both advertisement packets and scan response packets to the application. It does provide advertisement packets, but I am not sure if it does the same for scan response packets. If it doesn't then you must alter the stack. Also it requires listening on the correct channel.

    2) You must send a scan request whenever you receive a scanable advertisement. You might be able to do that from the application (through the callback function) but you need to get the timing right and use the correct channel. You also need access to the radio peripheral for this, which I doubt is possible with current SoftDevices as you can only have one user of timeslots (and that user will be the mesh stack.) So basically that means the implementation must be done within the mesh stack.

    Regards,
    Terje

  • I do get scan response but the scan is not consistent and the delay is over 5 seconds between packets.

Related