<?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 bootloader fails at 1000000 baud with HWFC</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/44886/uart-bootloader-fails-at-1000000-baud-with-hwfc</link><description>I tried with the DK and my own USB-serial adapter and both fails at 1M with HWFC with this error: 
 nrfutil dfu serial -pkg bltest.zip --baud-rate 1000000 --flow-control 1 -p COM38 
 pc_ble_driver_py.exceptions.NordicSemiException: Did not receive checksum</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 29 Nov 2019 12:36:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/44886/uart-bootloader-fails-at-1000000-baud-with-hwfc" /><item><title>RE: UART bootloader fails at 1000000 baud with HWFC</title><link>https://devzone.nordicsemi.com/thread/222801?ContentTypeID=1</link><pubDate>Fri, 29 Nov 2019 12:36:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5810e03b-2e83-4934-ae38-b88456e5e7e1</guid><dc:creator>Valerii_Ie</dc:creator><description>&lt;p&gt;The queue size should correspond to MTU and object size. In DFU object size is usually same to flash page size (4096B).&amp;nbsp;&lt;br /&gt;For example if your MTU == 64B the amount of buffers in queue needed is 4096/64 = 64 or more. This will buffer all DFU packets in RAM untill Object execute command received and DFU will have time to write all buffers to flash. Another solution could be playing with PRN and sending GetCRC requests by DFU host to give more time DFU target to sync.&amp;nbsp;&lt;br /&gt;If SD used in bootloader the&amp;nbsp;NRF_FSTORAGE_SD_QUEUE_SIZE also should be increased to make DFU work on high baudrates.&amp;nbsp;&lt;br /&gt;For my case:&amp;nbsp;&lt;br /&gt;MTU = 128 B&lt;br /&gt;&lt;span&gt;#define SCHED_QUEUE_SIZE&amp;nbsp; 36&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;#define NRF_DFU_SERIAL_UART_RX_BUFFERS&amp;nbsp;36&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;#define&amp;nbsp; NRF_FSTORAGE_SD_QUEUE_SIZE 36&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The future plan is to find way to activate RTS from upper layer when few free buffers left and deactivate RTS when once all buffers processed. This will should work good on devices with limited RAM.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART bootloader fails at 1000000 baud with HWFC</title><link>https://devzone.nordicsemi.com/thread/219807?ContentTypeID=1</link><pubDate>Wed, 13 Nov 2019 07:19:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:badc9400-ee36-494a-9516-8dc7224a304b</guid><dc:creator>Krzysztof Chruscinski</dc:creator><description>&lt;p&gt;I&amp;#39;m not sure if change in nrf_bootloader.c is required. However,&amp;nbsp;&lt;span&gt;NRF_DFU_SERIAL_UART_RX_BUFFERS must be increased for higher baudrates.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I run few tests with 1M baudrate and used profiler in app_scheduler (APP_SCHEDULER_WITH_PROFILER option) to figure out what was the maximal utilization. I&amp;rsquo;ve only increased number of RX buffers to 32 (NRF_DFU_SERIAL_UART_RX_BUFFERS). On my setup utilization was never higher than 21 (between 10 and 21 when running DFU few times).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: UART bootloader fails at 1000000 baud with HWFC</title><link>https://devzone.nordicsemi.com/thread/176315?ContentTypeID=1</link><pubDate>Fri, 15 Mar 2019 01:10:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75ddff8d-b4e6-41c5-b2a0-33844dd2558c</guid><dc:creator>Jefferson</dc:creator><description>&lt;p&gt;I got it to work with these settings:&lt;/p&gt;
&lt;p&gt;In nrf_bootloader.c:&lt;/p&gt;
&lt;p&gt;#define SCHED_QUEUE_SIZE&amp;nbsp; &amp;nbsp; &amp;nbsp; 128&lt;/p&gt;
&lt;p&gt;In sdk_config.h:&lt;/p&gt;
&lt;p&gt;#define NRF_DFU_SERIAL_UART_RX_BUFFERS 200&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>