<?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>Multiple nexus nodes, and using I2C on a nexus node</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127298/multiple-nexus-nodes-and-using-i2c-on-a-nexus-node</link><description>Hello: 
 I am developing a board and shields based on nRF5340 (but this question is not really specific to nRF5340, it also applies to most other nRF5x chips). The main-board has 4 identical connectors, and I have defined a nexus node for each of the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 14 Mar 2026 15:24:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127298/multiple-nexus-nodes-and-using-i2c-on-a-nexus-node" /><item><title>RE: Multiple nexus nodes, and using I2C on a nexus node</title><link>https://devzone.nordicsemi.com/thread/563253?ContentTypeID=1</link><pubDate>Sat, 14 Mar 2026 15:24:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2555523c-3db1-44f9-bb86-61dd781e61c7</guid><dc:creator>ljking2</dc:creator><description>&lt;p&gt;Followup: by following the example at&amp;nbsp;&lt;a id="" href="https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/shields/st_b_lcd40_dsi1_mb1166"&gt;https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/shields/st_b_lcd40_dsi1_mb1166&lt;/a&gt;&amp;nbsp;I was able to get variants working.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I can now select which host connector the shield is connected to by accessing a variant. example: myshield_con1 or myshield_con2.&lt;/p&gt;
&lt;p&gt;since I now have variants, each one calling a different overlay, I can define in the overlay which connector is in use, then call a common .dtsi that is the same for all of the variants.&lt;/p&gt;
&lt;p&gt;similarly the nexus file can define several i2c different pinctrl sections and the shield overlay doesn&amp;#39;t need know where the i2c is connected on the processor, the&amp;nbsp; shield just needs to know which pinctrl to access. All of the cpu board connectivity information is hidden in the nexus file, the shields don&amp;#39;t need to know about the board wiring.&lt;/p&gt;
&lt;p&gt;example shield overlay:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define CONNECTOR mycpu_con2
#define I2C_DEFAULT i2c_con2_default
#define I2C_SLEEP i2c_con2_sleep
#include &amp;quot;myshield.dtsi&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I then use CONNECTOR, I2C_DEFAULT, and I2C_SLEEP in myshield.dtsi.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple nexus nodes, and using I2C on a nexus node</title><link>https://devzone.nordicsemi.com/thread/563252?ContentTypeID=1</link><pubDate>Sat, 14 Mar 2026 14:52:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:002b5795-a717-4803-a065-c774c68fa6fb</guid><dc:creator>ljking2</dc:creator><description>&lt;p&gt;I have figured out that the correct way to do this is with shield variants, Unfortunately....&lt;/p&gt;
&lt;p&gt;I am having difficulty getting shield variants to work. I read the documentation here &lt;a href="https://docs.zephyrproject.org/latest/hardware/porting/shields.html#shield-variants"&gt;docs.zephyrproject.org/.../shields.html&lt;/a&gt; . I have locally setup the directory `zephyr/boards/shields/myshield/`&amp;nbsp; with two files `myshield_v1.overlay` and `myshield_v2.overlay`, but I always get a compile error &amp;quot;Invalid SHIELD&amp;quot; when I add &amp;quot;--shield myshield_v2&amp;quot; to the west build command. myshield is in the list of shields to choose from, but the two variants are not. Is there something else I need to add (maybe a CMakeLists.txt?) to make shield variants work? I couldn&amp;#39;t find an example to copy.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple nexus nodes, and using I2C on a nexus node</title><link>https://devzone.nordicsemi.com/thread/562763?ContentTypeID=1</link><pubDate>Sun, 08 Mar 2026 09:36:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:70072c0d-7280-41cb-b8ec-476c51d90dcd</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;There is no documentation about passing a variable into a shield overlay to which nexus node it references.&lt;/p&gt;
&lt;p&gt;Shield variants (&lt;span&gt;[&lt;/span&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/hardware/porting/shields.html#shield_variants" rel="noopener noreferrer" target="_blank"&gt;Shield variants&lt;/a&gt;&lt;span&gt;])&amp;nbsp;&lt;/span&gt;documentation shows that s&lt;span&gt;ome shields may support several variants or revisions. In that case, it is possible to provide multiple versions of the shields description&amp;nbsp;each with its own overlay/defconfig, selected by&amp;nbsp;&lt;code dir="ltr"&gt;--shield &amp;lt;shield_v2&amp;gt;&lt;/code&gt;&amp;nbsp;etc.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Board compability (&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/hardware/porting/shields.html#board_compatibility" rel="noopener noreferrer" target="_blank"&gt;Board compatibility&lt;/a&gt;) shows how to configure shield per board (boards/shields/&amp;lt;shield&amp;gt;/boards/&amp;lt;board&amp;gt;*.overlay).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So, there both are static. There will be separate overlay for each case.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regarding&amp;nbsp;&lt;code dir="ltr"&gt;NRF_PSEL&lt;/code&gt;&amp;nbsp;for nexus node, nexus nodes is only used for GPIO specifiers. There is no information indicating that&amp;nbsp;&lt;code dir="ltr"&gt;NRF_PSEL&lt;/code&gt;&amp;nbsp;can use nexus nodes or that pinctrl&amp;nbsp;&lt;code dir="ltr"&gt;psels&lt;/code&gt;&amp;nbsp;can be resolved via a nexus mapping. You can read this documentation&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/sound-and-edge-computing-using-the-nrf-52-53#mcetoc_1gf8q17e56" rel="noopener noreferrer" target="_blank"&gt;Sound &amp;amp; edge blog&lt;/a&gt;;&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/hardware/porting/shields.html#gpio_nexus_nodes" rel="noopener noreferrer" target="_blank"&gt;GPIO nexus nodes&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;However, I will ask relevant team to get more insight. I will come back to you lately.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;BR&lt;br /&gt;Kazi&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></channel></rss>