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

Mesh serial firmware can not control the node after reset, until the node reset again

I use the NRF Mesh SDK v2.2.0

- EVB PCA10040 burn the serial example

- EVB PCA10056 burn the light server example

- PCA10040 attach to the Raspberry Pi 3 via USB for running the PyACI

After provisioning the PCA10056 (light server), then I can control on/off with PyACI. But after I reset hard the PCA10040 (serial), running the PyACI again I can not control the PCA10056 until trying to send many times or reset the PCA10056 (light server)

I also try with NRF Mesh SDK v3.0.0, but it's same problem.

Any one have same problem? Can tell me how I do fix it?

Parents
  • Hi,

    How do you hard reset the PCA10040 and PyACI, and what do you do for getting it up and running again? And for provisioning, are you just following Interactive mesh provisioning and configuration?

    I suspect it may have to do with sequence numbers. Each node uses a strictly increasing sequence number for each new message it sends out, in order to protect against replay attacks. This means the node has to keep track at all times of what is the highest sequence number it has used thus far. This is handled for other nodes, but I am not quite sure what happens for the PyACI node if it abruptly is shut down or the serial link is lost.

    Regards,
    Terje

  • Thanks for your reply. For PyACI, I quit the interactive PyACI then press the reset button on PCA10040 to swipe out all keys and run PyACI again at beginning (load database, run Provisioner to load keys, setup GenericOnOff to control the node provisioned previously). To get it work again, I only press the reset button on the node (PCA10056) and can control on/off from PyACI.

    Maybe it's the sequence number, because after I send the on/off command many times patiently, it works again. How I keep the sequence number for PyACI? Any way to reset the sequence number from the PCA10040

  • Hi,

    I can now confirm that it is because of the sequence number not being stored. We want to fix this by adding an API for setting the sequence number, but that is not yet implemented and I am not quite sure when we plan to do it. Would it be an acceptable workaround for now to rely on resetting the other board?

    Regards,
    Terje

  • Hi Hai and Tesc, we are also experiencing this problem. Unfortunately for us, it's not possible to hard reset all the deployed nodes if the serial device is reset. This is definitely a significant blockage for moving our mesh system into deployment.

    Is there any update on whether the fix for this has been proposed and if so when will it be added?

    Many Thanks,

    Tim

Reply
  • Hi Hai and Tesc, we are also experiencing this problem. Unfortunately for us, it's not possible to hard reset all the deployed nodes if the serial device is reset. This is definitely a significant blockage for moving our mesh system into deployment.

    Is there any update on whether the fix for this has been proposed and if so when will it be added?

    Many Thanks,

    Tim

Children
Related