<?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>Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/104146/zephyr-2-4-0-with-async-uart</link><description>Hi, 
 
 I am having the same problem as nRF9160 UART: Loosing data when RxData is split into 2 buffers (Async API) - Nordic Q&amp;amp;A - Nordic DevZone - Nordic DevZone (nordicsemi.com) and ASYNC uart and UART_RX_RDY timeout - Nordic Q&amp;amp;A - Nordic DevZone - Nordic</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 06 Aug 2024 08:46:08 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/104146/zephyr-2-4-0-with-async-uart" /><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/497110?ContentTypeID=1</link><pubDate>Tue, 06 Aug 2024 08:46:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3614271-aed4-4c37-9033-f62027c943a5</guid><dc:creator>AngusKu</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;a class="internal-link view-user-profile" href="https://devzone.nordicsemi.com/members/dude_5f00_eh"&gt;Canadian_EE&lt;/a&gt;,&lt;br /&gt;You might want to refer to this （&lt;a href="https://github.com/zephyrproject-rtos/zephyr/issues/49021"&gt;uart async api does not provide all received data &lt;/a&gt;）&lt;br /&gt;Your can modify your prj.conf for using HW counting as below.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;CONFIG_UART_1_NRF_HW_ASYNC=y &lt;br /&gt;CONFIG_UART_1_NRF_HW_ASYNC_TIMER=2&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;There are also related discussions here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a id="" href="https://github.com/zephyrproject-rtos/zephyr/pull/24209"&gt;https://github.com/zephyrproject-rtos/zephyr/pull/24209&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a id="" href="https://github.com/zephyrproject-rtos/zephyr/issues/24313"&gt;https://github.com/zephyrproject-rtos/zephyr/issues/24313&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After modifying the settings as described, I haven&amp;#39;t encountered this issue so far.&lt;br /&gt;I hope this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/497074?ContentTypeID=1</link><pubDate>Tue, 06 Aug 2024 05:39:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cef0cb00-c06b-4d17-8566-ca3bd8f2c126</guid><dc:creator>AngusKu</dc:creator><description>&lt;p&gt;I am using UART0 on the nRF52833 with async UART and encountered a similar issue. My testing environment involves using the mcumgr tool on the host side to send SMP packets, with data lengths varying from tens to hundreds of bytes at a time.&lt;/p&gt;
