Over the Air modem(AWS MQTT) Firmware update 1.2.3 to 1.3.1

Hi,
I want to update the modem firmware devices(in the field).I am using nRfconnect sdk 1.5.0 and hardware is brf9160 SICA B1 .
current modem firmware is 1.2.3 .
I tried to https://devzone.nordicsemi.com/f/nordic-q-a/81643/full-modem-firmware-update-for-modem-v1-3-0/357363#357363.

but I am unable to update.
I am using AWS (MQTT) for FOTA updates.

CONFIG_DFU_TARGET=y
CONFIG_DFU_TARGET_FULL_MODEM=y

but its not enabling the DFU_TARGET_FULL _MODEM.

build_path\zephyr\.config

DFU configuration

#
# DFU
#
CONFIG_DFU_TARGET=y
CONFIG_DFU_TARGET_MCUBOOT=y
CONFIG_DFU_TARGET_STREAM=y
# CONFIG_DFU_TARGET_MCUBOOT_SAVE_PROGRESS is not set
CONFIG_DFU_TARGET_MODEM_DELTA=y
CONFIG_DFU_TARGET_MODEM_TIMEOUT=60
# CONFIG_DFU_TARGET_LOG_LEVEL_OFF is not set
# CONFIG_DFU_TARGET_LOG_LEVEL_ERR is not set
# CONFIG_DFU_TARGET_LOG_LEVEL_WRN is not set
CONFIG_DFU_TARGET_LOG_LEVEL_INF=y
# CONFIG_DFU_TARGET_LOG_LEVEL_DBG is not set
CONFIG_DFU_TARGET_LOG_LEVEL=3
# end of DFU
# end of DFU



Please guide me about the necessary configuration.
Thanks

  • Hi Didirik,
    Please find the attached .config file


    Yes, i am getting these two warnings

    warning: DFU_TARGET_FULL_MODEM (defined at C:/v1.5.0/nrf\subsys\dfu\dfu_target/Kconfig:74) was
    assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies: FMFU_FDEV (=n).
    See docs.zephyrproject.org/.../CONFIG_DFU_TARGET_FULL_MODEM.html and/or
    look up DFU_TARGET_FULL_MODEM in the menuconfig/guiconfig interface. The Application Development
    Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
    might be helpful too.


    warning: FMFU_FDEV (defined at C:/v1.5.0/nrf\subsys\dfu\fmfu_fdev/Kconfig:7) was assigned the value
    'y' but got the value 'n'. Check these unsatisfied dependencies: CDDL_GEN (=n),
    (!NRF_MODEM_LIB_SYS_INIT) (=n), MBEDTLS_SHA256_C (=n). See
    docs.zephyrproject.org/.../CONFIG_FMFU_FDEV.html and/or look up
    FMFU_FDEV in the menuconfig/guiconfig interface. The Application Development Primer, Setting
    Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
    too.


    I am using SEGGER EMBEDED STUDIO.


    DL40_prj.conf

  • If you look at the warnings (which should be treated as errors, unless you know what they mean, and are okay with the error. One example where Kconfig warnings might be okay is if it complains about log related options, but you have disabled serial knowing that you will not get any log), you will see that CONFIG_DFU_TARGET_FULL_MODEM couldn't be enabled because CONFIG_FMFU_FDEV is disabled.

    The other warning gives the reason why CONFIG_FMFU_FDEV is disabled: CONFIG_CDDL_GEN and MBEDTLS_SHAR256_C are not enabled, and CONFIG_NRF_MODEM_LIB_SYS_INIT is enabled.

    I recommend you look at the prj.conf file in the http_update/full_modem_update sample to see how these options are set (e.g. CONFIG_MBEDTLS_SHA256_C also has some requirements that must be met before it can be set. These should be clear from looking at the prj.conf).

    You should also note that when disabling CONFIG_NRF_MODEM_LIB_SYS_INIT, you must initialize this library yourself in the application, before you can use the modem. Disabling CONFIG_NRF_MODEM_LIB_SYS_INIT might also mean that other libraries that depends on modem_lib no longer get initialised automatically.

    Also, I see you still have bsdlib related configurations in your code. That library was replaced/changed name to nrf_modem_lib.

  • Hi,

    after doing all of this configuration ,now i am getting this error

    < D: MQTT_EVT_PUBACK: id = 11699 result = 0
    2022-03-11T17:13:26.564Z DEBUG modem << I: Configuring socket timeout (60 s)
    2022-03-11T17:13:26.567Z DEBUG modem << I: Connecting to dl40-fota.s3-eu-west-1.amazonaws.com
    2022-03-11T17:13:26.712Z DEBUG modem << I: Downloading: firmware.update.image.cbor [0]
    2022-03-11T17:13:26.716Z DEBUG modem << D: AWS_FOTA_EVT_START
    2022-03-11T17:13:26.718Z DEBUG modem << AWS_IOT_EVT_FOTA_START
    2022-03-11T17:13:26.719Z DEBUG modem << PSM mode off requested due to FOTA update
    2022-03-11T17:13:27.837Z DEBUG modem << PSM parameter update: TAU: 28800, Active time: -1
    2022-03-11T17:13:27.841Z DEBUG modem << eDRX parameter update: eDRX: 163.839996, PTW: 10.240000
    2022-03-11T17:13:30.188Z DEBUG modem << I: Downloaded 1024/1991053 bytes (0%)
    2022-03-11T17:13:30.215Z DEBUG modem << E: dfu_target_init error -1
    2022-03-11T17:13:30.217Z DEBUG modem << E: FOTA download failed, report back
    2022-03-11T17:13:30.217Z DEBUG modem << E: AWS_FOTA_EVT_ERROR
    2022-03-11T17:13:30.217Z DEBUG modem << AWS_IOT_EVT_FOTA_ERROR/nPublication reset to default value/nI: Fragment refused, download stopped.
    2022-03-11T17:13:30.504Z DEBUG modem << D: MQTT_EVT_PUBACK: id = 33846 result = 0
    2022-03-11T17:13:36.964Z DEBUG modem << RRC mode: Idle

  • Have you looked at how full modem update is implemented in the http_update/full_modem_update sample?

    You need to call dfu_target_full_modem_cfg() before starting the download, so the dfu_target library knows where to store the new modem image.

  • Hi,
     sorry for late reply.

    I used disk access for SD card mount https://docs.zephyrproject.org/3.0.0/reference/storage/disk/access.html and file system for read and write operation on sd card.

    actually i want to directly write the download data in to .bin  in sd card .if i follow this way is it work?

    after downloaded 1kb data the fs failed to open file. I had attached the downloaded .bin file  

    DL40-010039_mfw.bin

Related