FOTA configuration for nrf91 SLM + nrf54L15 host

Hello

We have nrf54l15 as a host and main MCU along with nrf9151 with SLM build.

We are connecting it to nrf-cloud, previously we used only nrf9151 with nrf52 connected through BLE HCI, we wanted to switch to use nrf54l15 as main MCU.

We used jitp to connect to nrf cloud so keys were kept in modem on nrf91 before.

From what I see, we can use SLM through either PPP (holding credentials on nrf54) or at commands (holding credentials on nrf91). Preferred option would be to use AT commands.

But then I only see flow to perform FOTA for nrf91 only https://docs.nrfcloud.com/docs/mcu/quickstart-serial-modem#application-fota as host will be missing credentials to perform fota for host mcu.

From https://github.com/nrfconnect/ncs-serial-modem-host-applications/tree/main/docs/applications/91m1_ppp there is config that enables host fota, but then nrf91 is not possible to update, along with requirement to keep whole network stack on nrf54, where we are running low on RAM.

Is there a configuration where we could connect to nrf cloud using at commands, keep keys on nrf91 and enable all components fota (nrf91 SLM, modem firmware, host application)?

Best regards

  • Hi,

    There is no single ready made configuration for this, but I can think of the following approach which can keep AT command mode with the credentials on the nRF9151. However this flow is not validated but looks practical.

    Like for nRF9151 (SLM app and modem) you can use AT#XNRFCLOUDFOTA and for nRF54L15 (host app) host need to fetch its own image through SLM. nRFcloud OTA lookup requires only the project key, not device private credentials.

    So you may give the host its own hardware version and device_serial, and upload and deploy host releases there in nrfcloud. Then using SLM’s HTTP client AT commands (AT#XSSOCKET, AT#XCONNECT, AT#XHTTPCREQ) you may query https://device.memfault.com/api/v0/releases/latest/url with the host’s query parameters (device_serial, hardware_version, software_type, current_version) and the Project-Key header

    Then using XHTTPCREQ you may connect to the returned download host and stream the image using Range: headers in chunks directly into the MCUboot secondary slot.

    Best Regards,
    Syed Maysum

Related