The manufacture data in the Ble advertisement was abnormal.

example:ble_app_uart + secure_bootloader
sdk:17.1

hello.
Well, a strange phenomenon occurred when I was testing the connection between our ble device and the app。

Our app uses p_manuf_specific_data to identify whether to connect.

So we call advertising_init () first and then call  ble_advertising_start(&m_advertising, BLE_ADV_MODE_FAST)
to start advertisment.



Then we change the value of m_manuf_specific_data.company_identifier during program work by calling LL_BLE_SetManu(0x0d0d) or LL_BLE_SetManu(0x0f0f)

As a result, all of them are working properly. But when I reboot the device, the company_identifier changes in a strange way.

When I boot up normally, call advertising_init () first, then call LL_BLE_SetManu(0x0d0d) .company_identifier will be setting to 0x0d0d finally.
At this time, I turned the device off for entering sleep, and then turned it back on, so that he called advertising_init () first, and then called LL_BLE_SetManu(0x0f0f) .

company_identifier will change as strange as in the video,I don't know why 0x0d0d appears and don't want it to appear, will the adv data be stored in flash?

What can I do to prevent 0x0d0d from reconnecting my device to my app?


Looking forward to your reply. Thank you

  • Hi,

    We're currently short on staff,

    Therefore, please be patient with us as we work with answering your questions,

    regards

    Jared 

  • Hi,

    When I boot up normally, call advertising_init () first, then call LL_BLE_SetManu(0x0d0d) .company_identifier will be setting to 0x0d0d finally.
    At this time, I turned the device off for entering sleep, and then turned it back on, so that he called advertising_init () first, and then called LL_BLE_SetManu(0x0f0f) .

    company_identifier will change as strange as in the video,I don't know why 0x0d0d appears and don't want it to appear, will the adv data be stored in flash?

    What can I do to prevent 0x0d0d from reconnecting my device to my app?

    I don't get it, wouldn't you expect 0x0d0d to be set when it does a reset? You say that you set 0x0d0d initially after a reboot, so that it appears would be expected? 

    adv data will not be stored in flash unless you set it explicitly. 

    regards

    Jared 

  • Hi Jared.

    At this time, I turned the device off for entering sleep, and then turned it back on, so that he called advertising_init () first, and then called LL_BLE_SetManu(0x0f0f) .

    I mean: why does 0x0d0d appear? The right change should be 0x0101 (call advertising_init () )first,then be 0x0f0f(call LL_BLE_SetManu(0x0f0f) ).

    0x0d0d should not appear in the beginning,it's not the company_identifier I wanted.
    I didn't call 0x0d0d the second time I started, but it came up and it confused me

    best regard
    kenyon

  • Hi,

    So you 0x0d0d should only appear after a reset, but not when you wakeup from sleep. Then it should be 0x0101, and then 0x0f0f? 

    Did I understand you correctly?

    regards

    Jared 

  • Hi
    Jared.
    I think you got the wrong idea because I wasn't clear.

    Let me write the whole process down.

    The video aboved can refer to the call order in the red box.
    I hope this helps you understand my problem.

    best regard
    kenyon

Related