This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Which secure firmware to use and how to it onto a nfr5840 USB Dongle to connect with the OpenThread Border Router.

I have 3 Fanstel USB 840F Dongles which have the  nfr 52840 inside. I want to connect one of them to the OpenThread Border Router using a Linux machine (Ubuntu 18.04), but they are expecting secure software. I either need a public signed software or how to sign the correct software to install.

What I have so far:

nrf-connect working and can view the dongle in DFU mode

I have the NRF SDK nRF5_SDK_15.2.0_9412b96

I have nrfpro and mergehex programs

I have wpantund working

I have Openthread docker installed on my linux machine

I have the OpenThread border router working and can view the local webpage.

I downloaded pre-made NCP software   https://openthread.io/guides/ncp/ot-ncp-ftd-gae2b0194-nrf52840.tar.gz   to install on the dongle.

Issue: The pre-made NCP software shows up on nrf-connect but the write button is greyed out. I think it is because the dongle is expecting secure firmware and the pre-made NCP software is for non-secure installations.

I have signed android app software before but have no idea of the signing  process for firmware.

Parents
  • So it looks like I just have to use nrfutil to sign the firmware.hex files. Still don't really know the process. but at least I now have something I can lookup.

  • Hi Jeremy, 

    Has Fanstel provided you with a private key that you can use to sign the Pre-Built NCP Firmware from OpenThread.io ? 

    I'm not sure if you will be able to perform an update with the precompiled binary from OpenThread as its overlapping the MBR section 0x0000-0x1000 and thats why the write button is greyed out.. The Thread NCP Example in the nRF5 SDK for Thread and Zigbee comes in four configurations, where one of them is USB with bootloader. This configuration uses the USB peripheral that is available in nRF52840 and communicates as a native USB CDC device. This configuration targets PCA10059 board that contains factory-programmed USB bootloader. 

    I have attached a the precompiled binary for the USB bootloader configuration below, could you try to use that one instead?

    nrf52840_xxaa.hex

  • Thanks for the awesome reply. I am getting there. I have 3 Fanstel Dongles.

    I tried your suggestions (minus the excellent idea to update the version settings, I just used version 6 as a guess).

    I did 

    chmod 777 /dev/ttyACM0

    nrfutil dfu usb-serial -b 9600 -p /dev/ttyACM0 -pkg nrf52840_xxaa.zip

    To my surprise it installed.

    Even said on the command line that it was installed.

    Yeh.

    ...

    now it's a brick.

    No worries I have 2 more. 

    First question. These Dongles have 2 buttons, once you take off the pretty covering, but I can't find a button combination to put the Dongle back into DFU mode?

    NRC Connect for Desktop used to prove it was in DFU mode (but I can't install a package with nrfConnect for Desktop only .hex files.) 

    Now even with nrfConnect for Desktops it will not go into DFU mode. 

    Any suggestions.

    Should I try the next Dongle but do the settings commands, I have found this example

    nrfutil settings generate --family NRF52840 --application nrf52840_xxaa.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 settings.hex

    The only problem is I don't know either of these settings since they were made by Fanstel

    --bootloader-version 2 --bl-settings-version 1



    On a positive note>\: I used an extension USB cable to be able to activate
    the very hard to reach button so I can now get the device back into DFU mode.


    I will try messing with the nrfutil settings
    Any other ideas.







  • Quick question: The attached nrf52840_xxaa.hex application when it is finally loaded properly, does it activate either LED1 or LED2. Do they flash at all? I can load it, I just get no response from it.

  • Hi Jeremy, 

    I didnt see any LEDs lighting up on my end. 

  • So I am getting close.

    Good to hear no LED's are active when it is working. I just can't connect my OpenThread Boarder Router to the USB Dongle since /dev/ttyACM0 is not active.

    When I put the Dongle in DFU mode /dev/ttyACM0 becomes active immediately.

    Looks like the Dongle is not programmed for USB connectivity when running your nrf app.

    In your opinion is this problem to do with the nrf Application or the Dongle Bootloader (or is it the soft device)? 

    Second question: I am still a bit confused by the Soft Device. In my situation of just wanting to get the Border Router working with a connected Dongle, does it need a Soft Device?

    Presently as far as I can tell I am using the pre-installed FANSTEL bootloader (which they emailed and it is  is version 1) with your application. But I am not sure if the dongle has a pre-installed soft device. If it doesn't have a soft device why do I need the "--sd-req 0xA9,0xAE" when creating the package?

    Thank you so much for the help. 

  • HI Jeremy,

    I apologize for the late reply. 

    So you're not seeing the device emulating as USB port? Do you see the nRF USB port in device manager if you insert it in to a Windows PC?

    Are you following the steps in the  Thread NCP Example / Testing section when testing?

    The Thread and Zigbee stacks don't use a SoftDevice but --sd-req option is required for compatibility reasons. You can provide any value for the option as it is ignored during DFU.

Reply Children
No Data
Related