This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Controlling LTE link when using lwm2m carrier library

I'm trying to update our LTE connection library to use the LwM2M Carrier library to be prepared for carrier certification and I am not seeing any way to request that the modem move to the Online, Offline or Power Off states. 

This is needed because I need to enable and disable the cellular radio to allow a Bluetooth radio to come on or off.  My current scheme uses the "lte_lc_connect" and "lte_lc_offline" functions from the "lte_link_control" library.

Is there a way to support this with how the LwM2M Carrier library works currently?

I am on NRF Connect SDK v1.5.0

Thank you!

Parents
  • Hi,

    When using the carrier_lib, it will control the LTE link.

    It should be okay for you to turn the LTE link off (after the carrier_lib has sent the LTE_READY event), though I have to check with the developers what would be the best way to turn the link back on again.

    However, you should also be able to use the COEX pins to know when the LTE radio is used or not.

    And, while I am not a radio expert, I believe it should be possible to use both BLE and LTE at the same time due to the difference in frequency.

    Best regards,

    Didrik

  • Thank you for the response!

    If I were to add more details to my question it would be:

    1. If after receiving the LTE_READY event from the lwm2m library can I make the "lte_lc_offline" and "lte_lc_connect_async" calls without affecting the functionality of the lwm2m library? 

    2. If I make a call to "ltc_lc_offline" BEFORE the LTE_READY event comes out what will happen?

    The library is precompiled so I don't have a good way to verify these things myself, and just "trying it out" isn't very rigorous.

    Also the FCC still requires a lot of extra certification to run two radios on the same board at the same time.  As I recall it was called "coexistence certification" and it pretty much involved going all the way through modular certification again.  I very much want to avoid doing it if possible.

Reply
  • Thank you for the response!

    If I were to add more details to my question it would be:

    1. If after receiving the LTE_READY event from the lwm2m library can I make the "lte_lc_offline" and "lte_lc_connect_async" calls without affecting the functionality of the lwm2m library? 

    2. If I make a call to "ltc_lc_offline" BEFORE the LTE_READY event comes out what will happen?

    The library is precompiled so I don't have a good way to verify these things myself, and just "trying it out" isn't very rigorous.

    Also the FCC still requires a lot of extra certification to run two radios on the same board at the same time.  As I recall it was called "coexistence certification" and it pretty much involved going all the way through modular certification again.  I very much want to avoid doing it if possible.

Children
  • DevinCallahan said:
    1. If after receiving the LTE_READY event from the lwm2m library can I make the "lte_lc_offline" and "lte_lc_connect_async" calls without affecting the functionality of the lwm2m library? 

     Our developers says that you are free to use lte_lc_offline and lte_lc_connect_async after you receive the LTE_READY event. The carrier_lib handles being offline, so this should not be a problem.

     

    DevinCallahan said:
    2. If I make a call to "ltc_lc_offline" BEFORE the LTE_READY event comes out what will happen?

     You should not try to control the LTE link before you get the LTE_READY event.

    You will then risk interrupting the bootstrap process.

    You should also not try to turn the link on, as that can interfere with the carrier_lib trying to write credentials to the modem. This could potentially lead to an infinite loop, if the application tries to enable the link, while the carrier_lib tries to disable it.

  • Thank you so much Didrik!  These answers are exactly what I'm looking for. 

    One more out of this:

    If I mess with the modem online/offline state while in the middle of the bootstrap process, what are my options for recovering?

    Would a restart, which would cause lwm2m_carrier_thread_run to start over, work?

    Do I need to clear the memory ranged used by the NVS module?

    Thank you!

  • Hi, and sorry for the late reply.

    The short answer is that you should not do that.

    But yes, if the bootstrap process gets interrupted, you should do a reset of the device after clearing the carrier_lib's NVS.

  • Does the library have some kind of check with the carrier to see if it needs to go through the bootstrap/registration process?

    What I am seeing is the CEREG notification indicating the modem is attached causes the lwm2m library to immediately send out the LTE_READY event. 

    I am trying to make sure my library can support the case where that CEREG notification instead causes the library to bootstrap/register and I should expect to see the LTE_READY event come out later.

  • Hi, and sorry for the late reply.

    Yes, the device keeps track of whether or not it needs to bootstrap.

    As long as you wait for the LTE_READY event after enabling LTE, you should be fine.

Related