<?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>52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/121626/52840-ncs-uart-dfu</link><description>Hi 
 I am currently working with my project with 52840 and i am using sdk v3.0.1 &amp;amp; toolchain v3.0.0 to develope. 
 I am learning how to use DFU over UART from the application in Devacademy l9/e2 , it works fine using the example , after that i try it</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 03 Jul 2025 19:00:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/121626/52840-ncs-uart-dfu" /><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/541378?ContentTypeID=1</link><pubDate>Thu, 03 Jul 2025 19:00:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d3ff3c12-5793-460f-84e4-98ef1297a2f0</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Sorry for the delayed response. Were you able to resolve the issue? If you&amp;#39;re still experiencing problems, please share a minimal project with me. I will try to run it on the DK and attempt to reproduce the issue.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not entirely sure what exactly is going wrong, but it’s possible that when you enable &lt;code&gt;CONFIG_MCUMGR_TRANSPORT_UART=y&lt;/code&gt;, MCUmanager sets up the UART and installs its own interrupt handler early during boot. If the application later sets its own UART IRQ handler using &lt;code&gt;uart_irq_callback_user_data_set()&lt;/code&gt;, it may override the one used by MCUmanager. Since MCUmanager may not be aware that its handler was replaced, it doesn&amp;#39;t regain control of the UART. Simply removing the application&amp;#39;s handler might not bring DFU back. It may only start working again if you manually forward the UART data to MCUmanager or reboot the device.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/537793?ContentTypeID=1</link><pubDate>Tue, 03 Jun 2025 08:03:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96988379-eb52-44bb-a0b0-7fe9cdb2813d</guid><dc:creator>yi hung wu</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; Still not working , actually i can see &lt;span&gt;DFU&amp;nbsp;&lt;/span&gt;feedback from jlink RTT viewer with my original prj.conf settings.&lt;br /&gt;&lt;br /&gt;The only difference between success and fail is whether UART0 irq callback was intiailized by&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;uart_irq_callback_user_data_set API&amp;nbsp;&lt;/span&gt;&lt;/span&gt;in the beginning, Is there any way to disable my irq callback? i tried&amp;nbsp;&lt;span&gt;uart_irq_callback_user_data_set(&lt;/span&gt;&lt;span&gt;dev_uart0&lt;/span&gt;&lt;span&gt;, NULL&lt;/span&gt;&lt;span&gt;, NULL) but its not working.&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Fail&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:194px;max-width:474px;" alt=" " height="194" src="https://devzone.nordicsemi.com/resized-image/__size/948x388/__key/communityserver-discussions-components-files/4/_165747725F00_2025_2D00_06_2D00_03_5F00_154551644.png" width="474" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;success&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:259px;max-width:490px;" alt=" " height="259" src="https://devzone.nordicsemi.com/resized-image/__size/980x518/__key/communityserver-discussions-components-files/4/1031.success.PNG" width="490" /&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Wu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/537667?ContentTypeID=1</link><pubDate>Mon, 02 Jun 2025 12:53:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf963c10-b38c-4849-90bf-263acb94f6d4</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;While checking the shared &lt;code&gt;prj.config&lt;/code&gt;, I see that you are enabling RTT instead of UART for logs and the console, which disables all console output and logging over UART. So even if DFU starts working, you won&amp;#39;t see any feedback on the UART line (used by Auterm), as it&amp;#39;s being sent to RTT instead. Only one backend should be active. If you&amp;#39;re doing DFU over UART, then UART must be the active log backend. RTT should be disabled during DFU testing. Try using the configuration below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="text"&gt;
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_BACKEND_RTT=n
CONFIG_UART_CONSOLE=y
CONFIG_RTT_CONSOLE=n
&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/537438?ContentTypeID=1</link><pubDate>Thu, 29 May 2025 01:32:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1a828f5-d79e-402e-a3f3-f5fc01f0a7b7</guid><dc:creator>yi hung wu</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; here is&amp;nbsp; my prj.conf and 52840.overlay&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;==========================prj.conf=====================


#================LOG================
CONFIG_LOG=y
CONFIG_LOG_MODE_DEFERRED=n
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_LOG_MODE_MINIMAL=y

