How to use a single UART between an nRF9151 and nRF52840/nRF54l15 for both mcumgr DFU and a custom protocol?

Hi everyone,

I have an nRF9151 connected to an nRF52840/(or nRF54l15) over a single UART. I want to:

  • perform DFU of the nRF52840 from the nRF9151, and

  • also exchange runtime data using a custom protocol over the same UART.

What’s the recommended approach to support both on one UART? Are there examples or reference implementations that show how to multiplex DFU with a custom protocol between these two chips (Zephyr/NCS-based v2.9.1)?

Thank you by advance Pray 

Parents Reply Children
  • Hello,

    thank you for replying. 

    i am now able to set my external mcu to serial recovery mode, but i'd like to implement a smp client on my nrf9151 that i can register during runtime and unregister so i can use the uart for others purposes. I have the feelling that it cannot be done when CONFIG_MCUMGR_TRANSPORT_UART is set   

  • gogoat said:
    i am now able to set my external mcu to serial recovery mode, but i'd like to implement a smp client on my nrf9151 that i can register during runtime and unregister so i can use the uart for others purposes.

    What do you mean by using the uart for other purpose? Remapping uart pins is possible using the nrfx driver directly or the bare metal (low-level) API. It's not easy or maybe even impossible to achieve this using Zephyr on nrf9151. But you are welcome to try.

    If you meant something else, please elaborate.

  • I assume  means "a single UART for both mcumgr DFU and a custom protocol". I had exactly the same question (but on other HW).

    This post showed me how to get it working: replace the CONFIG_MCUMGR_TRANSPORT_UART  by CONFIG_MCUMGR_TRANSPORT_SHELL so it uses the shell as transport layer... HTH

Related