LTE_LC_MODEM_EVT_SEARCH_DONE event not delivred on periodic search

Hello,

I am implementing the periodic search for lte managment (using SDK 2.5.2 on a nrf9160).

The periodic configurations in struct lte_lc_periodic_search_cfg  is:

                .loop = false ;

                .return_to_pattern =  0;

                .band_optimization = 1; (data_profile = LOW_POWER)

 

And two following pattern :

- The first is range pattern type, with values : initial_sleep = 10, final_sleep = 40, time_to_final_sleep = -1, pattern_end_point = 1

- The second is table type with values : val_1 = 30, val_2 = -1, val_3 = -1, val_4 = -1, val_5 = -1

All periodic search tests are carried out using a Faraday cage, and network activity is measured with an ampere meter.

When the network is requiered, I received the event LTE_LC_MODEM_EVT_LIGHT_SEARCH_DONE , at next the modem switch to limited_service.

In the ampere meter, the periodic search works. Both pattern are executed with the right sleep values. However, at the end the search keep looping on the last pattern and never sends the LTE_LC_MODEM_EVT_SEARCH_DONE event. Even if a network was found, none event was delivred.

Why the search doesn’t stop and why the LTE_LC_MODEM_EVT_SEARCH_DONE event is never generated?

 

Thank you for your help

  • Hi Dejan,

    The file I sent you didn't add the good extension. If you replace ".log" by ".bin", you can open it with the nrf cellular monitor (and Wireshark).

    Best regards,
    JBV

  • Hi JBV,

    Thank you for this information. We will look into your trace file. I expect to get back to you by the end of this week.

    Best regards,
    Dejan

  • Hi JBV,

    Modem continues to perform periodic search until suitable cell is found. Sleeping between searches depends on the configuration. Your log shows that after going through configured patterns, modem continues to perform periodic searches with 35 sec of sleep between searches. If you look at lte_lc.h or modem AT command specification, description for table pattern says: "After going through all values, the last value of the last search pattern is repeated if not configured differently by the <loop> or <return_to_pattern> parameters." Since the last value of the last pattern is 35 seconds, modem behaves as expected. 
    It is also expected that there are no modem domain events from LTE LC since there are no %MDMEV notifications in the modem log. There is also no AT%MDMEV=1 command in the log, so it looks like you have not enabled modem events by calling lte_lc_modem_events_enable().

    Best regards,
    Dejan

  • Hi Dejan,

    Thanks for your reply. 

    "After going through all values, the last value of the last search pattern is repeated if not configured differently by the <loop> or <return_to_pattern> parameters."

    How should I set <return_to_pattern> and <loop> to stop periodic search after the last pattern?

    Best regards,

    JBV

  • Hi JBV,

    The only way how you can stop periodic searches is to set the modem to offline or minimal functionality mode. If you want to limit how often searches are done, you can set the sleep periods between searches to a long enough value. If you want to prevent searches completely until requested by the application, you should set the modem to offline mode and then back to online mode when you want to connect to the network again.

    Best regards,
    Dejan

Related