CONFIG_USE_SEGGER_RTT=y 

CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_UART=n

CONFIG_RTT_CONSOLE=y
CONFIG_UART_CONSOLE=n   


#================FLOATING POINT================
CONFIG_FPU=y

#================GPIO================
CONFIG_GPIO=y


#================SPI================
CONFIG_SPI=y
CONFIG_NORDIC_QSPI_NOR=y 

#================UART================
CONFIG_SERIAL=y
CONFIG_UART_USE_RUNTIME_CONFIGURE=y
CONFIG_UART_INTERRUPT_DRIVEN=y      
CONFIG_UART_ASYNC_API=n           

#================I2C================
CONFIG_I2C=y

#================ADC================
CONFIG_ADC=y

#================PWM================
# CONFIG_PWM=y

#================MCU FLASH================
CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y 
CONFIG_SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS=y 


#================Partition Manager================
CONFIG_PARTITION_MANAGER_ENABLED=y


#================MCU WATCHDOG================
CONFIG_WATCHDOG=y

#================BLUETOOTH================
CONFIG_BT=y
CONFIG_BT_RX_STACK_SIZE=2700 

CONFIG_BT_DEVICE_NAME_MAX=30
CONFIG_BT_DEVICE_NAME=&amp;quot;52840_NUS&amp;quot;
CONFIG_BT_DEVICE_NAME_DYNAMIC=y

CONFIG_BT_MAX_CONN=2

CONFIG_BT_CTLR_CONN_RSSI=y

CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y


CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251

CONFIG_BT_L2CAP_TX_MTU=247

# #================BLUETOOTH_peripheral================

CONFIG_BT_PERIPHERAL=y

CONFIG_BT_NUS=y # Enable the NUS service

# CONNECTION PARAMETERS
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=30
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=50
CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=40

CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=y   
 

CONFIG_BT_LIM_ADV_TIMEOUT=40

#====================BT DFU====================
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y


#====================UART DFU (MCUMGR)====================
# # STEP 5.2 - Enable mcumgr DFU in application
# Enable MCUMGR 
CONFIG_MCUMGR=y

# Enable MCUMGR management for both OS and Images
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_IMG=y

# Configure MCUMGR transport to UART
CONFIG_MCUMGR_TRANSPORT_UART=y

# Dependencies
# Configure dependencies for CONFIG_MCUMGR  
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y

# Configure dependencies for CONFIG_MCUMGR_GRP_IMG  
CONFIG_FLASH=y
CONFIG_IMG_MANAGER=y

# Configure dependencies for CONFIG_IMG_MANAGER  
CONFIG_STREAM_FLASH=y
CONFIG_FLASH_MAP=y

# Configure dependencies for CONFIG_MCUMGR_TRANSPORT_UART 
CONFIG_BASE64=y


#================BLUETOOTH_central================
# Enable the BLE stack with GATT Client configuration
CONFIG_BT_CENTRAL=y

CONFIG_BT_GATT_CLIENT=y

# Enable the BLE modules from NCS
CONFIG_BT_NUS_CLIENT=y
CONFIG_BT_SCAN=y
CONFIG_BT_SCAN_FILTER_ENABLE=y
CONFIG_BT_SCAN_UUID_CNT=1
CONFIG_BT_SCAN_NAME_CNT=1
CONFIG_BT_GATT_DM=y

CONFIG_BT_SCAN_WITH_IDENTITY=y

#================LOW_FREQ_CLOCK================
CONFIG_CLOCK_CONTROL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=n
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y


#================POWER MANAGMENT================
CONFIG_PM_DEVICE=y




#====================PIPES====================
CONFIG_PIPES=y




==========================OVERLAY=====================




&amp;amp;reg0 {
    compatible = &amp;quot;nordic,nrf52x-regulator-hv&amp;quot;;
	status = &amp;quot;okay&amp;quot;;
};

&amp;amp;reg1 {
    compatible = &amp;quot;nordic,nrf5x-regulator&amp;quot;;
	regulator-initial-mode = &amp;lt;NRF5X_REG_MODE_DCDC&amp;gt;;
};

