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

How to unprovision nrf Mesh DK board using the hardware?

Hello, 

I am using nrf52832 with nrf Mesh DK. Is there a way to unprovision the board from the hardware  or command line and not from the app?

Many thanks in advance ,

Rp

  • Hi Rp, 

    In our app when you click remove node, we will send a "Node Reset" 0x8049 message to the client server on the node to reset the node. 

    In the nRF52 code you can find the code to handle that message in handle_node_reset(); and node_reset().

    If you want to reset a node locally, you can also call node_reset() in your code, either trigger by hardware or command line (if you have an interface).

    Note that, this won't tell the provisioner to remove the node itself. I don't think there is a way a node can notify that it's leaving the network. But you can always define your own protocol to do so. 

  • This is clear. I want to know is there a button on a board which can unprovision the board?And how will I come to know about this?

  • Hi Raulp, 

    Have you checked the node_reset() function I pointed to ? It's located in main.c in the lightswitch server example .

  • yes  its like : 

      node_reset> mesh_stack_device_reset> device_reset> hal_device_reset

    void hal_device_reset(uint8_t gpregret_value)
    {
    #if defined(SOFTDEVICE_PRESENT)
    (void) sd_power_reset_reason_clr(RESET_REASON_MASK); /* avoid wrongful state-readout on reboot */
    #if defined(S130) || defined(S110)
    (void) sd_power_gpregret_set(gpregret_value);
    #elif defined(S132)
    (void) sd_power_gpregret_set(gpregret_value, RESET_REASON_MASK);
    #endif
    (void) sd_nvic_SystemReset();
    #else
    NRF_POWER->RESETREAS = RESET_REASON_MASK; /* avoid wrongful state-readout on reboot */
    NRF_POWER->GPREGRET = gpregret_value;
    NVIC_SystemReset();
    #endif
    NRF_MESH_ASSERT(false);
    }

    So as per this , power reset (from the hardware) will unconfigure the device? Plz elaborate.

    Br,

    Rp

  • Hi Raul, 

    My mistake, the node_reset() only restart the node (CPU reset) not erasing the provisioning data. 

    Provisioning data can be erased using mesh_stack_config_clear()  ( this is what used in handle_node_reset -> apply_reset() ) 
    You can refer to button 3 handler in button_event_handler() in light switch server. 

    No, power reset won't unconfigure the device. 

Related