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

Extended Adverts, AUX Ptr and the 'Aux Offset' value

Hi

SDK v15.2.0
SD 6.1.1

I have managed to send out "Connectable, Non-Scannable" extended adverts with some AD packets as payload.

On a frontline sniffer as per the file attached I can see that the device sends ADV_EXT_IND on the 3 primary channels and then the AUX_ADV_IND.

For example, frames 1104,1105,1106 and 1107 respectively.
At frame 1107 we see the payload in the AUX_ADV_IND.

In frame 1104 we see that the Aux Offset=0x0093 which gives a calculated offset of 4410us

In frame 1105 the calculated offset is 2490us

In frame 1106 the offset is 1470us

At frame 1107 we see that Delta is 00:00:00.001498

All good :-)

Question, who decided that the offset was going to be 4410 us from the first advert?

The spec allows it to be any value hence I would have expected it to be a value that I could set but when I look at the ble_gap_adv_params_t struct, I cannot see anything there that describes that aux offset value.

In fact, it seems the specification allows multiple advert events to point to the same AUX_ADV_IND packet which could be many 10s of seconds in the future.

I think I missing this little piece of information to get to my 'aha' moment :-)

Look forward to hearing from you.

Kind regards
Mahendra

lecoded_adverts.zip

  • Hello Mahendra,

    I am not too familiar with the sniffer that you used to attach the trace, and hence, I don't think I understand your question. 

    You are asking about some offsets. Are these offsets the time between the advertising packets? So one time offset is 4410 µs, one is 2490µs and one is 1470µs. Are you asking why one of the offsets is 4410µs?

    Is it possible to provide another sniffer trace? Either using the nRF Sniffer trace (.pcapng file) or Ellisys (.btt file).

    Where is the 4410µs offset from? Is it the time between the advertising packet on channel 39 and advertising channel on channel 37?

  • Hi
    The sniff trace is from the Frontline SoderaLE and you can download the free viewer from frontline.com.

    I cannot provide the nRF Sniffer trace because I have been told by Nordic that it is not capable of capturing extended adverts.

    Anyway, what I have is three ADV_EXT_IND packets in the three primary advert channels.
    That new advert pkt type contains the CEAP payload which has the AuxPtr field which has a time value that tells the scanner when the AUX_ADV_IND will be sent on the secondary channel. That time value is called AuxOffset.

    That time value can be up to about 2.5 seconds later (from memory - I have not rechecked, but I recall reading a value of about 250000 microseconds and I presume that it was with 30us units).

    The  AuxPtr field also provide which channel and phy it will appear in. See 5.0 or 5.1 spec and look for the CEAP section.

    CEAP= Common Extended Advert Payload.

    Anyway given that the AuxOffset time specifies that time. I cannot see any way to set it when I call the function to start adverts.

    At the moment the softdevice just seems to have plucked the 4410 us out of thin air :-)
    Why that value specifically?

    BTW: The times are 4410/2490/1470 in the three primary advert because they happen one after the other and so to point to an anchor point for the AUX_ADV_IND in the future it necessarily needs to decrease the time which is supposed to be calculated from the start of the packet containing that time.

    I hope I explained the issue.

    Thank you for responding.

    Kind regards
    Mahendra


  • Mahendra Tailor said:
    I cannot provide the nRF Sniffer trace because I have been told by Nordic that it is not capable of capturing extended adverts.

     That is correct.

    Thank you for explaining. I believe I understood your question now. I am not sure exactly where this is set, or if it is possible to change or not. Let me check with our SoftDevice team, and get back to you.

    Best regards,

    Edvin

  • That was quick. 

    So yes, the Aux offset is set to a fixed value in the softdevice, but it is not possible to access/change this from the application, unfortunately.

    Best regards,

    Edvin

  • Thank you for getting back.

    I am not too bothered that it cannot be set. I fully understand that Extended Adverts is work in progress and complex.

    However can you please ask the team, why that specific value of around 4400us? 
    (Which is well withing the minimum advert interval of 20ms so I can sort of understand it being 4.4ms) 

    And as importantly is it a fixed value or some function of the Advert Interval?

    I hope you accept it is a reasonable request for information :-)

Related