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

Flashing the nrf9160 modem firmware from Raspberry Pi

Hi!

I'm developing the NRF9160 target from a raspberry Pi. The problem is that I need occasionally to perform modem firmware upgrade, and I can't figure out how to do it without nrfjprog.

I looked on pynrfjprog, but it requires the nrfjprog dll which - If I got it correctly - will not work on ARM, like the whole nrfjprog.

Any ideas?

Parents
  • Hi,

    Do you need full modem upgrades (e.g. 1.1.x to 1.2.y) or is minor modem updates (e.g. 1.1.0 to 1.1.1) enough?

    If minor updates are enough, the easiest way might be to use the asset_tracker or aws_fota samples to do a FOTA update of the modem.

    However, if you want to do full modem updates, it gets a bit more complicated.

    Technically, what is happening when you update the modem, is that a program is loaded to the application core (or the application core's RAM), which receives the modem image through some channel, and forwards it to the modem piece by piece. The modem will then apply the update.

    You can read more about how this happens in our nRF9160 production programming application note.

    You can either try to implement something like that yourself, or you can use "normal" application DFU to do what the nRF Connect for Desktop Programmer application does with the Thingy:91.

    I have also added a request for adding support for ARM hosts to nrfjprog.

    Best regards,

    Didrik

Reply
  • Hi,

    Do you need full modem upgrades (e.g. 1.1.x to 1.2.y) or is minor modem updates (e.g. 1.1.0 to 1.1.1) enough?

    If minor updates are enough, the easiest way might be to use the asset_tracker or aws_fota samples to do a FOTA update of the modem.

    However, if you want to do full modem updates, it gets a bit more complicated.

    Technically, what is happening when you update the modem, is that a program is loaded to the application core (or the application core's RAM), which receives the modem image through some channel, and forwards it to the modem piece by piece. The modem will then apply the update.

    You can read more about how this happens in our nRF9160 production programming application note.

    You can either try to implement something like that yourself, or you can use "normal" application DFU to do what the nRF Connect for Desktop Programmer application does with the Thingy:91.

    I have also added a request for adding support for ARM hosts to nrfjprog.

    Best regards,

    Didrik

Children
  • Hi!

    Thanks for putting this one on the list, I believe it would be very beneficial to have nrjprog for ARM - A raspberry + nrf9160 makes a perfect match to have a remote work environment. Since we need to move devices to various locations for certification purposes - it's way better than using a fullblown linux machine running x86.

    It's fine to stay with minor updates, but with the ability to downgrade. AFAIK only updates are working that way.

Related