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

Use of Azure IoT Hub and Azure FOTA with other Dev kits and modems

Hi, I am looking to implement Azure IoT Hub and Azure FOTA in a project.  Unfortunately these examples are specifically for the nRF9160.  I would like to implement it on the nRF52840 and nRF5340.  Will it work on these two targets and how much effort will it take?  I have done an implementation on Zephyr for the IoT Hub side but the nRF Connect SDK Azure IoT Hub example is richer in functionality.  I am currently using a u-blox Sara R412 and Quectel BG96 as modems.  Would it also be possible to incorporate Zephyr's modem library in the SDK?

Your help is highly appreciated.

Parents
  • Hi,

    First, a disclaimer: I have not actually tried any of this, so there might be caveats and problems I am not aware of.

    With that out of the way, yes, I believe it should be possible to use the NCS Azure IoT Hub and Azure FOTA libraries with other modems than the nRF9160.

    While the libraries are built for the nRF9160, and working with other modems probably hasn't been a concern for the developers, they are built on top of Zephyr's socket layer.

    Therefore, if the drivers for the modem you want to use redirects the socket API to the external modem (or, if the modem doesn't have an IP stack, the data is forwarded to the modem at a later point in the protocol stack), it should work.

    Looking at NCS v1.5.0, I found a Zephyr driver for both the u-blox and the Quectel modems, and both seems to support Zephyr's socket offloading. Therefore, it might be as simple as adding the modem to the device tree, and setting some Kconfig options and disabling the nRF9160 specific options, and it will "just work".

    Note that the samples might require a bit more work, as will must ensure that the modem is set up properly, and remove any nRF9160 specific code.

    Best regards,

    Didrik

Reply
  • Hi,

    First, a disclaimer: I have not actually tried any of this, so there might be caveats and problems I am not aware of.

    With that out of the way, yes, I believe it should be possible to use the NCS Azure IoT Hub and Azure FOTA libraries with other modems than the nRF9160.

    While the libraries are built for the nRF9160, and working with other modems probably hasn't been a concern for the developers, they are built on top of Zephyr's socket layer.

    Therefore, if the drivers for the modem you want to use redirects the socket API to the external modem (or, if the modem doesn't have an IP stack, the data is forwarded to the modem at a later point in the protocol stack), it should work.

    Looking at NCS v1.5.0, I found a Zephyr driver for both the u-blox and the Quectel modems, and both seems to support Zephyr's socket offloading. Therefore, it might be as simple as adding the modem to the device tree, and setting some Kconfig options and disabling the nRF9160 specific options, and it will "just work".

    Note that the samples might require a bit more work, as will must ensure that the modem is set up properly, and remove any nRF9160 specific code.

    Best regards,

    Didrik

Children
  • Hi Didrik,

    Thank you for your response.  I am glad to hear that it could be possible to use other modems.  I do not have an nRF9160 DK.  I am struggling to build the Azure IoT Hub and Azure FOTA libraries for my nRF52840 DK.  Is it at all possible to build these libraries for chips other than the nRF9160?

  • JPSvanderWalt said:
    I am struggling to build the Azure IoT Hub and Azure FOTA libraries for my nRF52840 DK

     What errors do you get?

     

    JPSvanderWalt said:
    Is it at all possible to build these libraries for chips other than the nRF9160?

     Again, it is not something I have tried myself; but yes, I believe it should be possible.

    The libraries doesn't seem to depend on anything nRF9160 specific. But, they do depend on Zephyr's socket layer.

    On the nRF9160, we are using Zephyr's socket offloading mechanism to offload the sockets to the nRF9160 modem, but in your case, you must configure it to use your external modem instead (either by socket offloading or through some other means).

Related