<?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>How to Separate Logging and Serial Communication on Different VCOMs (nRF5340)</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119353/how-to-separate-logging-and-serial-communication-on-different-vcoms-nrf5340</link><description>I am using the board nRF5340 Soc , which by default exports two VCOM ports via the J-Link OB debugger . Currently: 
 
 VCOM1 (UART0) is used for both logging and serial communication by default. 
 VCOM2 mainly logs boot information. 
 
 Goal: 
 I want</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 27 Feb 2025 17:21:50 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119353/how-to-separate-logging-and-serial-communication-on-different-vcoms-nrf5340" /><item><title>RE: How to Separate Logging and Serial Communication on Different VCOMs (nRF5340)</title><link>https://devzone.nordicsemi.com/thread/525140?ContentTypeID=1</link><pubDate>Thu, 27 Feb 2025 17:21:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7797fce6-a1d9-40ce-9fe0-0a5960984a0b</guid><dc:creator>Yash48</dc:creator><description>&lt;p data-start="173" data-end="184"&gt;Hi Edvin,&lt;/p&gt;
&lt;p data-start="186" data-end="303"&gt;Thank you so much for your detailed response! Your explanation and the recommended configurations worked perfectly.&lt;/p&gt;
&lt;p data-start="305" data-end="632"&gt;I was able to successfully separate logging (UARTE0) and serial communication (UARTE1).&lt;br data-start="394" data-end="397" /&gt;&lt;br data-start="501" data-end="504" /&gt;Modifying the&amp;nbsp;&lt;code data-start="520" data-end="530"&gt;.overlay&lt;/code&gt; file and &lt;code data-start="540" data-end="550"&gt;prj.conf&lt;/code&gt; as per your instructions ensured proper log isolation and serial functionality.&lt;/p&gt;
&lt;p data-start="634" data-end="710"&gt;I also wanted to ask about the impact of this line in the &lt;code data-start="692" data-end="702"&gt;.overlay&lt;/code&gt; file:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="absolute bottom-0 right-2 flex h-9 items-center"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;pre class="ui-code" data-mode="text"&gt;/delete-node/ &amp;amp;gpio_fwd;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="748" data-end="933"&gt;What exactly does this change in terms of GPIO behavior? Does it completely stop GPIO forwarding from the network core, or are there any cases where some pins might still be affected?&lt;/p&gt;
&lt;p data-start="935" data-end="1079"&gt;I appreciate your advice on using RTT Logging as well&amp;mdash;it&amp;rsquo;s definitely useful for development. I&amp;rsquo;ll keep it in mind for future debugging needs.&lt;/p&gt;
&lt;p data-start="1081" data-end="1142"&gt;Thanks again for your guidance! This was extremely helpful.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Yash&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to Separate Logging and Serial Communication on Different VCOMs (nRF5340)</title><link>https://devzone.nordicsemi.com/thread/525089?ContentTypeID=1</link><pubDate>Thu, 27 Feb 2025 14:13:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5269487a-ae51-4a2d-b819-93e2714ead50</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Both. Sorry for being a bit short in my previous reply. I didn&amp;#39;t have time to look up all the configs. But again, if this is only for development, save yourself some time and use RTT Logging.&amp;nbsp;&lt;/p&gt;
[quote user="Yash48"]Disabling Network Core Logging &amp;amp; Stopping Pin Forwarding[/quote]
&lt;p&gt;&lt;/p&gt;
[quote user="Yash48"]Should I modify the &lt;code&gt;.overlay&lt;/code&gt; file, &lt;code&gt;prj.conf&lt;/code&gt;, or both?[/quote]
&lt;p&gt;Both. .overlay to disable and enable the correct UARTs, and Kconfig (prj.conf) to enable disable logging.&amp;nbsp;&lt;/p&gt;
[quote user="Yash48"]How should I configure the &lt;code&gt;.overlay&lt;/code&gt; file and &lt;code&gt;prj.conf&lt;/code&gt; to ensure logs stay on UARTE0 while UART1 is used solely for communication?[/quote]
&lt;p&gt;UARTE0 will be used for logging. I don&amp;#39;t remember exactly which setting it is, but it is the one linked to console in the board files (nrf5340dk_nrf5340.dts/dtsi).&lt;/p&gt;
[quote user="Yash48"]Should I modify the &lt;code&gt;zephyr,console&lt;/code&gt; or &lt;code&gt;zephyr,shell-uart&lt;/code&gt; settings?[/quote]
&lt;p&gt;console.&lt;/p&gt;
[quote user="Yash48"]&lt;ul&gt;&lt;li&gt;What additional configurations (e.g., Kconfig, DTS) are needed to ensure UART1 does not interfere with VCOM2?&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;&lt;/ul&gt;[/quote]
&lt;p&gt;you should never modify the dts/dtsi files directly. If you find something in these files that you want to change, copy that section, and paste it into &amp;lt;board_name&amp;gt;.overlay, and edit it there.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So, what you actually need to do. If you look in nrf5340_cpuapp_common.dtsi:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {

	chosen {
		zephyr,console = &amp;amp;uart0;
		zephyr,shell-uart = &amp;amp;uart0;
		zephyr,uart-mcumgr = &amp;amp;uart0;
		zephyr,bt-mon-uart = &amp;amp;uart0;
		zephyr,bt-c2h-uart = &amp;amp;uart0;
		zephyr,bt-hci = &amp;amp;bt_hci_ipc0;
		nordic,802154-spinel-ipc = &amp;amp;ipc0;
		zephyr,ieee802154 = &amp;amp;ieee802154;
	};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Here you can see that the console is pointing to uart0, so whatever you configure as the UART0 pins will be the ones that will output the log messages. This is set in nrf5340_cpuapp_common-pinctrl.dtsi:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 19)&amp;gt;;
		};
		group2 {
			psels = &amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 21)&amp;gt;;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 19)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 21)&amp;gt;;
			low-power-enable;
		};
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Paste this snippet into your nrf5340dk_nrf5340_cpuapp.overlay if you want to change the pins. Also create this for uart1_default and uart1_sleep.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To disable the GPIO forwarding, you need to add this line to your .overlay file::&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/delete-node/ &amp;amp;gpio_fwd;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Then set up uart0 and uart1 by enabling them in .overlay. The uart0 is enabled by default, but you can add uart1 like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;uart1 {
	status = &amp;quot;okay&amp;quot;;
	current-speed = &amp;lt;115200&amp;gt;;
	pinctrl-0 = &amp;lt;&amp;amp;uart1_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;uart1_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
};
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And you can add this snippet as well, so that you have something to point to in your application:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {
	chosen {
        nordic,app-uart = &amp;amp;uart1;
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And then you can use it in your application, pretty much like it is done in the NCS\nrf\samples\bluetooth\peripheral_uart, but in main.c, instead of:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static const struct device *uart = DEVICE_DT_GET(DT_CHOSEN(nordic_nus_uart));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;you can use:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static const struct device *uart = DEVICE_DT_GET(DT_CHOSEN(nordic_app_uart));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You can call it whatever you like. It doesn&amp;#39;t need to be &amp;quot;nordic,app-uart&amp;quot;, but remember that all &amp;quot;-&amp;quot; and &amp;quot;,&amp;quot; will be replaced with &amp;quot;_&amp;quot; in your .c files.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to Separate Logging and Serial Communication on Different VCOMs (nRF5340)</title><link>https://devzone.nordicsemi.com/thread/524908?ContentTypeID=1</link><pubDate>Wed, 26 Feb 2025 17:08:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:79aec21f-75af-4e2f-924f-46276befdc0b</guid><dc:creator>Yash48</dc:creator><description>&lt;p data-start="100" data-end="118"&gt;Hello Edvin,&lt;/p&gt;
&lt;p data-start="100" data-end="118"&gt;Thank you for your response.&amp;nbsp; I have made the following configurations to separate logging and serial communication:&lt;/p&gt;
&lt;h3 id="mcetoc_1il1ietul0" data-start="440" data-end="472"&gt;&lt;strong data-start="444" data-end="470"&gt;Current Configuration:&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 data-start="474" data-end="546"&gt;&lt;strong data-start="479" data-end="544"&gt;Device Tree Overlay (UART1 Enabled for Serial Communication):&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;uart1 {
    status = &amp;quot;okay&amp;quot;;
};&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong data-start="479" data-end="544"&gt;&lt;br /&gt;Default UART1 Configuration:&lt;/strong&gt;&lt;strong data-start="479" data-end="544"&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;uart1: arduino_serial: uart@9000 {
    compatible = &amp;quot;nordic,nrf-uarte&amp;quot;;
    reg = &amp;lt; 0x9000 0x1000 &amp;gt;;
    interrupts = &amp;lt; 0x9 0x1 &amp;gt;;
    status = &amp;quot;okay&amp;quot;;
    current-speed = &amp;lt; 0x1c200 &amp;gt;;
    pinctrl-0 = &amp;lt; &amp;amp;uart1_default &amp;gt;;
    pinctrl-1 = &amp;lt; &amp;amp;uart1_sleep &amp;gt;;
    pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
};

uart1_default: uart1_default {
    group1 {
        psels = &amp;lt;NRF_PSEL(UART_TX, 1, 9)&amp;gt;,
                &amp;lt;NRF_PSEL(UART_RTS, 1, 11)&amp;gt;;
    };
    group2 {
        psels = &amp;lt;NRF_PSEL(UART_RX, 1, 8)&amp;gt;,
                &amp;lt;NRF_PSEL(UART_CTS, 1, 10)&amp;gt;;
        bias-pull-up;
    };
};
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/h4&gt;
&lt;h2 id="mcetoc_1il1iqk751" data-start="1218" data-end="1260"&gt;&lt;strong data-start="1221" data-end="1258"&gt;Issue 1: UART1 Not Receiving Data&lt;/strong&gt;&lt;/h2&gt;
&lt;ul data-start="1261" data-end="1498"&gt;
&lt;li data-start="1261" data-end="1326"&gt;I have connected an &lt;strong data-start="1283" data-end="1314"&gt;external USB-to-UART bridge&lt;/strong&gt; to UART1.&lt;/li&gt;
&lt;li data-start="1327" data-end="1422"&gt;However, when I send data from the external UART device, &lt;strong data-start="1386" data-end="1409"&gt;nothing is received&lt;/strong&gt; in Zephyr.&lt;/li&gt;
&lt;li data-start="1423" data-end="1498"&gt;My &lt;strong data-start="1428" data-end="1461"&gt;UART1 interrupt-based handler&lt;/strong&gt; does not trigger on incoming data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-start="474" data-end="546"&gt;&lt;strong data-start="479" data-end="544"&gt;&amp;nbsp; UART Handling:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;zephyr/kernel.h&amp;gt;
#include &amp;lt;zephyr/drivers/uart.h&amp;gt;
#include &amp;lt;zephyr/sys/printk.h&amp;gt;

#define BUFFER_SIZE 526
#define UART_NODE DT_NODELABEL(uart1)

static const struct device *uart_dev = DEVICE_DT_GET(UART_NODE);
static char command_buffer[BUFFER_SIZE];
static int buffer_index = 0;
static volatile bool command_ready = false;

void uart_callback(const struct device *dev, void *user_data)
{
    uint8_t c;
    printk(&amp;quot;DEBUG: UART Callback\n&amp;quot;);
    while (uart_irq_update(dev) &amp;amp;&amp;amp; uart_irq_rx_ready(dev)) 
    {
        if (uart_fifo_read(dev, &amp;amp;c, 1) == 1) 
        {
            printk(&amp;quot;DEBUG: Received Char: %c (ASCII: %d)\n&amp;quot;, c, c); 
            if (c == &amp;#39;\n&amp;#39; || c == &amp;#39;\r&amp;#39;) 
            {
                if (buffer_index &amp;gt; 0) 
                {
                    command_buffer[buffer_index] = &amp;#39;\0&amp;#39;;
                    command_ready = true;
                }
            }
            else if (buffer_index &amp;lt; BUFFER_SIZE - 1) 
            {
                command_buffer[buffer_index++] = c;
            }
            else
            {
                buffer_index = 0; // Reset on overflow
            }
        }
    }
}

int uart_init()
{
    if (!device_is_ready(uart_dev))
    {
        printk(&amp;quot;ERROR: UART device not ready!\n&amp;quot;);
        return -1;
    }
    uart_irq_callback_set(uart_dev, uart_callback);
    uart_irq_rx_enable(uart_dev);
    printk(&amp;quot;UART Initialized\n&amp;quot;);
    return 0;
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong data-start="2925" data-end="2951"&gt;Debugging Steps Tried:&lt;/strong&gt;&lt;/h4&gt;
&lt;ol data-start="2954" data-end="3162"&gt;
&lt;li data-start="2954" data-end="3039"&gt;Checked with &lt;code data-start="2970" data-end="2997"&gt;device_is_ready(uart_dev)&lt;/code&gt;, and UART1 is initialized successfully.&lt;/li&gt;
&lt;li data-start="3040" data-end="3111"&gt;Verified the external USB-to-UART bridge works with other devices.&lt;/li&gt;
&lt;li data-start="3112" data-end="3162"&gt;Confirmed UART1 TX/RX pins are set correctly.&lt;br /&gt;&lt;br /&gt;In this case if i use the UART0(VCOM1) then it work fine .&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="mcetoc_1il1iufhv3" data-start="3169" data-end="3230"&gt;&lt;strong data-start="3172" data-end="3228"&gt;Issue 2: Unexpected Loopback Between VCOM2 and UART1&lt;/strong&gt;&lt;/h2&gt;
&lt;ul data-start="3231" data-end="3448"&gt;
&lt;li data-start="3231" data-end="3313"&gt;When I send data to &lt;strong data-start="3253" data-end="3262"&gt;VCOM2&lt;/strong&gt;, it appears on &lt;strong data-start="3278" data-end="3310"&gt;UART1 (external USB-to-UART)&lt;/strong&gt;.&lt;/li&gt;
&lt;li data-start="3314" data-end="3373"&gt;When I send data to &lt;strong data-start="3336" data-end="3345"&gt;UART1&lt;/strong&gt;, it appears on &lt;strong data-start="3361" data-end="3370"&gt;VCOM2&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1il1jh10e7" data-start="367" data-end="387"&gt;&lt;strong data-start="371" data-end="385"&gt;Questions:&lt;/strong&gt;&lt;/h3&gt;
&lt;ol data-start="389" data-end="1486"&gt;
&lt;li data-start="389" data-end="685"&gt;
&lt;p data-start="392" data-end="454"&gt;&lt;strong data-start="392" data-end="452"&gt;Disabling Network Core Logging &amp;amp; Stopping Pin Forwarding&lt;/strong&gt;&lt;/p&gt;
&lt;ul data-start="458" data-end="685"&gt;
&lt;li data-start="458" data-end="539"&gt;How exactly do I disable logging on the network core and stop pin forwarding?&lt;/li&gt;
&lt;li data-start="543" data-end="604"&gt;Should I modify the &lt;code data-start="565" data-end="575"&gt;.overlay&lt;/code&gt; file, &lt;code data-start="582" data-end="592"&gt;prj.conf&lt;/code&gt;, or both?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start="687" data-end="890"&gt;
&lt;p data-start="690" data-end="749"&gt;&lt;strong data-start="690" data-end="747"&gt;Configuring UARTE0 for Logs &amp;amp; UART1 for Communication&lt;/strong&gt;&lt;/p&gt;
&lt;ul data-start="753" data-end="890"&gt;
&lt;li data-start="753" data-end="890"&gt;How should I configure the &lt;code data-start="782" data-end="792"&gt;.overlay&lt;/code&gt; file and &lt;code data-start="802" data-end="812"&gt;prj.conf&lt;/code&gt; to ensure logs stay on UARTE0 while UART1 is used solely for communication?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start="892" data-end="1234"&gt;
&lt;p data-start="895" data-end="948"&gt;&lt;strong data-start="895" data-end="946"&gt;Preventing GPIO Conflicts with the Network Core&lt;/strong&gt;&lt;/p&gt;
&lt;ul data-start="952" data-end="1234"&gt;
&lt;li data-start="952" data-end="1040"&gt;If the network core is using the same GPIOs by default, how can I prevent conflicts?&lt;/li&gt;
&lt;li data-start="1044" data-end="1117"&gt;Should I modify the &lt;code data-start="1066" data-end="1082"&gt;zephyr,console&lt;/code&gt; or &lt;code data-start="1086" data-end="1105"&gt;zephyr,shell-uart&lt;/code&gt; settings?&lt;/li&gt;
&lt;li data-start="1121" data-end="1234"&gt;Is there a way to stop pin forwarding to the network core while keeping the application core logging enabled?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start="1236" data-end="1486"&gt;
&lt;p data-start="1239" data-end="1284"&gt;&lt;strong data-start="1239" data-end="1282"&gt;Additional Configuration Considerations&lt;/strong&gt;&lt;/p&gt;
&lt;ul data-start="1288" data-end="1486"&gt;
&lt;li data-start="1288" data-end="1401"&gt;What additional configurations (e.g., Kconfig, DTS) are needed to ensure UART1 does not interfere with VCOM2?&lt;/li&gt;
&lt;li data-start="1405" data-end="1486"&gt;Are there any &lt;code data-start="1421" data-end="1431"&gt;nrfjprog&lt;/code&gt; or J-Link debugger settings that need to be changed?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="1488" data-end="1797"&gt;Could you guide me on the correct configurations to fully separate logging and serial communication in both cases&amp;mdash;one without an external USB-to-UART adapter and one with it connected?&lt;/p&gt;
&lt;p data-start="1799" data-end="1833"&gt;Thanks in advance for your help!&lt;/p&gt;
&lt;h3 id="mcetoc_1il1j55144" data-start="819" data-end="839"&gt;&lt;strong data-start="823" data-end="837"&gt;&lt;/strong&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to Separate Logging and Serial Communication on Different VCOMs (nRF5340)</title><link>https://devzone.nordicsemi.com/thread/524859?ContentTypeID=1</link><pubDate>Wed, 26 Feb 2025 14:50:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb634c94-c2e9-495a-95ee-32764e845c5d</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;The two COM ports on the DK are the two UARTs that the nRF5340 uses for logging by default. One for the application core, and one for the network core. So the one you are saying just logs boot information, that is probably the network core logging.&amp;nbsp;&lt;/p&gt;
[quote user=""]Is there an internal &lt;strong&gt;J-Link OB forwarding mechanism&lt;/strong&gt; that could be causing this issue?[/quote]
&lt;p&gt;The debugger is hard wired to specific GPIOs that are used by the app core and network core by default. They are listed on the back of the DK. They are named RTS TXD CTS and RXD.&lt;/p&gt;
&lt;p&gt;What you can do is to disable logging on the network core, stop the pin forwarding to the network core, and control these as a separate UART on the app core.&amp;nbsp;&lt;/p&gt;
[quote user=""]Are there any &lt;strong&gt;Zephyr configurations or Nordic-specific settings&lt;/strong&gt; required to properly separate logs and serial communication?[/quote]
&lt;p&gt;Yes. The logging is by default done on the first UART instance, i.e. UARTE0. So if you set up a different UART for serial communication you should be fine. Just make sure that they use the same GPIOs as the network core use by default.&lt;/p&gt;
[quote user=""]What is the best way to ensure &lt;strong&gt;logs stay on VCOM1 and serial communication happens only on VCOM2&lt;/strong&gt;?[/quote]
&lt;p&gt;These are hard-wired to particular pins, so they will not change.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;However, if you want to use UART for serial communication and at the same time monitor logs, another, perhaps easier option, is to use RTT Logging. This kind of log doesn&amp;#39;t require it&amp;#39;s own GPIOs. It uses a RAM buffer to write the log, and the debugger reads this RAM buffer. If you are interested, this is the way it is done in the NCS\nrf\samples\bluetooth\peripheral_uart sample. To monitor the LOG, you can either open the log in VS Code by connecting the RTT viewer there, or you can use a standalone RTT viewer, such as the one provided by JLink. (from segger.com).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1740581400136v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>