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.

  • 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

  • I am using Mesh SDK v5.0.0, and nrf5 SDK v17.0.2 

  • As an update, I was able to get the server to provision and receive messages from the client node after disabling MESH_FEATURE_FRIEND_ENABLED in nrf_mesh_config_app.h, as was described in this recent post

    Seems to have fixed the issue, but it looks like this could be a bug with this version of the SDK.

  • Hello again Stiv,

    Great that you found the workaround. There is an issue with instaburst that limits the amount of roles you can use. This results in instaburst not working on the light switch server, as that uses the friend role. The light switch client however does not.

    You can disable the friend role and continue with the propriatary Instaburst feature, though what I would recommend is to drop it and move to NCS if your use-case allows you to. 

    Regards,

    Elfving

Reply
  • Hello again Stiv,

    Great that you found the workaround. There is an issue with instaburst that limits the amount of roles you can use. This results in instaburst not working on the light switch server, as that uses the friend role. The light switch client however does not.

    You can disable the friend role and continue with the propriatary Instaburst feature, though what I would recommend is to drop it and move to NCS if your use-case allows you to. 

    Regards,

    Elfving

Children
No Data
Related