&amp;amp;uicr {

    // NFC
    nfct-pins-as-gpios;

    // Reset pin
	/delete-property/ gpio-as-nreset;
};

/{
    my_output{

        compatible = &amp;quot;gpio-leds&amp;quot;;

        led_red: LED_RED {
            gpios = &amp;lt; &amp;amp;gpio0 9 0 &amp;gt;;
            label = &amp;quot;LED_RED&amp;quot;;
        };

        led_green: LED_GREEN {
            gpios = &amp;lt; &amp;amp;gpio0 10 0 &amp;gt;;
            label = &amp;quot;LED_GREEN&amp;quot;;
        };

    };
};


/{

    my_input {

        compatible = &amp;quot;gpio-keys&amp;quot;;

        my_input_0: MY_INPUT_0 {
            gpios = &amp;lt; &amp;amp;gpio0 4 0 &amp;gt;;
            label = &amp;quot;MY INPUT 0&amp;quot;;
        };

    };     
};


//==================UART==================//


&amp;amp;pinctrl {

    uart0_default: uart0_default {

        group1 {
            psels = &amp;lt;NRF_PSEL(UART_TX, 0, 6)&amp;gt;,
                    &amp;lt;NRF_PSEL(UART_RX, 0, 8)&amp;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;;
            low-power-enable;
        };
    };
};

&amp;amp;uart0 {

    compatible = &amp;quot;nordic,nrf-uarte&amp;quot;;
    status = &amp;quot;okay&amp;quot;;
    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 {

	i2c0_default: i2c0_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(TWIM_SDA, 1, 14)&amp;gt;,
                    &amp;lt;NRF_PSEL(TWIM_SCL, 0, 12)&amp;gt;;
            nordic,drive-mode = &amp;lt;NRF_DRIVE_S0D1&amp;gt;; // standard 0, disconnect 1
            bias-pull-up; // internal pull-up is too weak, only for 100kHz or lower  
            
		};
	};

	i2c0_sleep: i2c0_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(TWIM_SDA, 1, 14)&amp;gt;,
                    &amp;lt;NRF_PSEL(TWIM_SCL, 0, 12)&amp;gt;;
			low-power-enable;
		};
	};
};

&amp;amp;i2c0 {

    compatible = &amp;quot;nordic,nrf-twim&amp;quot;;
    status = &amp;quot;okay&amp;quot;;
    clock-frequency = &amp;lt;I2C_BITRATE_STANDARD&amp;gt;;
    pinctrl-0 = &amp;lt;&amp;amp;i2c0_default&amp;gt;;
    pinctrl-1 = &amp;lt;&amp;amp;i2c0_sleep&amp;gt;;
    pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;

    lis3dh: lis3dh@19 
    {
        compatible = &amp;quot;vendor,i2cdevice&amp;quot;;
        reg = &amp;lt;0x19&amp;gt;;
    };

};

&amp;amp;pinctrl {

    spi1_default: spi1_default {
        group1 {
            psels = &amp;lt;NRF_PSEL(SPIM_SCK,  0, 22)&amp;gt;,
                    &amp;lt;NRF_PSEL(SPIM_MOSI, 0, 30)&amp;gt;,
                    &amp;lt;NRF_PSEL(SPIM_MISO, 0, 23)&amp;gt;;
        };
    };
    spi1_sleep: spi1_sleep {
        group1 {
            psels = &amp;lt;NRF_PSEL(SPIM_SCK,  0, 22)&amp;gt;,
                    &amp;lt;NRF_PSEL(SPIM_MOSI, 0, 30)&amp;gt;,
                    &amp;lt;NRF_PSEL(SPIM_MISO, 0, 23)&amp;gt;;
            low-power-enable;
        };
    }; 
};

