Serial DFU Zephyr MCU from host MCU

Hello,

Is an embedded C based implementation to serially transport firmware data to a Zephyr based MCU available anywhere?

Background:

I am working on a nRF52833 solution which is serially connected (UART TTL) to a host MCU on the same PCB. The host MCU must be able to DFU the nRF52833, which is running Zephyr (NRF Connect SDK).

I have been able to use mcumgr-cli to update a nRF52833 from a PC, but I need to do this from the host MCU. I have read some of the mcumgr, SMP, CBOR, MCU Boot, etc., documentation. I was hoping to find an embedded focused solution that would communicate to Zephyr based mcumgr server on the nRF, but I haven't found anything like that (the mcumgr-cli is written in Go).

Is there anything like that available?

I see code for communicated to Nordic's Bootloader via MCU, but that seems to be for the legacy SDK: https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader#h108sjziaxo3m81rkgr1has5r1d72qtu

Is the bootloader refenced in the above link compatible with Zephyr?

Basically, I don't want to reinvent the wheel if I don't have to.

Parents
  • The MCUBoot in Zephyr should be able to use UART as transport. One of the older threads that discussed this is here. Not sure if there are any samples to demonstrate this, but you surely do not need to reinvent the wheel as this is a common configuration, I am guessing there must be others who might have done this already on public repos.

  • Perhaps my original post was not clear. I don't think the link provided has any assistance for my issue.

    I have already successfully done a firmware update from a desktop PC to the nrf52 via serial UART. I understand the basic mechanics. I understand how to use mcumgr-cli.

    What I need to do is not from a desktop PC, but from another MCU. I have a single PCB with two MCUs, one of them is the nrf52, the other is an ESP32. A ESP32 UART is directly connected to an nrf52 UART on the board. The ESP32 needs to update the nrf52 via serial UART. I can't use mcumgr-cli as a basis because it is written in Go language. I am looking for something in C that will run on the ESP32 to update the nrf52.

Reply
  • Perhaps my original post was not clear. I don't think the link provided has any assistance for my issue.

    I have already successfully done a firmware update from a desktop PC to the nrf52 via serial UART. I understand the basic mechanics. I understand how to use mcumgr-cli.

    What I need to do is not from a desktop PC, but from another MCU. I have a single PCB with two MCUs, one of them is the nrf52, the other is an ESP32. A ESP32 UART is directly connected to an nrf52 UART on the board. The ESP32 needs to update the nrf52 via serial UART. I can't use mcumgr-cli as a basis because it is written in Go language. I am looking for something in C that will run on the ESP32 to update the nrf52.

Children
Related