&lt;p&gt;In my case, I am certain that the previous packet was fully received, but sometimes the UART_RX_RDY event reports a shorter length, leading to errors in subsequent packet decoding. I am confident the data is being received because when I send some dummy data, I can receive another UART_RX_RDY event and get the remaining part of the previous packet. This data is clearly queued in the underlying buffer.&lt;/p&gt;
&lt;p&gt;Even setting a timeout with &lt;code&gt;uart_rx_enable&lt;/code&gt; does not resolve the issue. I also tried modifying the DTS to change UART0 to &lt;code&gt;compatible = &amp;quot;nordic,nrf-uarte&amp;quot;&lt;/code&gt;, but that didn&amp;#39;t work either.&lt;/p&gt;
&lt;p&gt;Later, I found that receiving data upon the UART_RX_RDY event and then calling &lt;code&gt;uart_rx_disable&lt;/code&gt; helps extract the pending received data and temporarily resolves the problem.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/487151?ContentTypeID=1</link><pubDate>Mon, 03 Jun 2024 14:37:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0562a1ca-1b7b-4d8d-ac6c-2a3aacc54d38</guid><dc:creator>lanwer</dc:creator><description>&lt;p&gt;If that is the case, than I would assume, that:&lt;br /&gt;&lt;br /&gt;uart1 is configured as&amp;nbsp; compatible = &amp;quot;nordic,nrf-uart&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;e&lt;/strong&gt;&lt;/span&gt;&amp;quot;;&lt;br /&gt;and &lt;br /&gt;uart0 is&amp;nbsp;configured as&amp;nbsp; compatible = &amp;quot;nordic,nrf-uart&amp;quot;;&lt;/p&gt;
&lt;p&gt;Can you confirm this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/452430?ContentTypeID=1</link><pubDate>Thu, 26 Oct 2023 07:44:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b438a18-1efb-4b28-b943-a088b75b703e</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="Dude_eh"]I didn&amp;#39;t find issues with UART1 at BAUD up to&amp;nbsp;921600&amp;nbsp;bits / s.&amp;nbsp;[/quote]
&lt;p&gt;So barely changing the instance from UART0 to UART1 fixes the issue? no garbled data? No other change at all? That is interesting. Can you please double check that changing the instance number from uart0 to uart1 is the only change you do?&lt;/p&gt;
&lt;p&gt;If that is the case, then there might be more differences in the instance handling than I thought. In that case, please attach the project here so that I can reproduce that here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/452037?ContentTypeID=1</link><pubDate>Tue, 24 Oct 2023 14:50:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c69f67a2-1666-42ce-bc11-00ec626c8223</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Hi Simon,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; thanks for your response. I think I understand. I tried receiving data at different BAUD rates, and volumes; but without flow control. I didn&amp;#39;t find that speed was the problem. I found the system lost data when the buffer(s) filled up. If there was one buffer, data was lost when that buffer filled up. When there are two (dual) buffers, data is lost when the second buffer fills up.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;I tried BAUD rates from &lt;strong&gt;115200 to&amp;nbsp;&lt;span&gt;921600. &lt;/span&gt;&lt;/strong&gt;&amp;nbsp;I also found issue with UART0 at BAUD rates higher then&amp;nbsp;&lt;span&gt;460800&amp;nbsp;bits / s. The data came through garbled. However, I didn&amp;#39;t find issues with UART1 at BAUD up to&amp;nbsp;921600&amp;nbsp;bits / s.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In my case, my &amp;quot;post processing&amp;quot; is merely copying the data and echo-ing it back. The amount of time that it takes is minimal, so I don&amp;#39;t think I have a backup problem. At least not at this time. If my system couldn&amp;#39;t process data fast enough, I completely agree. That would be a problem.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/452030?ContentTypeID=1</link><pubDate>Tue, 24 Oct 2023 14:19:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6debc637-0eec-471e-8df0-beba158f3784</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Chad&lt;/p&gt;
&lt;p&gt;Sorry about the delayed reply, but Susheel is out of office today. I&amp;#39;ll try to rephrase.&lt;/p&gt;
&lt;p&gt;Without EasyDMA and flow control, the receiving device will, in most applications, have to confirm that the received data is correct and process it somehow. Normally, these &amp;quot;post processing&amp;quot; for a serial transaction will take more time than what the DMA and flow control does. As he says, if you&amp;#39;re not processing the incoming data at all and the application spends time reconfiguring the DMA pointers it wouldn&amp;#39;t spend processing incoming data otherwise, your logic of DMA being excessive makes sense.&lt;/p&gt;
&lt;p&gt;If you test by lowering the baud rate on both sides and still see the same issue here, the need for flow control on an asynchronous UART is correct. If not reproducible at lower baud rates we can dismiss the flow control as a possible solution.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/451116?ContentTypeID=1</link><pubDate>Wed, 18 Oct 2023 16:46:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9d71724f-d10b-4c08-8578-c9799c7526e6</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Hi Susheel,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;can you explain your comment again? I don&amp;#39;t quite follow what you mean.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/450604?ContentTypeID=1</link><pubDate>Mon, 16 Oct 2023 13:48:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f6992175-8ba5-4b93-9cff-629229c1af6c</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="Dude_eh"]In my opinion, this isn&amp;#39;t a hardware flow control or not flow control issue. Flow control might help, but the DMA with interrupts should properly handle the buffer filling up.[/quote]
&lt;p&gt;Well the easyDMA is not the only variable that effects the throughput of the application. The applicaiton normally have post processing latencies for every serial transaction which is more than making a new request. You need to analyze how much time is spend with every transaction of data received/sent in your application. If you are not processing the data at all (ignoring the incoming data) and only spending time in the application to reconfigure the DMA pointers, then I would understand your logic of flow control not needed with EasyDMA. You can do a simple test of lowering the baudrate on both sides and see if you see the same issue. If you do, then what I think about flow control and throughput even with Async UART is correct. If you do not see the same issue, then we can remove the flow control from our discussions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/449609?ContentTypeID=1</link><pubDate>Tue, 10 Oct 2023 14:37:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:391d2282-ca3b-4ac3-92c4-bbc5d84418eb</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Hi Susheel,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;UART with DMA should not drop data, particularly when the buffer rolls over. In my opinion, this isn&amp;#39;t a hardware flow control or not flow control issue. Flow control might help, but the DMA with interrupts should properly handle the buffer filling up. The fact that the ASYNC UART DMA approach doesn&amp;#39;t work properly indicates&amp;nbsp;a problem or flaw with the Nordic Zephyr ASYNC UART. The DMA should alleviate the need for for flow control by providing a continuous receive capability.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, the prj.config settings do not appear to make a difference. Why is that?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/449434?ContentTypeID=1</link><pubDate>Tue, 10 Oct 2023 05:09:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:039966b2-2e75-4ccb-8004-075fb2071681</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="Dude_eh"]4. I would also like to confirm why this is a problem or a better way to resolve this ASYNC UART problem...?&amp;nbsp;[/quote]
&lt;p&gt;Hi Canadian_EE,&lt;/p&gt;
&lt;p&gt;I missed to see the last questions. I do see any questions in point 1 and 2.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. Every application is different in terms of dropped data. There should not be any dropped data at all if you are using a hardware flow control. Are you sure that you have set the hardware flow control for uart. (It is normally set in the &lt;a href="https://docs.zephyrproject.org/latest/hardware/peripherals/uart.html#c.uart_configure"&gt;uart_configure &lt;/a&gt;function). I do not see how the data is dropped or lost with hwfc unless the app is not handling the buffers correctly.&lt;/p&gt;
&lt;p&gt;4. Reading the source code in ncsv2.4.1, I see that data loss should not happen with hardware flow control enabled. And your workaround seems to be acting as if the hardware flow control is disabled in your setting and you are trying to handle double buffers just to give some extra buffer space for the incoming and outgoing data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/449240?ContentTypeID=1</link><pubDate>Fri, 06 Oct 2023 23:23:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2e897131-ba6e-4e07-9254-d8be2c490971</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Hi Susheel,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;I believe I have resolved the problem. I thought the problem was in the prj.config setting when compared with the devacademy lesson (&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-4-serial-communication-uart/topic/exercise-1-5/"&gt;lesson 5&lt;/a&gt;). However, I found (I think) that the problem lies with Zephyr.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The problem appears to be&lt;/p&gt;
&lt;p&gt;1. When the buffer fills up, the system has a problem. Data is lost.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Double buffering also doesn&amp;#39;t resolve the problem, it merely pushes the problem into the future&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So the solution can benefit from double buffering, but is not resolved by it. Nor is it resolved with a&amp;nbsp; UART_RX_BUF_REQUEST or UART_RX_BUF_RELEASED event. The system&amp;nbsp;uses a second buffer when the first one fills up.&amp;nbsp;However, when it switches to the second buffer, it doesn&amp;#39;t seem to let you setup a new secondary buffer. This is a problem, because when the secondary buffer fills up, then you loose data.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What did I try?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. I tried setting up a new secondary buffer upon a &amp;quot;UART_RX_BUF_REQUEST&amp;quot; event&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;After all, this occurs when you have started receiving for a new buffer. It should be as simple as calling &amp;quot;uart_rx_buf_rsp(...)&amp;quot; to setup a new secondary buffer. However, this doesn&amp;#39;t work. A problem is still encountered when the old secondary buffer is filled.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. I tried forcing a reset of the UART buffers (within&amp;nbsp;&lt;span&gt;UART_RX_RDY)&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Every time data is received, a UART_RX_RDY event will at some point occur. So, after copying the data, disabled the UART RX side. Then, re-enable and setup your buffers again. In this case, if I start out with Primary Buffer as &amp;quot;Buffer A&amp;quot;, and my Secondary Buffer as &amp;quot;Buffer B&amp;quot;, I then make my new Primary Buffer &amp;quot;Buffer B&amp;quot;, and my new Secondary Buffer &amp;quot;Buffer A&amp;quot;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Buffer A should never fill up. Before it fills up, you have switched the buffers around. So your two buffers aren&amp;#39;t providing overrun protection per say. Rather, they are providing an empty runway every time you receive data.&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-left:30px;"&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt;&amp;nbsp;UART_RX_RDY:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;tracking&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;temp&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;evt&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;data&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;rx&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;len&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;evt&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;data.rx.len;&amp;nbsp;&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;temp&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;evt&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;data&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;rx&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;buf&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;evt&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;data&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;rx&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;offset&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;tx_buf2&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;]&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;temp&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uart_rx_disable&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;uart_tx&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;&amp;nbsp;,&lt;/span&gt;&lt;span&gt;tx_buf2&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span&gt;,SYS_FOREVER_MS);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; UART_RX_DISABLED:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;tracking&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;+=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;rx_buf_indicator&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uart_rx_enable&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt; ,&lt;/span&gt;&lt;span&gt;rx_buf1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;rx_buf1&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;span&gt;RECEIVE_TIMEOUT&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uart_rx_buf_rsp&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;rx_buf0&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;rx_buf0&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;rx_buf_indicator&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;else&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uart_rx_enable&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt; ,&lt;/span&gt;&lt;span&gt;rx_buf0&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;rx_buf0&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;span&gt;RECEIVE_TIMEOUT&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uart_rx_buf_rsp&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;dev&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;rx_buf1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;rx_buf1&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;rx_buf_indicator&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;And I set the prj.config settings back to the defaults from lesson 5, and that doesn&amp;#39;t seem to make a difference.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;## These prj.config settings work&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_SERIAL&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_ASYNC_API&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;## These prj.config settings also works&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_SERIAL&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_INTERRUPT_DRIVEN&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_INTERRUPT_DRIVEN&lt;/span&gt;&lt;span&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_LINE_CTRL&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_ASYNC_API&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC_TIMER&lt;/span&gt;&lt;span&gt;=1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_UARTE0&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_TIMER1&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_PPI&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Please provide input&lt;/div&gt;
&lt;div&gt;1.The problem didn&amp;#39;t appear to be with the prj.config file.&lt;/div&gt;
&lt;div&gt;2. The solution didn&amp;#39;t appear to be in the DEVACADEMY example.&lt;/div&gt;
&lt;div&gt;3. I also have a mild worry about dropped data that could be caused by disabling the UART_RX stream.\&lt;/div&gt;
&lt;div&gt;4. I would also like to confirm why this is a problem or a better way to resolve this ASYNC UART problem...?&amp;nbsp;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448454?ContentTypeID=1</link><pubDate>Mon, 02 Oct 2023 08:04:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e541a92-f03b-43d4-a551-cc2622cf81c7</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="Dude_eh"]1. Can you help me with my original problem? The UART is having problems receiving data in ASYNC mode. The&amp;nbsp;&lt;em&gt;fix&amp;nbsp;&lt;/em&gt;doesn&amp;#39;t seem to have resolved the problem. I&amp;#39;m also unclear if the additional lines are required in the config file anymore or not. Their presence seems to reduce the likelyhood or severity of missing or shuffled bytes, but not eliminate it.&amp;nbsp;[/quote]
&lt;p&gt;Like I said, the fix is not relevant for the latest SDK version.&amp;nbsp;&lt;br /&gt;It looks like your main.c is using uart0 instance to configure and test the Async Serial but I can see in&amp;nbsp;v2.4.1\zephyr\boards\arm\nrf52840dk_nrf52840\nrf52840dk_nrf52840.dts that the default selections of serial for zephyr console is not changed from uart0&lt;br /&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,sram = &amp;amp;sram0;
		zephyr,flash = &amp;amp;flash0;
		zephyr,code-partition = &amp;amp;slot0_partition;
		zephyr,ieee802154 = &amp;amp;ieee802154;
	};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Either you disable zephyr console logging or you change the main.c to use another serial instance.&lt;/p&gt;
