<?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>BLE fund. Lesson 4 exercise 3 - UART communication betewen nrf52840DK and nrf9161DK</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/115395/ble-fund-lesson-4-exercise-3---uart-communication-betewen-nrf52840dk-and-nrf9161dk</link><description>Hi 
 I&amp;#39;m using the nrf52840DK and this example: &amp;quot;BLE Fundamentals, Lesson 4, Exercise 3,&amp;quot; where you can send/receive strings between UART and Bluetooth. This works perfectly. 
 My mission is: Write a string on my phone -&amp;gt; receive it via Bluetooth on the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 16 Oct 2024 10:41:16 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/115395/ble-fund-lesson-4-exercise-3---uart-communication-betewen-nrf52840dk-and-nrf9161dk" /><item><title>RE: BLE fund. Lesson 4 exercise 3 - UART communication betewen nrf52840DK and nrf9161DK</title><link>https://devzone.nordicsemi.com/thread/506474?ContentTypeID=1</link><pubDate>Wed, 16 Oct 2024 10:41:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:406e36f6-b0ea-4ad7-9ef6-c3cf5d3bbf5e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hmm... Perhaps flow control is enabled. Try connecting RTS on one device to CTS on the other.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To disable flow control, add this to your nrf52840dk_nrf52840.overlay, and your equivalent nRF91 overlay file in your nrf91 appilcation:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;    /delete-property/ hw-flow-control;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;So your file should look something like this now:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;uart0 {
	compatible = &amp;quot;nordic,nrf-uarte&amp;quot;;
	status = &amp;quot;okay&amp;quot;;
    /delete-property/ hw-flow-control;
	current-speed = &amp;lt;115200&amp;gt;;
	pinctrl-0 = &amp;lt;&amp;amp;uart0_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;uart0_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
};