&amp;amp;spi1 {

    compatible = &amp;quot;nordic,nrf-spim&amp;quot;;
    status = &amp;quot;okay&amp;quot;;
    pinctrl-0 = &amp;lt;&amp;amp;spi1_default&amp;gt;;
    pinctrl-1 = &amp;lt;&amp;amp;spi1_sleep&amp;gt;;
    pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
    cs-gpios = &amp;lt;&amp;amp;gpio0 24 GPIO_ACTIVE_LOW&amp;gt;,
               &amp;lt;&amp;amp;gpio0 25 GPIO_ACTIVE_LOW&amp;gt;;

    m95p16: m95p16@0
    {
        compatible = &amp;quot;vendor,spidevice&amp;quot;;
        reg = &amp;lt; 0 &amp;gt;;
        spi-max-frequency = &amp;lt; DT_FREQ_M(8) &amp;gt;;
        wp-gpios = &amp;lt;&amp;amp;gpio0 26 GPIO_ACTIVE_LOW&amp;gt;;
    };

    at45db041: at45db041@1
    {
        compatible = &amp;quot;vendor,spidevice&amp;quot;; 
        reg = &amp;lt; 1 &amp;gt;;
        spi-max-frequency = &amp;lt; DT_FREQ_M(8) &amp;gt;;
        wp-gpios = &amp;lt;&amp;amp;gpio0 18 GPIO_ACTIVE_LOW&amp;gt;;
    };
};


&amp;amp;adc {

    compatible = &amp;quot;nordic,nrf-saadc&amp;quot;;
	#address-cells = &amp;lt;1&amp;gt;;
	#size-cells = &amp;lt;0&amp;gt;;
	status = &amp;quot;okay&amp;quot;;
    /* 52840 adc channel */
    /* P0.02、03、04、05、28、29、30、31 */
	channel@0 
    {
		reg = &amp;lt;0&amp;gt;;
		zephyr,gain = &amp;quot;ADC_GAIN_1_6&amp;quot;;
		zephyr,reference = &amp;quot;ADC_REF_INTERNAL&amp;quot;;
		zephyr,acquisition-time = &amp;lt;ADC_ACQ_TIME_DEFAULT&amp;gt;;
		zephyr,input-positive = &amp;lt;NRF_SAADC_AIN0&amp;gt;;
        // zephyr,input-negative = &amp;lt;NRF_SAADC_AIN3&amp;gt;; // 负输入
		zephyr,resolution = &amp;lt;12&amp;gt;;
	};

    channel@1 
    {
		reg = &amp;lt;1&amp;gt;;
		zephyr,gain = &amp;quot;ADC_GAIN_1_6&amp;quot;;
		zephyr,reference = &amp;quot;ADC_REF_INTERNAL&amp;quot;;
		zephyr,acquisition-time = &amp;lt;ADC_ACQ_TIME_DEFAULT&amp;gt;;
		zephyr,input-positive = &amp;lt;NRF_SAADC_AIN1&amp;gt;; 
		zephyr,resolution = &amp;lt;12&amp;gt;;
	};

    channel@2
    {
		reg = &amp;lt;2&amp;gt;;
		zephyr,gain = &amp;quot;ADC_GAIN_1_6&amp;quot;;
		zephyr,reference = &amp;quot;ADC_REF_INTERNAL&amp;quot;;
		zephyr,acquisition-time = &amp;lt;ADC_ACQ_TIME_DEFAULT&amp;gt;;
		zephyr,input-positive = &amp;lt;NRF_SAADC_VDD&amp;gt;;
		zephyr,resolution = &amp;lt;12&amp;gt;;
	};
};

/{
	zephyr,user 
    {
		io-channels = &amp;lt;&amp;amp;adc 0&amp;gt;, 
                      &amp;lt;&amp;amp;adc 1&amp;gt;,
                      &amp;lt;&amp;amp;adc 2&amp;gt;;
	};
};

&amp;amp;wdt0 {

    compatible = &amp;quot;nordic,nrf-wdt&amp;quot;;
    status = &amp;quot;okay&amp;quot;;
    
};

/{

    aliases
    {

        io-led-red     = &amp;amp;led_red;
        io-led-green   = &amp;amp;led_green;

        io-but0        = &amp;amp;my_input_0;

        spi-m95p16     = &amp;amp;m95p16;
        
        i2c-lis3dh     = &amp;amp;lis3dh;

        uart-0         = &amp;amp;uart0;


        m-watchdog     = &amp;amp;wdt0;

    };

};


