<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/48458/zb_nvram_write_dataset-writing-application-data-zigbee</link><description>Is there any code example for storing application data using the zboss stack? I have only found this: 
 
 There are two predefined dataset IDs for a user application: ZB_NVRAM_APP_DATA1 and ZB_NVRAM_APP_DATA2. It&amp;#39;s up to the application to decide what</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 26 Jun 2019 20:41:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/48458/zb_nvram_write_dataset-writing-application-data-zigbee" /><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/194965?ContentTypeID=1</link><pubDate>Wed, 26 Jun 2019 20:41:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:518175b6-066d-4401-a9b1-81de25e4013e</guid><dc:creator>tomchy</dc:creator><description>&lt;p&gt;Hi Armand,&lt;br /&gt;first of all, it is good to understand how does the ZB_NVRAM works and what are the design assumptions.&lt;/p&gt;
&lt;p&gt;The ZB_NVRAM works like some kind of a &amp;quot;log&amp;quot;. It stores predefined datasets with a version identifier one after another inside flash pages, reserved for the Zigbee stack. If you request to store the dataset, the stack does not perform erase cycle, but tries to append the never version of your dataset inside the free space of flash memory, with never version ID. The version ID, as well as page migration is fully managed by the stack and you do not have to care about them. This version-ID-enabled method of writing is used in order to prevent you from loosing a valid dataset value, once the device got reset while performing flash operation. In such case, your dataset will be restored from the last, correctly written state.&lt;/p&gt;
&lt;p&gt;The NVRAM logic is pretty straightforward. After the &amp;quot;zboss_start*&amp;quot; call, the stack reads the whole flash page and looks for the newest, valid version of each dataset. At this point, the read/load callback is called. The callback should store the read value inside the RAM using its own static/global variable.&lt;/p&gt;
&lt;p&gt;Afterwards, it is assumed that the application uses the static/global variable to perform changes or read dataset field values.&lt;/p&gt;
&lt;p&gt;Whenever needed, the application should call the &amp;quot;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.2"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.3"&gt;nvram&lt;/span&gt;_write_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.4"&gt;dataset&lt;/span&gt;(&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.5"&gt;ZB&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.6"&gt;NVRAM&lt;/span&gt;_APP_DATA*)&amp;quot; in order to store the newer version of dataset inside the flash. Keep in mind that every flash operation halts the CPU and consumes flash write cycles, so flushing every change may not be a good idea in all cases. Every call to the &amp;quot;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.2"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.3"&gt;nvram&lt;/span&gt;_write_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.4"&gt;dataset&lt;/span&gt;&amp;quot; triggers the write/store callback. The callback should get the static/global variable and use the OSIF NVRAM API to store its current value.&lt;/p&gt;
&lt;p&gt;If there is no user dataset stored inside the flash, the callback will not be called, so please remember to initialize the static/global variable with valid default values before calling &amp;quot;zboss_start*&amp;quot;.&lt;/p&gt;
&lt;p&gt;Getting back to your questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It is assumed that the data stored via write/store callback is always valid. The stack returns only a single dataset version and its integrity is verified by the stack (if a call to the flash after the user write/store callback succeed - the dataset version is marked as valid).&lt;/li&gt;
&lt;li&gt;I would suggest to check if the read/load callback was called before &amp;quot;ZB_BDB_SIGNAL_DEVICE_FIRST_START&amp;quot; or &amp;quot;ZB_BDB_SIGNAL_DEVICE_REBOOT&amp;quot; signals. That way you will be 100% sure that no valid dataset was present inside NVRAM during boot-up.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Code snippets to get started:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;static my_dataset_t m_my_dataset;

...

zb_uint16_t my_dataset_get_size(void)
{
    return sizeof(my_dataset_t);
}