&amp;amp;pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 6)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 5)&amp;gt;;
		};
		group2 {
			psels = &amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 7)&amp;gt;;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 6)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 5)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 7)&amp;gt;;
			low-power-enable;
		};
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Let me know if it doesn&amp;#39;t work.&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: BLE fund. Lesson 4 exercise 3 - UART communication betewen nrf52840DK and nrf9161DK</title><link>https://devzone.nordicsemi.com/thread/506454?ContentTypeID=1</link><pubDate>Wed, 16 Oct 2024 09:32:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3855fdc6-b54a-4ef5-8a90-20e44f2bd905</guid><dc:creator>EgilCL</dc:creator><description>&lt;p&gt;thx for the answer!&lt;br /&gt;It works! I also&amp;nbsp;get the correct string on the logic analyzer from the TX from the nrf52840 (with bl to uart example).&lt;/p&gt;
&lt;p&gt;The problem is now that i have implemented the code below&amp;nbsp;on the nrf9161 and connected TX (nrf52840) to RX (nrf9161):&lt;/p&gt;
&lt;p&gt;This code is supposed to receive a string through UART and it works for now by sending a string via the vscode terminal and it prints back that it received the string.&lt;/p&gt;
&lt;p&gt;So each nrf&amp;#39;s works correct separately when testing.&lt;/p&gt;
&lt;p&gt;But when connecting both at the same time, they both get blocked, so now i dont get an response in the terminal from the nrf9161(UART receive) or when trying to send a string via BL via the phone on the nrf52840(BL-&amp;gt;UART ex).&lt;/p&gt;
&lt;p&gt;what i have tried:&lt;/p&gt;
&lt;p&gt;* The logic analyzer does not pick up anything when both are connected.&lt;/p&gt;
&lt;p&gt;* I also tried it by connecting the nrf52840&lt;span&gt;(BL-&amp;gt;UART ex) to an external powerbank to see if it was something with&amp;nbsp;my laptop not beeing able to take two nrf&amp;#39;s but this gave same result.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;* Also i tried making a common gnd between them but same result.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The code to receive UART data (nrf9161):&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#include &lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;lt;zephyr/kernel.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#include &lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;lt;zephyr/device.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#include &lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;lt;zephyr/devicetree.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#include &lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;lt;zephyr/sys/printk.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#include &lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;lt;zephyr/drivers/uart.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#define &lt;/span&gt;&lt;span style="color:#989875;"&gt;SLEEP_TIME_MS&lt;/span&gt;&lt;span style="color:#569cd6;"&gt; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1000&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#define &lt;/span&gt;&lt;span style="color:#989875;"&gt;RECEIVE_BUFF_SIZE &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1&lt;/span&gt;&lt;span style="color:#79a265;"&gt; &amp;nbsp;// Buffer size of 1 for single-character reception&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#c586c0;"&gt;#define &lt;/span&gt;&lt;span style="color:#989875;"&gt;RECEIVE_TIMEOUT &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;100&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#79a265;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;/* Get the UART device pointer */&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#569cd6;"&gt;const struct&lt;/span&gt;&lt;span style="color:#979797;"&gt; device *uart = &lt;/span&gt;&lt;span style="color:#989875;"&gt;DEVICE_DT_GET&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#989875;"&gt;DT_NODELABEL&lt;/span&gt;&lt;span style="color:#979797;"&gt;(uart0));&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#569cd6;"&gt;static uint8_t &lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;rx_buf&lt;/span&gt;&lt;span style="color:#979797;"&gt;[RECEIVE_BUFF_SIZE] = {&lt;/span&gt;&lt;span style="color:#899c7f;"&gt;0&lt;/span&gt;&lt;span style="color:#979797;"&gt;};&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#79a265;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;/* UART callback to handle received data */&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#569cd6;"&gt;static void &lt;/span&gt;&lt;span style="color:#989875;"&gt;uart_cb&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;const struct&lt;/span&gt;&lt;span style="color:#979797;"&gt; device *&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;dev&lt;/span&gt;&lt;span style="color:#979797;"&gt;, &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;struct&lt;/span&gt;&lt;span style="color:#979797;"&gt; uart_event *&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;evt&lt;/span&gt;&lt;span style="color:#979797;"&gt;, &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;void&lt;/span&gt;&lt;span style="color:#979797;"&gt; *&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;user_data&lt;/span&gt;&lt;span style="color:#979797;"&gt;) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;switch&lt;/span&gt;&lt;span style="color:#979797;"&gt; (&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;evt&lt;/span&gt;&lt;span style="color:#979797;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;type&lt;/span&gt;&lt;span style="color:#979797;"&gt;) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;case&lt;/span&gt;&lt;span style="color:#979797;"&gt; UART_RX_RDY:&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#79a265;"&gt;// Print each received character immediately&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;printk&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;&lt;span style="color:#979797;"&gt;, evt-&amp;gt;data.rx.&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;buf&lt;/span&gt;&lt;span style="color:#979797;"&gt;[&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;evt&lt;/span&gt;&lt;span style="color:#979797;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;data&lt;/span&gt;&lt;span style="color:#979797;"&gt;.&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;rx&lt;/span&gt;&lt;span style="color:#979797;"&gt;.&lt;/span&gt;&lt;span style="color:#72a1ba;"&gt;offset&lt;/span&gt;&lt;span style="color:#979797;"&gt;]);&lt;/span&gt;&lt;span style="color:#79a265;"&gt; &amp;nbsp;// Print the received character&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;break&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;case&lt;/span&gt;&lt;span style="color:#979797;"&gt; UART_RX_DISABLED:&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#79a265;"&gt;// Re-enable UART RX in case it was disabled for any reason&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;uart_rx_enable&lt;/span&gt;&lt;span style="color:#979797;"&gt;(dev, rx_buf, &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;sizeof&lt;/span&gt;&lt;span style="color:#979797;"&gt;(rx_buf), RECEIVE_TIMEOUT);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;break&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;default&lt;/span&gt;&lt;span style="color:#979797;"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;break&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;}&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#569cd6;"&gt;int &lt;/span&gt;&lt;span style="color:#989875;"&gt;main&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;void&lt;/span&gt;&lt;span style="color:#979797;"&gt;) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;int&lt;/span&gt;&lt;span style="color:#979797;"&gt; ret;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#79a265;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; /* Verify UART device is ready */&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;if&lt;/span&gt;&lt;span style="color:#979797;"&gt; (!&lt;/span&gt;&lt;span style="color:#989875;"&gt;device_is_ready&lt;/span&gt;&lt;span style="color:#979797;"&gt;(uart)) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;printk&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;UART device not ready&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;\n&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#979797;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;return &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p style="color:#79a265;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; /* Register UART callback and enable receive */&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; ret = &lt;/span&gt;&lt;span style="color:#989875;"&gt;uart_callback_set&lt;/span&gt;&lt;span style="color:#979797;"&gt;(uart, uart_cb, &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;NULL&lt;/span&gt;&lt;span style="color:#979797;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;if&lt;/span&gt;&lt;span style="color:#979797;"&gt; (ret) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;printk&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;Failed to set UART callback&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;\n&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#979797;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;return &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; ret = &lt;/span&gt;&lt;span style="color:#989875;"&gt;uart_rx_enable&lt;/span&gt;&lt;span style="color:#979797;"&gt;(uart, rx_buf, &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;sizeof&lt;/span&gt;&lt;span style="color:#979797;"&gt;(rx_buf), RECEIVE_TIMEOUT);&lt;/span&gt;&lt;span style="color:#79a265;"&gt; &amp;nbsp;// Enable with buffer for continuous reception&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;if&lt;/span&gt;&lt;span style="color:#979797;"&gt; (ret) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;printk&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;Failed to enable UART RX&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;\n&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#979797;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;return &lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1&lt;/span&gt;&lt;span style="color:#979797;"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;printk&lt;/span&gt;&lt;span style="color:#979797;"&gt;(&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;UART initialized. Waiting for data...&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;\n&lt;/span&gt;&lt;span style="color:#cb8f76;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#979797;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;while&lt;/span&gt;&lt;span style="color:#979797;"&gt; (&lt;/span&gt;&lt;span style="color:#899c7f;"&gt;1&lt;/span&gt;&lt;span style="color:#979797;"&gt;) {&lt;/span&gt;&lt;/p&gt;
&lt;p style="font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&lt;span style="color:#979797;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color:#989875;"&gt;k_msleep&lt;/span&gt;&lt;span style="color:#979797;"&gt;(SLEEP_TIME_MS);&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p style="color:#979797;font-family:Consolas;font-size:10.5pt;margin:0in;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE fund. Lesson 4 exercise 3 - UART communication betewen nrf52840DK and nrf9161DK</title><link>https://devzone.nordicsemi.com/thread/505755?ContentTypeID=1</link><pubDate>Thu, 10 Oct 2024 14:02:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b830cfa-466e-482b-8f17-9a48e32e149c</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Egil,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user=""](on the terminal i get the correct string from the phone but not through the pins)[/quote]
&lt;p&gt;When you send a message from the phone, it should be printed on the UARTs TX pin, P0.06. The fact that you see it in the terminal, means that it must have been sent out via P0.06.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, if I understand your question correctly, you simply want to change what GPIOs that are being used by the UART, right?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In a file called nrf52840dk_nrf52840-pinctrl.dtsi, located in ncs\zephyr\boards\nordic\nrf52840dk\nrf52840dk_nrf52840-pinctrl.dtsi, you should see something like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;

	uart0_sleep: uart0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 6)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 5)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 7)&amp;gt;;
			low-power-enable;
		};
	};
	...&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;You can find it by using the device tree file in VS Code:&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/pastedimage1728568737744v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;locating uart0 anywhere in that file, and right click -&amp;gt; go to definition,&lt;/p&gt;
&lt;p&gt;So to configure devicetree functionality, you can copy whatever you want to change, and paste it into a file called &amp;lt;board_name&amp;gt;.overlay. So in your case, call it nrf52840dk_nrf52840.overlay, and place it in your application folder (the same folder containing your prj.conf). In it, you paste whatever you copied, and change whatever you want to change. So for example:&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, 6)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 5)&amp;gt;;
		};
		group2 {
			psels = &amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 7)&amp;gt;;
			bias-pull-up;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 6)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_RTS, 0, 5)&amp;gt;,
				&amp;lt;NRF_PSEL(UART_CTS, 0, 7)&amp;gt;;
			low-power-enable;
		};
	};
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;(note that I added the last bracked and semi colon: };&lt;/p&gt;
&lt;p&gt;Whatever changes you do in this overlay file will be used instead of the default .dts or .dtsi files, without changing the rest of the .dts files.&lt;/p&gt;
&lt;p&gt;You may need to delete your build configuration/build folder and create a new build configuration for the compiler to actually detect your .overlay file.&amp;nbsp;&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></channel></rss>