[quote user="Dude_eh"]&lt;p&gt;2. I&amp;#39;m using the NRF52840 as a partial UART buffer between two other devices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Outside device &amp;lt;-- UART --&amp;gt; BMD &amp;lt;-- UART --&amp;gt; Inside device&lt;/p&gt;[/quote]
&lt;p&gt;There are other use cases which have succesfully used two ASYNC instances with the below config&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; # UART
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_UART_0_INTERRUPT_DRIVEN=n
CONFIG_UART_1_INTERRUPT_DRIVEN=n
CONFIG_UART_LINE_CTRL=y
CONFIG_UART_ASYNC_API=y
CONFIG_UART_0_ASYNC=y
CONFIG_UART_1_ASYNC=y
CONFIG_UART_0_NRF_HW_ASYNC=y
CONFIG_UART_1_NRF_HW_ASYNC=y
CONFIG_UART_0_NRF_HW_ASYNC_TIMER=1
CONFIG_UART_1_NRF_HW_ASYNC_TIMER=2
CONFIG_NRFX_UARTE0=y
CONFIG_NRFX_UARTE1=y
CONFIG_NRFX_TIMER1=y
CONFIG_NRFX_TIMER2=y
CONFIG_NRFX_PPI=y
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;But you need to disable serial logging for having two instances available for your application. I haven&amp;#39;t tested these samples myself but it seems it should work.&lt;/p&gt;
&lt;p&gt;There is one interesting issue discussed in &lt;a href="https://github.com/zephyrproject-rtos/zephyr/issues/47925"&gt;zephyr forum&lt;/a&gt;&amp;nbsp;which resembles the issue you are facing. It turned out to be a configuration issue.&lt;/p&gt;
&lt;p&gt;Also can you please post the link to the devacademy lesson that you used to test this. I can ask the writers to review the content again.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448395?ContentTypeID=1</link><pubDate>Fri, 29 Sep 2023 18:32:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f946dbc5-5ea7-4e52-a3d1-9ec4430e31ff</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Hi Susheel,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;1. Can you help me with my original problem? The UART is having problems receiving data in ASYNC mode. The&amp;nbsp;&lt;em&gt;fix&amp;nbsp;&lt;/em&gt;doesn&amp;#39;t seem to have resolved the problem. I&amp;#39;m also unclear if the additional lines are required in the config file anymore or not. Their presence seems to reduce the likelyhood or severity of missing or shuffled bytes, but not eliminate it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;2. I&amp;#39;m using the NRF52840 as a partial UART buffer between two other devices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Outside device &amp;lt;-- UART --&amp;gt; BMD &amp;lt;-- UART --&amp;gt; Inside device&lt;/p&gt;
&lt;p&gt;I want to be able to have two fully working ASYNC UART peripherals. I first need to get one ASYNC UART working, then add in a second one. As indicated before, the Lesson 5 example as modified doesn&amp;#39;t work properly. This in essence should behave as an ECHO, return anything it receives. The problem isn&amp;#39;t on the sending end. The problem appears to be on the receiving end. Please review my other comments for further detail.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448256?ContentTypeID=1</link><pubDate>Fri, 29 Sep 2023 07:27:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1fef774-fc8c-46c8-892e-076af68f9d9e</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Yes, Async mode in the UART needs a timer for each instance. It is a bit resource intensive. Why do you need two UARTs in Async mode? What is the use case here?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448032?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 19:41:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2422f7d-c2ed-406d-bb76-c2f5e827fb50</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Also, I would like to get two UART&amp;#39;s working in ASYNC mode with high data reliability. What would I need to set in the prj.config file to enable both UART&amp;#39;s in ASYNC mode? Does each UART need a different timer?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For example:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#UART0 Config&lt;/p&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC_TIMER&lt;/span&gt;&lt;span&gt;=1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_TIMER1&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;#UART1 Config&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_1_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_1_NRF_HW_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_1_NRF_HW_ASYNC_TIMER&lt;/span&gt;&lt;span&gt;=2&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_TIMER2&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448030?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 19:29:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01d861dc-3ba4-4587-95b6-d6ead9d59cf5</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;I modified DEVZONE Academy lesson 5 to echo back received data. I found that the echo shows data is getting missed. I am not sure how to resolve this issue.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It makes sense that data is being missed when the RECEIVE_BUFF_SIZE is less then the length of the data being sent. However, I notice missed data even when I increase the buffer size.&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/pastedimage1695842958971v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What is going on here?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3583.fund_5F00_less5_5F00_exer1_5F00_solution.zip"&gt;devzone.nordicsemi.com/.../3583.fund_5F00_less5_5F00_exer1_5F00_solution.zip&lt;/a&gt;I&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448028?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 19:09:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3897b9e-51fa-4d5f-9b3a-a430eb70423a</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;Do I need these additional lines in the prj.conf file to make UART ASYNC behavior work properly?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_UART_0_NRF_HW_ASYNC_TIMER&lt;/span&gt;&lt;span&gt;=1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_NRFX_TIMER1&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;It seems that having these lines in the prj.config file helps it all run better. Which I do not understand. I would think that the ASYNC uart would either work or not work. Not varying levels of somewhat work.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/448003?ContentTypeID=1</link><pubDate>Wed, 27 Sep 2023 15:09:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6abc91c5-f043-45a4-858a-97b7bd98829d</guid><dc:creator>Canadian_EE</dc:creator><description>&lt;p&gt;I am trying a re-install of the NCSV 2.4.0 library. Perhaps that will resolve the issue.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Zephyr 2.4.0 with Async UART</title><link>https://devzone.nordicsemi.com/thread/447793?ContentTypeID=1</link><pubDate>Tue, 26 Sep 2023 15:59:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3aa0aaf9-617d-434c-82e5-54386ff31bf8</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;The solution that was proposed is very old and hence definitely not API compatible with the newer ncsv2.4.0.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/zephyrproject-rtos/zephyr/pull/25975"&gt;pull request&lt;/a&gt; the other thread is showing seems to be merged. So I am confused that you are using ncsv2.4.0 and still have to patch the files with the PR changes? Shouldn&amp;#39;t the changes be already in?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>