<?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>UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed</link><description>Hi everyone, 
 
 in our project we transmit from an android app to Nordic BLE big amount of data (up to 180.000 bytes). I do it by using hvx notifications (MTU 247) and each time I get the notification I try to transmit the data over UART. But we have</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 02 Aug 2019 08:19:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed" /><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/202051?ContentTypeID=1</link><pubDate>Fri, 02 Aug 2019 08:19:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b3a2c2f-bf73-40c3-a863-828afb73ef67</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It seems like the buffers are full then. When the NRF_ERROR_NO_MEM error occurs you should stop sending bytes to the UART, and buffer them locally instead.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once the&amp;nbsp;APP_UART_TX_EMPTY event occurs you know that the UART has emptied it&amp;#39;s internal buffers and are ready to receive more data.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/201897?ContentTypeID=1</link><pubDate>Thu, 01 Aug 2019 13:00:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0a060751-16a9-4446-acb8-dad36e1b6d8b</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;Hi I have tried that with a buffer of 100.000Bytes size and fed it with BLE data but it is always the same:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1564664150773v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;-&amp;gt; NRF_ERROR_NO_MEM (4)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1564664246650v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I have also tried to buffer 20 Packets (20 x 244Bytes) and start then with the UART but no effect.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/201750?ContentTypeID=1</link><pubDate>Thu, 01 Aug 2019 07:33:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5052303-375f-423a-b133-f1e69548fb6c</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you have room to buffer the entire image in RAM then you should be able to simply use this buffer. Once the BLE data starts coming in you store it in the buffer, and once the buffer has got enough data to send a block over the UART you send a block from the buffer over the UART.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The incoming data from BLE will always go to the buffer first, and it doesn&amp;#39;t matter what the UART is doing.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the UART is quicker than the BLE link then they will stay more or less in sync, but if the UART is slower then the buffer will store the data while the UART is working.&amp;nbsp;&lt;/p&gt;
