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

[ZIGBEE] ZED lost connection param data

SDK: 14.1.0

CHIP: nRF52840

CONFIG: ZIGBEE&BLE MULTI PROTOCOL

I wants to keep store zigbee pairing data after reset.

I setups like this.

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
zigbee_erase_persistent_storage(ERASE_PERSISTENT_CONFIG); // ZB_FALSE
zb_ret_t zigbee_default_signal_handler(zb_bufid_t bufid)
{
...
case ZB_ZDO_SIGNAL_SKIP_STARTUP:
NRF_LOG_INFO("Zigbee stack initialized");
comm_status = bdb_start_top_level_commissioning(ZB_BDB_INITIALIZATION);
NRF_LOG_INFO("initialized zb_bdb_is_factory_new(): %d\r\n", zb_bdb_is_factory_new());
...
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

After joining procedure, I reset my device with nrfjprog -r.

until zb_bdb_is_factory_new set 1, zb_bdb_is_factory_new  return 0. 

When I repeated 2~3 times, zb_bdb_is_factory_new is 1.

Zed fails to rejoin the network after that.

How can I fix it?

and Where I can check data structure used by zigbee stack?

attaching flash config in sdk_config.h

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// <e> FDS_ENABLED - fds - Flash data storage module
//==========================================================
#ifndef FDS_ENABLED
#define FDS_ENABLED 1
#endif
// <h> Pages - Virtual page settings
// <i> Configure the number of virtual pages to use and their size.
//==========================================================
// <o> FDS_VIRTUAL_PAGES - Number of virtual flash pages to use.
// <i> One of the virtual pages is reserved by the system for garbage collection.
// <i> Therefore, the minimum is two virtual pages: one page to store data and one page to be used by the system for garbage collection.
// <i> The total amount of flash memory that is used by FDS amounts to @ref FDS_VIRTUAL_PAGES * @ref FDS_VIRTUAL_PAGE_SIZE * 4 bytes.
#ifndef FDS_VIRTUAL_PAGES
#define FDS_VIRTUAL_PAGES 3
#endif
// <o> FDS_VIRTUAL_PAGE_SIZE - The size of a virtual flash page.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 

And I check After the steering is successful, the zb_bdb_is_factory_new() interface returns true

but I can't find "bdb_load_factory_new" function.