Instaburst on Light Switch Example

Hi,

So I'm working on modifying the light switch example to send a larger payload on button press than just the boolean on_off value that's normally sent. I followed this thread to do so (https://devzone.nordicsemi.com/f/nordic-q-a/39896/modifying-the-light-switch-example-mesh-sdk-2-2-0/155733#155733), and have gotten the setup to send a 64-byte char payload from the client board (nRF52833) to the server board (nrf52840). I am using the nRF Mesh app on my iPhone to provision the devices.

Now, I have set a -DEXPERIMENTAL_INSTABURST_ENABLED=ON flag to rebuild the client and server projects, so as to enable instaburst. My hope is that I will be able to send this payload more quickly/with fewer packets sent. I realize this example was not necessarily meant for this, but I would love to get it working as so. When I flash the build onto the client node, it seems to function properly (I can detect the node in the nRF Mesh app, provision it, etc.). However, when I try to flash it onto the nrf52840 server board, the four LEDs remain on constantly (not sure what this means), and I am unable to detect it in the app.

I also tried to just use the instaburst feature on the client and not the server, and while it seemed to properly bind the publication in the app, I cannot send any messages between the client and server boards (I confirm this by the light on the server turning on when I press button 1 on the client, as well as through JLink RTT).

Any help or ideas would be appreciated, thank you.

Parents
  • Hello again! Sorry about the delay.

    However, when I try to flash it onto the nrf52840 server board, the four LEDs remain on constantly (not sure what this means), and I am unable to detect it in the app.

    That can be an assert of some kind. Could you check the log after flashing?

    I also tried to just use the instaburst feature on the client and not the server, and while it seemed to properly bind the publication in the app, I cannot send any messages between the client and server boards

    I believe you would have to use Instaburst on the entire network if you plan to use it on any of the nodes, so it would make sense if that didn't work.

    Best regards,

    Elfving

  • Hi sorry for getting back so late, but I tried what you recommended, and got the following error log in RTTViewer: 

    <t: 0>, main.c, 367, ----- BLE Mesh Light Switch Server Demo -----
    <t: 13113>, main.c, 323, Initializing and adding models
    <t: 13116>, main.c, 177, App OnOff Model Handle: 2
    <t: 13119>, main.c, 182, App DTT Model Handle: 3
    <t: 13123>, main.c, 188, App Scene Model Handle: 5
    <t: 13153>, app_error_weak.c, 105, Mesh assert at 0x00036FFC (:0)

    I looked at line 105 in app_error_weak.c, and it seems that it's an assert caused by NRF_FAULT_ID_SDK_ASSERT.

    Not sure how to proceed here, but it seems like there is something wrong with the SDK? I haven't modified it at all since downloading it, and it seems odd as the example seemed to work on the 52833 DK client. 

    Thanks again for your help.

  • Hello Stiv, no worries.

    I agree it would be strange if it completely worked on one and not the other, though something in the stack broke here. This might be a silly suggestion, but did you remember to re-run CMake when you added instaburst configuration?

    I'll see if I can reproduce this over the weekend.

    Best regards,

    Elfving

  • Sorry for the late reply, but yes, I did make sure to re-run CMake after changing to the instaburst configuration. I was wondering if you had any update on your end, or if you were able to reproduce the problem?

  • stivberb said:
    Sorry for the late reply

    Hehe likewise,

    I believe I am getting a similar issue now. What Mesh SDK version are you using?

    Best regards,

    Elfving

Reply Children
Related