zb_void_t my_dataset_load(zb_uint8_t page, zb_uint32_t pos, zb_uint16_t payload_length)
{
    zb_ret_t ret = RET_ERROR;

    if (payload_length == sizeof(my_dataset_t))
    {
        ret = zb_osif_nvram_read(page, pos, (zb_uint8_t*)&amp;amp;m_my_dataset, sizeof(my_dataset_t));
    }

    UNUSED_VARIABLE(ret);
    NRF_LOG_INFO(&amp;quot;Loading my dataset. Status: %d&amp;quot;, ret);
}

zb_ret_t my_dataset_store(zb_uint8_t page, zb_uint32_t pos)
{
    zb_ret_t ret;

    ret = zb_osif_nvram_write(page, pos, (zb_uint8_t*)&amp;amp;m_my_dataset, sizeof(my_dataset_t));

    NRF_LOG_INFO(&amp;quot;Storing my dataset. Status: %d&amp;quot;, ret);
    return ret;
}

...

zb_nvram_register_app1_read_cb(my_dataset_load);
zb_nvram_register_app1_write_cb(my_dataset_store, my_dataset_get_size);

...

zboss_start();&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And a small note, why the ZB_NVRAM is not the advised option:&lt;/p&gt;
&lt;p&gt;First of all, there are several modules inside the SDK that already implements this kind of functionality, so introducing a new one may lead to further confusion (one may think that if they use Zigbee, they have to use ZB_NVRAM, which is not true. The FDS module has been adopted to avoid address conflicts with ZB_NVRAM pages - look at the &amp;quot;FDS_VIRTUAL_PAGES_RESERVED&amp;quot; definition inside sdk_config.h file).&lt;/p&gt;
&lt;p&gt;The second thing is that if the user application will heavily use the ZB_NVRAM, the Zigbee flash pages migration will occur much more frequently, which may result in a shorter device lifetime. If the Zigbee network datasets cannot be updated, your device will loose its ability to communicate with the rest of the network due to incorrect values inside security header (your device will start to behave like a rogue node performing replay attack).&lt;/p&gt;
&lt;p&gt;The third argument is the fact, that you can specify only two types of datasets that the application may store. The size of the dataset cannot be changed over time. It is sufficient for simple cases, but a complex application will easily reach this limit.&lt;/p&gt;
&lt;p&gt;On the other hand, using ZB_NVRAM reduces the code size footprint, as this functionality is included, regardless the application code. Just please remember to reserve as many as possible flash pages if you are about to use it, so the migration process will not brick your device too fast (all parameters can be adjusted inside external/zboss/osif/zb_nrf52840_nvram.c file).&lt;/p&gt;
&lt;p&gt;I hope that my explanation has all information that you need or just want to ask for &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Tomchy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/194343?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2019 12:01:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4e100463-1d8a-43e5-b466-176af1a8ade8</guid><dc:creator>Ignacio</dc:creator><description>&lt;p&gt;How do I know if the data stored is valid or if the device just boot for the first time?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/194335?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2019 11:52:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6a209b0-2041-43c3-9737-a1aea88e86b1</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi again.&lt;/p&gt;
[quote user="Armand La Flent"]&lt;strong&gt;how is&amp;nbsp;read_thc_app_data_cb()&amp;nbsp; called?&lt;/strong&gt;[/quote]
&lt;p&gt;&amp;nbsp;It is called when the ZBOSS stack is started.&lt;/p&gt;
&lt;p&gt;I do still recommend that you use FDS for your project.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/194315?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2019 11:29:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5eda4856-3f57-4009-bb69-74526756c049</guid><dc:creator>Ignacio</dc:creator><description>&lt;p&gt;Thanks Andreas. Let&amp;#39;s see if we can clarify further how to read the data. In the example code&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.thread_zigbee.v3.0.0%2Fgroup__zboss__nvram.html&amp;amp;cp=5_3_5_1_8_10"&gt;here&lt;/a&gt;&amp;nbsp;and as you mention&amp;nbsp;reading is done by zb_osif_nvram_read() in the read_thc_app_data_cb(). To the function callback&amp;nbsp;&lt;span&gt;read_thc_app_data_cb() are parsed three parameters&amp;nbsp;(&lt;a class="code" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v3.0.0/group__base__types.html#gaa82a9657ef11a3947586065cf8066256"&gt;zb_uint8_t&lt;/a&gt; page, &lt;a class="code" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v3.0.0/group__base__types.html#ga964947a10fa0ad0bd6df7bd91ecfac9c"&gt;zb_uint32_t&lt;/a&gt; pos, &lt;a class="code" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v3.0.0/group__base__types.html#ga83793366ad4d54e8b65840d82a751498"&gt;zb_uint16_t&lt;/a&gt; payload_length). From my understanding it should be an app function that will trigger the system to call and parse the info to this callback. To sum up, &lt;strong&gt;how is&amp;nbsp;read_thc_app_data_cb()&amp;nbsp; called?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/194019?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2019 08:11:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:512992ac-edf0-4e7c-a5f7-b331d499f461</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi again.&lt;/p&gt;
[quote user="Armand La Flent"]I presume that future SDK releases will not bring the option of multiprotocol application to this device due to memory restrictions.[/quote]
&lt;p&gt;I think it wouldn&amp;#39;t be feasible to use multiprotocol in nRF52811 due to the FLASH and RAM size yes, but you can use FDS without using the SoftDevice.&lt;/p&gt;
&lt;p&gt;An example of FDS is found in &lt;code&gt;&amp;lt;InstallFolder&amp;gt;\examples\peripheral\flash_fds&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;FDS uses fstorage at the base, and neither require much code. The part that takes most space would be that you have to reserve two flash pages in order to use it.&lt;/p&gt;
[quote user="Armand La Flent"]Anyway I would also like to know how to read the nvram data using zb library. Is the current SDK version missing a&amp;nbsp;&amp;nbsp;&lt;span&gt;zb&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;nvram&lt;/span&gt;&lt;span&gt;_read_&lt;/span&gt;&lt;span&gt;dataset function?&lt;/span&gt;[/quote]
&lt;p&gt;&amp;nbsp;There is no &lt;strong&gt;zb_nvram_read_dataset&lt;/strong&gt; function, reading is done by &lt;strong&gt;zb_osif_nvram_read() &lt;/strong&gt;in the &lt;strong&gt;read_thc_app_data_cb().&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards, &lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/193738?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2019 15:49:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fd7d49a-a113-49d5-853d-1fccd0be6d37</guid><dc:creator>Ignacio</dc:creator><description>&lt;p&gt;Thanks Andreas. Yes I would like to be able to use the ZBOSS stack as I am planning to use the nRF52811 device. I presume that future SDK releases will not bring the option of multiprotocol application to this device due to memory restrictions.&lt;/p&gt;
&lt;p&gt;Is is possible to use FDS module while running ZBOSS stack? Is there any risk of collision or data storage misshandling?&lt;/p&gt;
&lt;p&gt;Anyway I would also like to know how to read the nvram data using zb library. Is the current SDK version missing a&amp;nbsp;&amp;nbsp;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.20"&gt;zb&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.21"&gt;nvram&lt;/span&gt;&lt;span&gt;_read_&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.22"&gt;dataset function?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/193551?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2019 07:33:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36513304-a3cb-435a-8ef5-a21011c81bd2</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Do you really need to use the ZBOSS stack? If yes I will give you more details.&lt;/p&gt;
&lt;p&gt;But if you don&amp;#39;t really need to use the ZBOSS stack to write to flash, I will recommend that you use the FDS module.&lt;/p&gt;
&lt;p&gt;It is an working example found in the multiprotocol example for the door lock (examples\multiprotocol\ble_zigbee\ble_zigbee_dynamic_door_lock_nus\) you can take a look at.&lt;/p&gt;
&lt;p&gt;And it is more documented than ZB_NVRAM:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Flib_fds.html&amp;amp;cp=5_1_3_55"&gt;FDS module&lt;/a&gt;,&amp;nbsp; &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fgroup__fds.html&amp;amp;resultof=%22%46%44%53%22%20%22%66%64%22%20"&gt;API reference&lt;/a&gt;, &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Flib_fds_usage.html&amp;amp;cp=5_1_3_55_3"&gt;Usage.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/193232?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 14:36:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2bec3af-ddc1-44d7-b24c-bcf1bb80617a</guid><dc:creator>Ignacio</dc:creator><description>&lt;p&gt;Hi Andreas,&lt;/p&gt;
&lt;p&gt;Thanks for pointing to the example. Somehow there is some doubts casting on my head:&lt;/p&gt;
&lt;p&gt;1. I am&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.1"&gt;supposing&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that when the application code calls&amp;nbsp;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.2"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.3"&gt;nvram&lt;/span&gt;_write_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.4"&gt;dataset&lt;/span&gt;(&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.5"&gt;ZB&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.6"&gt;NVRAM&lt;/span&gt;_APP_DATA1) the&amp;nbsp;&lt;/p&gt;
&lt;p&gt;write&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.7"&gt;cb&lt;/span&gt;&amp;nbsp;read_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.8"&gt;thc&lt;/span&gt;_app_data_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.9"&gt;cb&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is called back and the data is stored through&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.10"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.11"&gt;osif&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.12"&gt;nvram&lt;/span&gt;_write(page,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.13"&gt;pos&lt;/span&gt;, (&lt;a class="gmail-code" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.thread_zigbee.v3.0.0/group__base__types.html#gaa82a9657ef11a3947586065cf8066256"&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.14"&gt;zb&lt;/span&gt;_uint8_t&lt;/a&gt;*)&amp;amp;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.15"&gt;ds&lt;/span&gt;,&amp;nbsp;&lt;span class="gmail-keyword"&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.16"&gt;sizeof&lt;/span&gt;&lt;/span&gt;(&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.17"&gt;ds&lt;/span&gt;)). Is that correct?&lt;/p&gt;
&lt;p&gt;2. Now it is required to read the data back. I have defined the&amp;nbsp;read_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.18"&gt;thc&lt;/span&gt;_app_data_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.19"&gt;cb&lt;/span&gt;. How is that function triggered? I cannot see any&amp;nbsp;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.20"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.21"&gt;nvram&lt;/span&gt;_read_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.22"&gt;dataset&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;function declared.&lt;/p&gt;
&lt;p&gt;3. Finally. Let suppose I would like to read the data after a power cycle. Relevant info required to read the data from&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.23"&gt;nvram&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;will not be available on ram variables(page,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.24"&gt;pos&lt;/span&gt;) as they have been reset. Are we missing a&amp;nbsp;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.25"&gt;zb&lt;/span&gt;_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.26"&gt;nvram&lt;/span&gt;_read_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.27"&gt;dataset&lt;/span&gt;&amp;nbsp;that will will trigger the&amp;nbsp;read_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.28"&gt;thc&lt;/span&gt;_app_data_&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.29"&gt;cb&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and pass the correct&amp;nbsp;(page,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="J-JK9eJ-PJVNOc" id=":1d6.30"&gt;pos&lt;/span&gt;) data?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: zb_nvram_write_dataset writing application data zigbee</title><link>https://devzone.nordicsemi.com/thread/192562?ContentTypeID=1</link><pubDate>Thu, 13 Jun 2019 07:17:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:640e003f-bcca-4e23-8a72-bb393c3a3ec6</guid><dc:creator>AndreasF</dc:creator><description>&lt;p&gt;Hi Armand.&lt;/p&gt;
&lt;p&gt;Could you take a look &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.thread_zigbee.v3.0.0%2Fgroup__zboss__nvram.html&amp;amp;cp=5_3_5_1_8_10"&gt;here&lt;/a&gt;, at the bottom of this page is some examples.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>