<?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>Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/120801/connecting-a-zigbee-router-to-a-network-with-a-specific-pan-id</link><description>NRF52840DK NCS 2.8.0 Hello , We are developing an application where a device with router function must join a coordinator network. The coordinator uses OOB (proprietary IR) to transmit the parameters of the network it forms to the router (PAN Id, Extended</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 08 May 2025 11:52:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/120801/connecting-a-zigbee-router-to-a-network-with-a-specific-pan-id" /><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/534452?ContentTypeID=1</link><pubDate>Thu, 08 May 2025 11:52:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:13324b1c-a4f1-466b-a75b-a5cb48ae0395</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;&amp;nbsp;Hello,&lt;/p&gt;
&lt;p&gt;Thank you for your patience.&lt;/p&gt;
&lt;p&gt;Our internal discussions has led to some possible solutions for you, but note that the ways that are supported with nRF Connect SDK v2.8.0 are not able to select a suitable network based on PAN ID (or extended PAN ID).&lt;/p&gt;
&lt;p&gt;Here are the suggested options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use Install Codes (IC). This is most compliant with specification and provides the behaviour you want. However, it involves adding the IC to the coordinator. &lt;/li&gt;
&lt;li&gt;&lt;span&gt;Using production config. You can create a production config for ZR to pre-commission it and completely skip the joining procedure. But you will also need to bypass a TCLK key exchange on ZC and provide the related key to ZC.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Upgrade your ZR to use the &lt;a href="https://github.com/nrfconnect/ncs-zigbee/"&gt;Zigbee R23 add-on&lt;/a&gt;. It implements an &lt;a href="https://github.com/nrfconnect/ncs-zigbee/blob/main/lib/zboss/src/include/zb_bdb_preinst_nwk.h"&gt;API for pre-installed network parameters&lt;/a&gt;. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/533588?ContentTypeID=1</link><pubDate>Wed, 30 Apr 2025 13:44:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9d22563e-9513-4dc3-955f-c89263a14eda</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;Hello, &lt;/p&gt;
[quote user="Dmitriy B."]&lt;em&gt;&amp;quot;The node SHALL determine whether any suitable networks with a permit joining flag set to TRUE were found by analyzing the NetworkCount and NetworkDescriptor parameters. &lt;strong&gt;The decision regarding what constitutes a suitable network is application specific&lt;/strong&gt;&amp;quot;.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The application layer should be able to decide whether the network is suitable or not, do I understand correctly that the current Zigbee stack in the NRF Connect SDK does not comply with this chapter?[/quote]
&lt;p&gt;&amp;quot;Application specific&amp;quot; refers to the application itself, not the application &lt;strong&gt;layer&lt;/strong&gt;.&lt;/p&gt;
[quote user="Dmitriy B."]We are also considering the possibility of sending NLME-JOIN.request with the specified network parameters (ExtendedPANId) to the coordinator without performing the network discovery&amp;nbsp;procedure, since our OOB already reports all the necessary parameters for joining, this feature is also not available?[/quote]
&lt;p&gt;I&amp;#39;ll investigate some more on this as I don&amp;#39;t have the full picture at the moment. &lt;/p&gt;
&lt;p&gt;Just a heads up: there is a national holiday here in Norway tomorrow, so I may not be able to get back to you until Monday. &lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/533399?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 12:40:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:59435b4c-a889-41c8-b5ae-e0d4714f725b</guid><dc:creator>Dmitro Balo</dc:creator><description>&lt;p&gt;Thanks for your help, I would like to ask a few additional questions.&lt;br /&gt;&lt;br /&gt;According to the Base Device Behavior Specification, Chs.&amp;nbsp;8.3,&amp;nbsp; Network steering procedure for a node not on a network:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;&amp;quot;The node SHALL determine whether any suitable networks with a permit joining flag set to TRUE were found by analyzing the NetworkCount and NetworkDescriptor parameters. &lt;strong&gt;The decision regarding what constitutes a suitable network is application specific&lt;/strong&gt;&amp;quot;.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The application layer should be able to decide whether the network is suitable or not, do I understand correctly that the current Zigbee stack in the NRF Connect SDK does not comply with this chapter?&lt;br /&gt;&lt;br /&gt;We are also considering the possibility of sending NLME-JOIN.request with the specified network parameters (ExtendedPANId) to the coordinator without performing the network discovery&amp;nbsp;procedure, since our OOB already reports all the necessary parameters for joining, this feature is also not available?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/533385?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2025 12:02:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dee057b3-a983-417b-97fb-309bc692df84</guid><dc:creator>Marte Myrvold</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Maria is out of the office today, so I am handling this ticket until she returns.&lt;/p&gt;
&lt;p&gt;According to the developers, this functionality is not available in our current ZBOSS solution. If this feature is critical, I recommend &lt;span style="margin:0;padding:0;text-align:left;"&gt;contacting your &lt;a href="https://www.nordicsemi.com/About-us/Contact-Us" rel="noopener noreferrer" target="_blank"&gt;local sales representative&lt;/a&gt;&amp;nbsp;from Nordic Semiconductor.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="margin:0;padding:0;text-align:left;"&gt;Best regards,&lt;br /&gt;Marte&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/532807?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 11:41:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c94ec335-2fbe-4fec-af01-c27febcb14bc</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;Thank you for sharing your results. Our experts are on this, and I&amp;#39;ll check back in by end of Tuesday next week. &lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/532760?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 09:08:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fc17a67-761b-4be9-8c10-1b6237c864fd</guid><dc:creator>Dmitro Balo</dc:creator><description>&lt;p&gt;We also have our own application where we have already checked the work of the functions zb_set_extended_pan_id() and zb_set_pan_id() and got the same result as in the shell example.&lt;br /&gt;&lt;br /&gt;This is the code we use to set the PAN ID:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="c_cpp"&gt;{
    LOG_DBG(&amp;quot;Set PAN ID&amp;quot;);
	LOG_DBG(&amp;quot;Current PAN ID: %0X&amp;quot;, zb_get_pan_id());
	if (zigbee_is_stack_started()) {
		LOG_WRN(&amp;quot;Stack already started, no changed&amp;quot;);
		return;
	}
	if(zb_get_pan_id() == 0xFFFF){
		zb_set_pan_id(0x00AC);
	} else {
		LOG_WRN(&amp;quot;Device already has panid&amp;quot;);
	}
	LOG_DBG(&amp;quot;New PAN ID: %0X&amp;quot;, zb_get_pan_id());
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;His log is as follows:&lt;br /&gt;[00:00:09.202,239] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetPanIdReceived: Set PAN ID&lt;br /&gt;[00:00:09.202,270] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetPanIdReceived: Current PAN ID: FFFF&lt;br /&gt;[00:00:09.202,270] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetPanIdReceived: New PAN ID: AC&lt;br /&gt;&lt;br /&gt;It seems that the installation was successful, but after that our router still does not take this PAN ID into account when choosing the network to which it connects. We also noticed that after resetting the NRF, the PAN ID is again equal to 0xFFFF, i.e. it is not saved.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This is the code we use to set the Extended PAN ID:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;LOG_DBG(&amp;quot;Set extended PAN ID&amp;quot;);
zb_ext_pan_id_t extpanid;
zb_get_extended_pan_id(extpanid);
char ieee_addr_buf[IEEE_ADDR_BUF_SIZE] = { 0 };
int addr_len = ieee_addr_to_str(ieee_addr_buf, sizeof(ieee_addr_buf), extpanid);
LOG_DBG(&amp;quot;Current Extended PAN ID: %s&amp;quot;, ieee_addr_buf);

if (zigbee_is_stack_started()) {
	LOG_WRN(&amp;quot;Stack already started, no changed&amp;quot;);
	return;
}
if (zigbee_is_nvram_initialised()){
	LOG_WRN(&amp;quot;Zigbee stack has been configured in the past.\r\n&amp;quot;
	&amp;quot;Please disable NVRAM to change the Extended PAN ID&amp;quot;);
	return;
}
zb_ext_pan_id_t new_extpanid = { 0x99, 0xDB, 0xD3, 0xC2, 0xDE, 0x36, 0xCE, 0xF4 };
ieee_addr_to_str(ieee_addr_buf, sizeof(ieee_addr_buf), new_extpanid);
LOG_DBG(&amp;quot;Try to set Extended PAN ID: %s&amp;quot;, ieee_addr_buf);
zb_set_extended_pan_id(new_extpanid);
zb_get_extended_pan_id(extpanid);
addr_len = ieee_addr_to_str(ieee_addr_buf, sizeof(ieee_addr_buf), extpanid);
if (addr_len &amp;lt; 0) {
	strcpy(ieee_addr_buf, &amp;quot;unknown&amp;quot;);
}
LOG_DBG(&amp;quot;Check after zb_set_extended_pan_id: %s&amp;quot;, ieee_addr_buf);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;His log is as follows:&lt;br /&gt;[00:00:10.202,697] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetExtendedPanIdReceived: Set extended PAN ID&lt;br /&gt;[00:00:10.202,880] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetExtendedPanIdReceived: Current Extended PAN ID: 0000000000000000&lt;br /&gt;[00:00:10.203,125] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetExtendedPanIdReceived: Try to set Extended PAN ID: f4ce36dec2d3db99&lt;br /&gt;[00:00:10.203,338] &amp;lt;dbg&amp;gt; Zigbee_service: OnSetExtendedPanIdReceived: Check after zb_set_extended_pan_id: 0000000000000000&lt;br /&gt;&lt;br /&gt;We perform the operations to set PAN ID and Extended PAN ID before calling &lt;strong&gt;zigbee_enable().&amp;nbsp;&lt;/strong&gt;We also try to get the extended PAN ID after stack initialization (after calling zigbee_enable()) but we also get 00000000000000000&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/532740?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 07:51:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c863ee18-b4bc-4065-83e6-07797ff3b1f3</guid><dc:creator>Maria Gilje</dc:creator><description>[quote user="Dmitriy B."]We studied touchlink a little, and it really serves similar purposes as our OOB, but unfortunately our coordinator is a finished device with closed source code and it does not support touchlink.[/quote]
&lt;p&gt;I see, thank you for this information. &lt;/p&gt;
[quote user="Dmitriy B."]In a similar way, using shell example, we tried to set Extended PAN Id with the &lt;strong&gt;bdb extpanid&lt;/strong&gt; command, but we also did not get the required router behavior, it also connects to all networks. Also, after set bdb extpanid, the command to get the current extpanid always returns 00000000000000000, i.e. it is not actually used. If the bdb level prevents us from achieving the required behavior, perhaps we could use lower stack levels or disable bdb?[/quote]
&lt;p&gt;Could you also test out using &lt;a href="https://ncsdoc.z6.web.core.windows.net/zboss/3.11.5.0/group__zb__general__set.html#ga192e0a93686ff250fae63d2c8e42b59e"&gt;zb_set_extended_pan_id()&lt;/a&gt; and &lt;a href="https://ncsdoc.z6.web.core.windows.net/zboss/3.11.5.0/group__zb__general__set.html#ga5517656935285035d58dd1561e24a275"&gt;&lt;span&gt;zb_set_pan_id&lt;/span&gt;()&lt;/a&gt; for setting extended PAN ID and PAN ID? The bdb commands in shell and the API functions seem slighly different, so it is worth to check if it makes a difference to use the API functions instead. &lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/532500?ContentTypeID=1</link><pubDate>Wed, 23 Apr 2025 07:06:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:321df3cd-7579-461e-941c-1652cde68ae1</guid><dc:creator>Dmitro Balo</dc:creator><description>&lt;p&gt;Thank you for your reply, Maria&lt;br /&gt;&lt;br /&gt;We studied touchlink a little, and it really serves similar purposes as our OOB, but unfortunately our coordinator is a finished device with closed source code and it does not support touchlink.&lt;br /&gt;&lt;br /&gt;If we cannot use PAN ID to specify a specific network to connect to, perhaps we could use Extended PAN ID for this purpose? This is acceptable for our task.&lt;br /&gt;&lt;br /&gt;In a similar way, using shell example, we tried to set Extended PAN Id with the &lt;strong&gt;bdb extpanid&lt;/strong&gt; command, but we also did not get the required router behavior, it also connects to all networks. Also, after set bdb extpanid, the command to get the current extpanid always returns 00000000000000000, i.e. it is not actually used. If the bdb level prevents us from achieving the required behavior, perhaps we could use lower stack levels or disable bdb?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connecting a Zigbee router to a network with a specific PAN ID</title><link>https://devzone.nordicsemi.com/thread/532392?ContentTypeID=1</link><pubDate>Tue, 22 Apr 2025 13:51:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4934fa0b-26ac-4709-bd7f-ed496cb20fa9</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I have forwarded your question internally and I&amp;#39;ll get back to you when I get a reply. &lt;/p&gt;
&lt;p&gt;In the mean time, I will also share some initial thoughts:&lt;/p&gt;
&lt;p&gt;Using PAN ID as a criteria for finding a network suitable in the network steering procedure will require some changes on the appliation level. See Chs. 8.1 and 8.2 in the Zigbee PRO Base Device Behavior Specification, v3.0.1.&lt;/p&gt;
&lt;p&gt;Transmitting network data OOB seems similar to the touchlink commissioning procedure. Have you looked into that method? See Chs. 8.6 and 8.7 in the Zigbee PRO Base Device Behavior Specification, v3.0.1.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>