[quote user="Comodo"]Regarding LOG_INFO or debug information; does it has any impact on UART speed?&amp;nbsp;[/quote]
&lt;p&gt;Which backend are you using?&amp;nbsp;&lt;br /&gt;The RTT backend should have very little impact on system performance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/201678?ContentTypeID=1</link><pubDate>Wed, 31 Jul 2019 16:12:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6f7fa2c6-3bfb-45e6-b7a1-ac8a69092939</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;Yeah I have tried to send small heaps (244Bytes, each BLE Packet) on every &amp;quot;on_HVX&amp;quot; interrupt. I have faced crashes at some point&amp;nbsp;(for example packetnr. 55 out of 365 BLE Packets). It was necessary to slow down the BLE notifications (by 4 ms for each packet). The reason for crash I guess was that the interrupt came before UART wasn&amp;#39;t done with&amp;nbsp;a packet transfer.&amp;nbsp; BLE 2MBit is (as expected)&amp;nbsp;a bit&amp;nbsp;faster than UART can handle. But unfortunately reducing the speed to BLE 1MBit was not the solution. I had to build some (4ms) delays between notifications on Android side. In sdk_config I have:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;br /&gt;&lt;em&gt;#define NRF_BLE_SCAN_MIN_CONNECTION_INTERVAL 7.5&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;#define NRF_BLE_SCAN_MAX_CONNECTION_INTERVAL 30&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;br /&gt;&lt;em&gt;#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;#define NRF_SDH_BLE_GAP_EVENT_LENGTH 400&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;&lt;/em&gt;and&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;config of the PHY:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;ble_gap_phys_t const phys =&lt;br /&gt; {&lt;br /&gt; .rx_phys = BLE_GAP_PHY_1MBPS,&lt;br /&gt; .tx_phys = BLE_GAP_PHY_1MBPS,&lt;br /&gt; };&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;has no impact since the delay of 4 ms is necessary.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The part of the code for on_hvx:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;static void on_hvx(ble_timeandsound_c_t * p_ble_timeandsound_c, ble_evt_t const * p_ble_evt)&lt;br /&gt;{&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;....&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt; if(pcounter &amp;lt;= NumOfExpPackets)&lt;br /&gt; { &lt;br /&gt;&amp;nbsp; u16counter++;&amp;nbsp;&lt;br /&gt;&amp;nbsp; ble_tas_uart_senddata(&lt;strong&gt;p_ble_evt-&amp;gt;evt.gattc_evt.params.hvx.data&lt;/strong&gt;, m_ble_max_data_len,&amp;nbsp; &amp;nbsp;counter);&lt;br /&gt;&amp;nbsp; //NRF_LOG_INFO(&amp;quot; PACKET = %d&amp;quot;, pcounter);&lt;br /&gt; }else&lt;br /&gt; {&lt;br /&gt;&amp;nbsp; u16counter = 0;&lt;br /&gt; }&lt;/em&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;em&gt;....&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt; p_ble_timeandsound_c-&amp;gt;evt_handler(p_ble_timeandsound_c, &amp;amp;ble_timeandsound_c_evt);&lt;br /&gt; &lt;br /&gt; }&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;So there is no delay in on_hvx handle and m_ble_max_data_len = 244.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Regarding LOG_INFO or debug information; does it has any impact on UART speed?&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/201601?ContentTypeID=1</link><pubDate>Wed, 31 Jul 2019 13:09:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a4eea57-c670-4fd4-a58e-233056f4d442</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;If I understand you correctly you spend 2.3 seconds transferring the entire image over Bluetooth, and then 1.0 seconds afterwards to send it over UART?&lt;/p&gt;
&lt;p&gt;If so then you would probably realize the biggest savings if you are able to send the data over the UART during BLE activity, so that you don&amp;#39;t have to wait until the end of the BLE transmission before starting UART TX. In this case you should be able to shave off almost the entire 1 second spent during UART activity, since it appears the BLE communication is slower than the UART communication in your example.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I realize you&amp;nbsp;did the UART transfer after the BLE transfer to solve some other issue, but tackling this issue will probably be easier than to move everything to USB.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It is technically possible to configure the USB interface in the nRF52840, and handover information from the BLE stack to USB, but I doubt it will be significantly faster compared to the UART running at 1Mbaud.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/201344?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2019 17:47:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76d34f0e-f193-4441-8511-8f9c185a8c29</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;So our final conclusion: I can transfer 80KB of data from Android device-&amp;gt;Nordic-&amp;gt;UART-&amp;gt;PC(Matlab) in around 4,4 seconds which is still too long (1000ms of sound data, 2300ms BLE 1Mbits, 1000ms UART). The bottleneck is the UART (1Mbits) ofcourse in case we use 2Mbits. My collegue asked me today why do I am not using the USBD interface for the data transfer. I checked out the examples and I am not sure if its possible to use it with Matlab directly. Have someone any experience with BLE-&amp;gt;USB?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/193299?ContentTypeID=1</link><pubDate>Tue, 18 Jun 2019 06:52:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c92e4a06-5f2b-45d6-96d0-4882c8e3dab1</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Ok, just let me know when you have more questions.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/193181?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 12:39:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e50dc20f-b3a2-4b47-a139-81d6d6767f91</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;Thanks for the support. I will get back to you after I got some new results.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/193165?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 12:08:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3cd42c1-3277-4e50-84cb-2f5c54c5adee</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Hüseyin&amp;nbsp;&lt;/p&gt;
[quote user="Comodo"]Why unsubscribe?[/quote]
&lt;p&gt;&amp;nbsp;A client would typically unsubscribe to data updates if&amp;nbsp;the application controlling it doesn&amp;#39;t need the data, or if it is unable to receive them (like in your case).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;By being able to only subscribe to updates on the characteristics that are currently needed you can get a more power efficient system, since you are not wasting time and energy sending data that the client doesn&amp;#39;t need.&amp;nbsp;&lt;/p&gt;
[quote user="Comodo"]I am not responsible for the Android implementation, but it was wrong definition, I meant &amp;quot;acknowledge&amp;quot; that the BLE notification packet on nRF52 side have been received. But consumes time (packets between 200- 400).[/quote]
&lt;p&gt;&amp;nbsp;Maybe you are referring to sending an indication instead of a notification, which requires the client to send an explicit acknowledge on every received packet.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This will definitely slow down communication, and is not recommended if you are trying to optimize throughput and/or power consumption.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
[quote user="Comodo"]Somehow singlebytes cause a traceble crash in nRF SW.&amp;nbsp;[/quote]
&lt;p&gt;Hm, that shouldn&amp;#39;t really happen, but from an efficiency standpoint it is definitely better to send data in larger chunks.&amp;nbsp;Otherwise you won&amp;#39;t be able to take advantage of the easyDMA controller to seamlessly get data from the RAM during longer sequences.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/192927?ContentTypeID=1</link><pubDate>Fri, 14 Jun 2019 12:42:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32a5d4b2-970d-4be7-ba98-3f491deed860</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;So first of all thx for the answer, I wasn&amp;#39;t able the work on that project in the&amp;nbsp;past 2 weeks. Now I am back on track again:&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed/191131"]By sending data over the UART as heap I assume you mean you are forwarding a larger buffer to the UART driver, rather than just single bytes?[/quote]
&lt;p&gt;Yes, as I mentioned before, at every notification 244Bytes will be received and if I try to send this over UART right after, I lose some BLE notifications and packets. So I have created a large buffer to process them later.&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed/191131"]Also, the client on the nRF52 side should always be able to unsubscribe or subscribe to notification updates, doing otherwise would be in violation of the Bluetooth specification.[/quote]
&lt;p&gt;Why unsubscribe?&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed/191131"]I am not quite sure&amp;nbsp;what you mean by the notification response. There is an &lt;a href="https://developer.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html#onNotificationSent(android.bluetooth.BluetoothDevice,%20int)"&gt;onNotificationSent&lt;/a&gt; callback issued after the server on the Android side sends a notification, which you should check to ensure the notifications are successfully sent.&amp;nbsp;[/quote]
&lt;p&gt;I am not responsible for the Android implementation, but it was wrong definition, I meant &amp;quot;acknowledge&amp;quot; that the BLE notification packet on nRF52 side have been received. But consumes time (packets between 200- 400).&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed/191131"]An alternative to controlling the data flow by enabling/disabling notifications is to use a separate characteristic to inform the server about how much buffer space you have on the nRF52 side. Then you can update this dynamically, and the Android app can make sure not to send any more data than the buffers in the nRF52 can handle.&amp;nbsp;[/quote]
&lt;p&gt;I can try this one. Good idea.&lt;/p&gt;
[quote userid="2116" url="~/f/nordic-q-a/47566/uart-fifo-flush-how-to-determine-that-uart-tx-is-completed/191131"]By sending data over the UART as heap I assume you mean you are forwarding a larger buffer to the UART driver, rather than just single bytes?[/quote]
&lt;p&gt;Somehow singlebytes cause a traceble crash in nRF SW.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/191131?ContentTypeID=1</link><pubDate>Wed, 05 Jun 2019 13:30:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf46caa5-b4c6-4310-995d-3da0ffb5f9e2</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I am not quite sure&amp;nbsp;what you mean by the notification response. There is an &lt;a href="https://developer.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html#onNotificationSent(android.bluetooth.BluetoothDevice,%20int)"&gt;onNotificationSent&lt;/a&gt; callback issued after the server on the Android side sends a notification, which you should check to ensure the notifications are successfully sent.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, the client on the nRF52 side should always be able to unsubscribe or subscribe to notification updates, doing otherwise would be in violation of the Bluetooth specification.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;An alternative to controlling the data flow by enabling/disabling notifications is to use a separate characteristic to inform the server about how much buffer space you have on the nRF52 side. Then you can update this dynamically, and the Android app can make sure not to send any more data than the buffers in the nRF52 can handle.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;By sending data over the UART as heap I assume you mean you are forwarding a larger buffer to the UART driver, rather than just single bytes?&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/190766?ContentTypeID=1</link><pubDate>Tue, 04 Jun 2019 11:58:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa8c8d3a-6288-4bbb-b543-59e0492a1c25</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;Hi, at the moment we have different data sizes depending on setting 2KB to 190KB. We are using two Pixel 3 phones (BLE5 capable) to cross-check the implementation. My collegue who is implementing the android side mentioned that he can set MTU up to 512.&amp;nbsp; Transfering data between two phones is very quicker (ca. 1000ms). The android BLE implementation has no notification response to&amp;nbsp;keep the speed; so it is not possible to stop notification (2 ms per package). Right now I have a workaround, I store&amp;nbsp;all RX BLE data in to a Buffer (which is limited to 90KB) and send it over uart as heaps, which takes 6 seconds.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am not sure if your proposal works more faster or ever implementable (2ms between packages, it should be longer to react at right time).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Right now I am working on another workaround to speed up the RX-Buffer -&amp;gt; UART (by using bigger heaps, 4K-16K).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/189375?ContentTypeID=1</link><pubDate>Mon, 27 May 2019 14:27:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63a54bb6-2550-4270-bc72-a0fa43c26a2f</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are you able to disable notifications on the characteristic temporarily to avoid the client on the Android side sending more data until the UART has had time to flush the buffers?&lt;/p&gt;
&lt;p&gt;Then you could disable the notifications once you have received a certain amount of data, wait for the APP_UART_TX_EMPTY event to occur, and enable notifications again.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This probably requires the addition of some code in the app to verify if notifications are enabled before uploading data to the Bluetooth stack.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/188651?ContentTypeID=1</link><pubDate>Wed, 22 May 2019 18:06:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0deadb9a-c51b-4859-bed2-a699feacc49a</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;Hi still got this problem&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1558548113651v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I fill the Tx buffer and wait until it has been sent but that doesnt happen it stacks there.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/188295?ContentTypeID=1</link><pubDate>Tue, 21 May 2019 13:27:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0abba848-9c22-4d52-881a-4bfd3c652d03</guid><dc:creator>Andy</dc:creator><description>&lt;p&gt;Nevermind, just saw the API.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/188294?ContentTypeID=1</link><pubDate>Tue, 21 May 2019 13:24:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fbe3000-f108-4c09-9353-c5c27572ffa8</guid><dc:creator>Andy</dc:creator><description>&lt;p&gt;Ah, if you&amp;#39;re using the app_uart library then yes. But then I don&amp;#39;t understand your problem with flushing the FIFO. I&amp;#39;ve never used that library, but I assume it flushes the buffers by itself.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/188290?ContentTypeID=1</link><pubDate>Tue, 21 May 2019 13:17:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3cb2debd-2293-4361-81b4-ad03ec905fc2</guid><dc:creator>Comodo</dc:creator><description>&lt;p&gt;You mean &amp;quot;APP_UART_TX_EMPTY&amp;quot; ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART FIFO Flush: How to determine that UART TX is completed</title><link>https://devzone.nordicsemi.com/thread/188246?ContentTypeID=1</link><pubDate>Tue, 21 May 2019 12:04:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba0ef098-ac5e-4a31-9752-21e6c3664ef8</guid><dc:creator>Andy</dc:creator><description>&lt;p&gt;You should get NRFX_UART_EVT_TX_DONE on the event handler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>