Scan Response

I have some questions about the scan response packet.

  1. Can a scan response be sent with a peripheral that is configured to be connectable? IE not a beacon.
  2. I read that if the the scan response contains manufacture specific data this data should be static? I can choose to make some of this data dynamic, like device status, correct?
  3. Are there an examples in the SDK which demonstrate the use of a scan response?

Thanks in advance, Darren

    1. Yes - the scan response is more usually used in things which are connectable than aren't, but either works.

    2. I don't know where you read that, it's not true, you can change every piece of data in the adverting and scan response on a constant basis if you like, have a scan response, not have one later. Whether the device scanning you manages to handle and report all those changes is up to the device scanning you.

    3. possibly not - but it's trivial - just encode the scan response in the same way you encode the advertising data and then add the encoded data to the p_sr_data and srdlen of the sd_ble_gap_adv_data_set(). Or if you're using the Advertising and Scan Response encoder library, one layer higher, the unencoded data into the last argument of ble_adv_data_set(), p_srdata, if if you're using the entire advertising module, ble_advertising_init() with a non-NULL p_srdata second paramter.

  • RK,

    Thanks for the reply! One final question if I am using the manufacturing specific data then SIG states that the company identifer be the first 2 octets correct?

  • it does so state. Nothing forces you to actually do that but in generally it's recommended that you do, especially if you ever want it to be a 'real product' or use it with any kind of standard scanning central which will read and interpret those two bytes as the manu id.

  • Can you provide some code, please?

  • How to setup a scan response is included in this tutorial.