Android-nRF-Connect-Device-Manager icon indicating copy to clipboard operation
Android-nRF-Connect-Device-Manager copied to clipboard

nRF9160 Mcumgr FMFU update support

Open optical-o opened this issue 2 years ago • 9 comments

Hello, i would like to ask you, whether you are planing to implement the FMFU part of the Nordic Connect SDK into the nRF connect device manager application.

  • The sdk is supporting this by custom nordic implementation, which is not public. It is distributed as closed source DLL.
  • Due to the release of modem firmware 1.3.2, we will be forced to update the firmware on our devices, yet we are still missing open implementation for this. We would be also satisfied with closed one integrated into nrf connect device manager.
  • We have verified the functionality that our mcumgr inside the device is capable of receiving the fmfu by using other transport layer(UART). However, we would like to have ability to update the modem firmware from the mobile.
  • I think we are definitely not alone who will face this issue, with upcoming releases of the modem firmware.

FMFU

optical-o avatar Aug 16 '22 12:08 optical-o

Do you have a Bluetooth LE connectivity in the nRF91 device? As far as I know, DFU for 91 devices is done using cellular.

philips77 avatar Aug 17 '22 12:08 philips77

Yes, we have Bluetooth LE connectivity by using external Bluetooth controller (nRF52833).

optical-o avatar Aug 17 '22 12:08 optical-o

The DFU using cellular is very data intensive task. Our devices have very limited budget. We already have integrated this library into our mobile application for regular DFU. We would like to extend the update process with a FMFU step.

optical-o avatar Aug 17 '22 12:08 optical-o

The verification that the FMFU is working correctly using:

from pynrfjprog import HighLevel

with HighLevel.API() as api:
    with HighLevel.ModemUARTDFUProbe(api, uart, baudrate) as modem_dfu_probe:
        modem_dfu_probe.program(modem_firmware_zip)
        modem_dfu_probe.verify(modem_firmware_zip)

If i understand correctly that the endpoints should be available using the mcumgr transport layer using BT. The Logic of parsing and sending mfw data to the endpoints is closed inside the DLL nrfjprog.

optical-o avatar Aug 17 '22 12:08 optical-o

Thank you for the answer. I'll talk with my colleagues and come back to you. I have no knowledge about FMFU yet. McuMgr doesn't care about the transport, so BLE should work.

philips77 avatar Aug 17 '22 12:08 philips77

Btw, RFC for tunelling SMP commands via other device: https://github.com/zephyrproject-rtos/zephyr/issues/44224 May I ask how are you updating the main fw on 91?

philips77 avatar Aug 18 '22 12:08 philips77

We are using the nrf91 as Bluetooth Host. So the bluetooth connection is directly interfacing with the nrf91 chip.

The question is probably targeted on how we are updating the nrf52 controller. The answer is second GATT service with different UUID, which forwards the requests to the nrf52 mcumgr over our multiplexed UART transport layer(HCI interface, Mcumgr interface). The tunneling feature would allow us to ditch the secondary UUID. This would make our solution a little neater. Our solution is by no means perfect.

optical-o avatar Aug 18 '22 12:08 optical-o

@philips77 Did you manage to get information about the FMFU Mcumgr implementation ?

We would like to be able upgrade our devices to modem firmware 1.3.2. First thing when we are raising tickets on devzone is response that we should retest with the newest available modem firmware, which we are unable to do.

optical-o avatar Sep 26 '22 06:09 optical-o

Hi, I am in the same situation i want to upgrade the modem firmware FMFU(nrf91) of remote devices. a couple of option i tried although i am successful in dev. downloading modem firmware into sd card and then updating from sd card.I had successfully done it in dev environment . our firmware have Zephyr Shell capability and I am trying to upgrade the firmware through UART(FTDI cable). i am able to update the application through mcumgr but not modem firmware

VVAQARAHMED avatar Apr 04 '23 12:04 VVAQARAHMED