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,

    When two patterns are configured (one of table and one of range type), and the loop set to false, the table pattern is executed one time completely and the last sleep time value (of the table pattern) is repeating for indefinitely time. Like the graph that I shared in this conversation.

    When two patterns are configured (one of table and one of range type), and the loop set to true, only the table pattern is repeated entirely (the last one).

    Best regards,

    JBV

  • Hi,

    erco_JBV said:
    When two patterns are configured (one of table and one of range type), and the loop set to true, only the table pattern is repeated entirely (the last one).

    Looking at your initial question, since loop is set to true, only the last pattern should be repeated which is table pattern in your case. This is correct behavior based on the documentation.

    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?

    Is this happening when <loop> is true or false?

    erco_JBV said:
    When two patterns are configured (one of table and one of range type), and the loop set to false, the table pattern is executed one time completely and the last sleep time value (of the table pattern) is repeating for indefinitely time. Like the graph that I shared in this conversation.

    Is it that both patterns are executed once and then the sleep value of the table pattern (which is your second pattern) is repeating indefinitely?

    Best regards,
    Dejan

  • Hi Dejans,

    Looking at your initial question, since loop is set to true, only the last pattern should be repeated which is table pattern in your case. This is correct behavior based on the documentation.

    In my initial question, loop is set to false. I notice in this case that the last sleep value from the last pattern is repeated indefinitely.

    You asked me to set the loop Boolean to true, in this case, the whole last pattern is repeated indefinitely as expected from the documentation.

    Is this happening when <loop> is true or false?

    From what I understand, loop should be set to false, but I can’t get the expected behavior.

    (The expected behavior being: stop the research after the last pattern if no network is found and send the LTE_LC_MODEM_EVT_SEARCH_DONE event).

    About the LTE_LC_MODEM_EVT_SEARCH_DONE event, it isn’t generated, no matter how the loop flag is set, even if I open the faraday cage and a network is found.

    Is it that both patterns are executed once and then the sleep value of the table pattern (which is your second pattern) is repeating indefinitely?

    Yes, when loop is set to false, both patterns are executed once, and then, the last value of the last table is repeated indefinitely. I'm expecting the search to stop right after the last last pattern is executed, and then, the LTE_LC_MODEM_EVT_SEARCH_DONE event should be generated, but none of this happens.

    Best regards,

    JBV

  • Hi JBV,

    I will discuss this with our modem team. I will get back to you by the end of this week.

    Best regards,
    Dejan

  • Hi JBV,

    Which modem firmware version do you use?

    Could you please provide a modem log?

    Best regards,
    Dejan

Related