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

Parents
  • Hi,

    Can you provide more information about your application?

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

    Can you provide more information on what you measured with an ampere meter?

    In the ampere meter, the periodic search works.

    Can you rephrase this? How does periodic search work in ampere meter?

    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.

    Can you elaborate on this? What happens when it loops on the last pattern? 

    Best regards,
    Dejan

  • Hi,

    I'm implementing a lte connectivity management module, with APN, PSM management and area cell network search.

    I am testing periodic searches when the modem can't find a network to connect to.

    The faraday cage allows to block any incoming network to trigger the periodic search. The amperemeter shows the power consumption, to control when the modem is in sleep mode and when it is ON to search networks.

    In the following example, I used this configuration for my periodic searches (struct lte_lc_periodic_search_cfg):

    loop = false ;

    return_to_pattern = 0 ;

    band_optimization = 1 ; (data_profile = 1)

    I used just one table pattern with values:

    val_1 = 10 ; val_2 = 10 ; val_3 = 20 ; val_4 = 35 ; val_5 = -1.

     

    This image shows the current readings taken by the ampere meter:

     

    Before the first period: the modem has already been connected to a cellular network and is in idle mode.

    At the beginning of the 1st period, the modem switches to PSM mode and after that, I close the faraday cage. Then, the light search is performed and fails. The event LTE_LC_MODEM_EVT_LIGHT_SEARCH_DONE is generated at the end of the 1st period. On this event, the library switches to limited-service mode to ensure the periodic search.

     

    On the second period: the modem starts the periodic search according the configuration table type : sleep 1 = 10 seconds / search / sleep 2 = 10 seconds / search / sleep 3 = 20 seconds / search / sleep 4 = 35 seconds -> end of pattern (no loop).

     

    On the third period: the modem continues to perform the search only based on the last configuration table value (35 seconds): search / sleep 4 = 35 seconds / search / sleep 4 = 35 seconds / search / sleep 4 = 35 seconds… again and again and it goes on indefinitely.

    Why in this period, the model is made in this way?

    I was expecting the pattern to stop and to receive the LTE_LC_MODEM_EVT_SEARCH_DONE event.

    Why the search never stops and why the LTE_LC_MODEM_EVT_SEARCH_DONE event is never generated?

     

    Are there any incomplete or missing configurations?

     

    Best regards,

    JBV

  • Hi,

    I am not able to open your trace file. Are you able to open it on your end? If yes, which application do you use for opening the file?

    Best regards,
    Dejan

  • 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

Reply Children
  • 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