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

Mesh device restart,return "Mesh assert at 0x00032A60(:0)"

SDK : Mesh 2.1.1

IDE : SES

I have a node.

After this node provisioned the mesh network,I change this node model publish address by local.

then I restart this node, returning "Mesh assert at 0x00032A60(:0)".

I use debug mode step to step check error.

I find error is mesh_stack.c #104 dsm_flash_config_load(); => device_state_manager.c #1238 flash_load() NRF_MESH_ASSERT(type < DSM_ENTRY_TYPES);

How I can fix this error?

Parents
  • Hi,

    What do you mean by "I change this node model publish address by local"? (Can you explain more about what you do, and how?)

    Note that there has been some updates and bugfixes to the nRF5 SDK for Mesh since version 2.1.1, and so I would recommend you to use the newest version instead (currently v3.1.0) where the issue that you see might have been fixed.

    Regards,
    Terje

  • I have one non provisioner function node,then this node has provisioned to network.

    I want to change the node publish address like this question.

    I'm use this code to change local publish address.

     

    static uint32_t set_model_publish_address(
        uint16_t publish_address, access_model_handle_t model_handle)
    {
        uint32_t status = NRF_SUCCESS;
        dsm_handle_t publish_address_handle = DSM_HANDLE_INVALID;
    
        access_model_publish_address_get(model_handle, &publish_address_handle);
        NRF_MESH_ASSERT(dsm_address_publish_remove(publish_address_handle) == NRF_SUCCESS);
    
        status = dsm_address_publish_add(publish_address, &publish_address_handle);
        if (status != NRF_SUCCESS)
        {
            return status;
        }
        else
        {
            return access_model_publish_address_set(model_handle, publish_address_handle);
        }
    }

    Finally, I don't want to change newest SDK, then fixing this error in SDK 2.1.1.

    Thank you.

  • We strongly suggest you to move to SDK v3.x. SDK v2.x is pretty old and limited. 

    Could you check which address type you have (in the assert NRF_MESH_ASSERT(type < DSM_ENTRY_TYPES); ) 

    I suspect when you add the address the address type was not correct.

    Have you tried to test without PERSISTENT_STORAGE = 1 ? 

  • How can I check address type?

    What is the purpose of PERSISTENT_STORAGE?

    Thank!!!

Reply Children
Related