nrfutil for ARM and other platform

Hello !

I can see nrfutil is written in python and have a lot of dependencies and functionalities what typically need for x86 based host.

A lot of discussions about porting of it to RPi and other platforms as it is.

For light distributions , DFU via serial port can cover 99% of use cases.

I mean usage nrfutil like this :

nrfutil -v dfu usb-serial -p /dev/ttyACM0 -b 115200 -pkg dfu.zip  

Do you have other light sources or examples for nrfutil what can be easily used in simple systems ?

Or porting sources from main repo https://github.com/NordicSemiconductor/pc-nrfutil is only option for produce own light version of nrfutil ?

Regards,

Eugene

Parents
  • Hi Hiihtaja, 

    I'm afraid that we don't have any minimized source except for what we have on the github repo. 
    We now have very limited resource to work on "legacy" libraries and tool such as the DFU library for nRF5 SDK. The main focus now is on nRF Connect SDK. 

  • Hello !

    But nRF Connect SDK also should have some util for DFU flash of nordic's MCU. Is this so ?

    I need to update application only. SD and bootloader itself is no need,

    Please point me to it.

    Regards,

    Eugene

  • Hi Eugene, 

    It's possible to do a hybrid solution.

    However, I don't see much point of using old application from nRF5 on the MCUBoot bootloader from nRF Connect SDK. Could you explain what you plan to do ? 

    What is more realistic in my opinion is to use the legacy bootloader from nRF5 SDK and use nRF Connect SDK application on top of that, in case you want to update the product that's already deployed and don't want to move from nRF5 bootloader.

    It's the same solution we used in our nRF52840 dongle which shipped with nRF5 SDK bootloader to run nRF Connect SDK. Read about that here.

  • Hi Hung Bui !

    Please clarify a bit.

    1.

    Let's take for example nRF52 dongle.

    I have used  precompiled bootloader graviton_bootloader_mbr_v1.0.1-\[nRF5_SDK_15.0.1-1.alpha_f76d012\].hex

    and update application only from  x86 Ubuntu due python based nrfutil.

    $ nrfutil -v dfu usb-serial -p /dev/ttyACM0 -b 115200 -pkg dfu.zip

    nrfutil version 6.1.7

    2. I can't change the application build method from SDK but can move to another bootloader

       if it can be easily compiled from known sources and support the booting of old application.

    So any bootloader and serial flasher ( without security ) is OK for me.

    3. Can nrfutil version > 7 ( new one ) is used for serial flash of old application, via old bootloader ?

      Does nrfutil > 7 available as source code and be easy portable to RPi ARM platform ?

    At list subset for serial flashing, application only, no security.

    4. if we look for the future, e.g. full migration to nRF Connect SDK ( for nRF52/nRF53) and use Rpi ARM platform for hosting utility for serial flashing.

    What kind of utility is available in the source code or has support Rpi ARM platform?

    At list for secure flash ( package creation is no need).

    5. Does nRF Connect SDK platform provide a bootloader and application creation that compatible with old nrfutil version < 7 ? May be it not suitable for an update of dual core nRF53 but nRF52 is OK for now.

    6. I can't tell if porting of nrfutil < 7  (legacy) is fully doable for Rpi due python.

    But may be possible to port only part what need for support serial flashing

    nrfutil -v dfu usb-serial -p /dev/ttyACM0

    a lot of discussions about it But no clear evidence if some one is succeed .

    Regards,

    Eugene

  • Hi Eugene, 

    2. I don't see any point why you want to change the bootloader. The old bootloader should still work fine. It's just we don't do more development with the old bootloader/SDK. 

    3. Yes. By using the legacy nrf5sdk-tools. 

    4. Currently I don't see any out of the box tool that works with RPi. We do have nRF Connect desktop app that can run on Linux. But I don't know if it works on RPi ARM. 

    5. No. 

    6. I would suggest to develop your own application based on what we have in nRFUtil and based on the DFU protocol that we provided. It's not too complex. You can find that in my example in the blog, it's pretty small. 

  • Hi Hung Bui !

    1.

    I have tried to install nrfutil directly on Rpi like HW by using $ pip install nrfutil

    and finally it install  nrfutil version 5.2.0

    So looks like exists some unofficial ports of nrfutil like this

    https://arribada.org/horizon-gps-tracking/installing-nrf-util-on-raspberry-pi-os/

    Can it be some unofficial support of nrfutil for other platforms ?

    No idea if it good way to continue on my side.

    What do you think about those unofficial branches ?

    2. But in the common case, from the nordicsemi side, I should expect that only legacy nrfutil < 7 will be available in the source code and can be adapted for other platforms especially in cases when security needs,

    Is this so ?

    Or some newer tools can be available in sources for porting to other platforms ?

    Regards,

    Eugene

  • Hi Eugene, 

    1. Unfortunately, we can't verify that. The biggest challenge we have is that we don't have the resource to run a full test of the software on different platform. And no further resource is allocated for the legacy nrfutil except for bug fix. 

    2. I don't know about the plan on open sourcing nrfutil v7 and on ward. We will have a blog in about 1-2 month about the new nrfutil. However it wouldn't affect you as your solution is currently on nRF5 SDK. And the source code of legacy nrfutil will be kept available as it is now. 
    If you plan, in the future, to migrate to nRF Connect SDK for DFU, there will be solution so that you can implement the DFU protocol on an embedded device. For example here.

Reply
  • Hi Eugene, 

    1. Unfortunately, we can't verify that. The biggest challenge we have is that we don't have the resource to run a full test of the software on different platform. And no further resource is allocated for the legacy nrfutil except for bug fix. 

    2. I don't know about the plan on open sourcing nrfutil v7 and on ward. We will have a blog in about 1-2 month about the new nrfutil. However it wouldn't affect you as your solution is currently on nRF5 SDK. And the source code of legacy nrfutil will be kept available as it is now. 
    If you plan, in the future, to migrate to nRF Connect SDK for DFU, there will be solution so that you can implement the DFU protocol on an embedded device. For example here.

Children
No Data
Related