&amp;amp;mx25r64 {

	status = &amp;quot;disabled&amp;quot;;

};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Wu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/537171?ContentTypeID=1</link><pubDate>Tue, 27 May 2025 12:23:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01bc9872-1243-4170-afd0-b9b06bc227df</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Sorry for the confusion, and thank you for clarifying it. In this case, what you have done, disabling the UART IRQs is correct. Have you enabled MCUmgr for UART DFU? I recommend checking the &lt;code&gt;prj.conf&lt;/code&gt; file from the sample I shared in my previous response;&lt;a href="https://github.com/NordicDeveloperAcademy/ncs-inter/blob/main/l9/l9_e1_sol/prj.conf"&gt; you can find it here&lt;/a&gt;. If you are enabling all these configurations, please share your &lt;code&gt;prj.conf&lt;/code&gt; and device tree overlay files so I can take a look.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/536542?ContentTypeID=1</link><pubDate>Thu, 22 May 2025 06:59:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:58686572-3b22-491f-8cb6-dc47f02ef9b9</guid><dc:creator>yi hung wu</dc:creator><description>&lt;p&gt;Hi ,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;Sorry I didn&amp;rsquo;t explain it clearly,my project had uart0&amp;nbsp;to communicate with my external device originally , now I need to ADD uart dfu in application also use uart0, how can I do that?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Wu&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/536536?ContentTypeID=1</link><pubDate>Thu, 22 May 2025 06:24:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4bba0588-6d6b-4d39-a447-9ace406b6b8f</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;If you are only doing UART DFU, then you don&amp;#39;t need to initialize or deinitialize UART0. Take a look at &lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/exercise-1-dfu-over-uart/"&gt;this sample from the Academy course&lt;/a&gt;, it explains DFU over UART. Also, make sure you have included all the necessary configurations.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/536382?ContentTypeID=1</link><pubDate>Wed, 21 May 2025 10:00:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3038e48e-c8b7-4d2c-88bd-346a6a8ea39b</guid><dc:creator>yi hung wu</dc:creator><description>&lt;p&gt;Hi Menon:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; Thanks for reply.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I disabled the&amp;nbsp;&lt;code&gt;CONFIG_SHELL=n&lt;/code&gt;&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;code&gt;CONFIG_MCUMGR_TRANSPORT_SHELL=n , cuz seem like its not needed if i am using Auterm.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp; According to what you replied, if i want to process uart dfu, i need to deinit uart0 right?so i added this two&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;span&gt;uart_irq_callback_user_data_set&lt;/span&gt;&lt;span&gt;( &lt;/span&gt;&lt;span&gt;dev_uart0&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;NULL&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;NULL&lt;/span&gt;&lt;span&gt; );&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;uart_irq_rx_disable( dev_uart0 );&lt;/p&gt;
&lt;p&gt;after that i use Auterm to get Image again , and it seems not getting any data from Auterm.&lt;/p&gt;
&lt;p&gt;i was expeting to get this LOG&amp;nbsp;&amp;lt;inf&amp;gt; mcuboot_util: Image index: 0, Swap type: none , but i seems not working at all.&lt;/p&gt;
&lt;p&gt;is there any way to solve it?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Wu&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 52840 NCS UART DFU</title><link>https://devzone.nordicsemi.com/thread/536327?ContentTypeID=1</link><pubDate>Wed, 21 May 2025 07:28:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ebf0a82-e567-4891-818d-ca88653de0ec</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I believe this is expected behavior when you use UART0 simultaneously for two independent purposes, your own IRQ-driven application code and the MCUmgr Shell. UART hardware allows only one handler to be active per UART at a time.&lt;/p&gt;
&lt;p&gt;When you enable &lt;code&gt;CONFIG_SHELL=y&lt;/code&gt; and &lt;code&gt;CONFIG_MCUMGR_TRANSPORT_SHELL=y&lt;/code&gt;, it allows MCUmgr to handle DFU commands through the shell interface over UART. However, if your application also sets up its own UART interrupt handler (like &lt;code&gt;uart0_irq_callback&lt;/code&gt;), it takes control of the UART and prevents the shell and MCUmgr from receiving data. That’s why the incoming data is going to your &lt;code&gt;uart0_irq_callback&lt;/code&gt; instead of being handled by the MCUmgr shell.&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>