OTA over UART on nRF54L15 - Upload completes but firmware doesn't boot

Dear Nordic Team,

I am working on implementing OTA (Over-The-Air) firmware updates over UART on the nRF54L15 platform. I have been following the "Exercise 1 - DFU over UART" tutorial from the Nordic Developer Academy:

Exercise 1 - DFU over UART - Nordic Developer Academy

I have configured my project according to the exercise. I have attached the following files for your review:

1. prj.conf   

/cfs-file/__key/communityserver-discussions-components-files/4/7713.prj.conf

2. sysbuild.conf

/cfs-file/__key/communityserver-discussions-components-files/4/4571.sysbuild.conf

3. sysbuild/mcuboot.conf

/cfs-file/__key/communityserver-discussions-components-files/4/3806.mcuboot.conf

4. sysbuild/mcuboot.overlay

/cfs-file/__key/communityserver-discussions-components-files/4/0410.mcuboot.overlay

5. ophelia4ev_nrf54l15_cpuapp.overlay

/cfs-file/__key/communityserver-discussions-components-files/4/ophelia4ev_5F00_nrf54l15_5F00_cpuapp.overlay

My Setup

  • Target device: nRF54L15_M33
  • UART used for DFU: UART30 (configured in the overlay file)
  • DFU tool: AuTerm
  • Image file: custom .signed.bin image

What I Observed

  1. I connected to the DFU UART (UART30) using AuTerm.
  2. I uploaded the generated .signed.bin image.
  3. The upload reaches 100% successfully.
  4. However, after the upload completes, AuTerm displays the following message:

       "Upload finished. Set image state failed. Command not supported (likely MCUboot serial recovery)".

  • After the upload reaches 100%, I close the COM port in AuTerm.
  • I then open the same UART in my terminal application.
  • Finally, I manually reset the board.

Expected Behavior

After resetting the board, I expect MCUboot to boot the newly uploaded application. The new application is configured to print debug messages over the same UART30 interface used for the DFU process, so I expect to see those debug messages on the terminal after the board resets.

Actual Behavior

After resetting the board, no debug messages are printed, and the application does not appear to start.

Request

Could you please review the attached configuration files and let me know if I have missed any required configuration for DFU over UART on the nRF54L15?

Also, could you help me understand why AuTerm reports:

Set image state failed.
Command not supported (likely MCUboot serial recovery).

Is this expected behavior for MCUboot serial recovery, or does it indicate that my DFU configuration is incorrect?

Regards,

Venkata Kishore P

Parents Reply Children
  • H

    i Amanda H,

    Thanks for your guidance. I am now able to build the code successfully.

    Current Status:

    1. Build succeeds without errors

    2. Flashed the firmware over J-Link to my custom boardFile flashed: D:\Venkatakishore\Fleet_Panda\Lora_NRF\Gansan\nrf_devzone\ncs-inter-main\l9\l9_e1_sol\build\l9_e1_sol\zephyr\zephyr.hex

    3. Configured UART pins in the mcuboot.overlay file (attached for reference)

      /cfs-file/__key/communityserver-discussions-components-files/4/5280.mcuboot.overlay

    The Issue:
    When I try to perform OTA using AuTerm:

    1. I connect to the specific UART port

    2. I select the .signed.bin file (peripheral_nus.signed.bin)

    3. I click "Go" (Upload)

    4. The progress stays at 0% and I get the error:

      "Timeout (Mode: Upload firmware)"

    Attachments:

    • mcuboot.overlay file

    • Screenshot of AuTerm showing the timeout error

    My Configuration:

    Item Details
    Board Custom board (nRF54L15)
    NCS Version v3.2.4
    UART for OTA UART30 (P0.01 TX, P0.00 RX)
    Tool AuTerm v0.35a
    Build Official l9_e1_sol solution

    What I've Checked:

    • White check mark The UART pins are correctly configured in mcuboot.overlay

    • White check mark The board is powered on and connected

    • White check mark The correct COM port is selected in AuTerm

    • White check mark Baud rate is set to 115200

    • White check mark The .signed.bin file exists and is not empty

    My Questions:

    1. Is there any specific configuration required in the custom board overlay for UART OTA to work?

    2. Could the timeout be due to incorrect UART pin mapping in the bootloader?

    3. Do I need to enable any additional Kconfig options for Serial Recovery on a custom board?

    4. Is the mcuboot-button0 and mcuboot-led0 alias mapping correct for my custom board?

    5. Could this be related to the SB_CONFIG_PARTITION_MANAGER or SB_CONFIG_MCUBOOT_MODE_SINGLE_APP settings?

    I would appreciate any guidance on resolving this timeout issue.

    Thank you for your time and support.


    Regards,
    Venkata Kishore P.

  • Are you able to reproduce the issue on nRF54L15DK?

    I suggest you use nRF54L15DK to familiarize yourself with Exercise 1 - DFU over UART - Nordic Developer Academy, then move to your custom board. 

Related