nrf9160 PLMN selection

Hello,

Our setup is using MFW 1.3.5 and nRF Connect SDK 2.4.0.

We recently encountered an issue where the modem keeps trying to register to a network that we are unable to register to. We are using NB-IoT only for reasons described in this post and in our area there was only 1 network that supported NB-IoT, but since last month it seems that there is a new set of towers with a different MNC which don't seem to be fully setup yet.

The modem is stuck trying to attach to the network but not failing or giving any IP forwarding(CEREG 2). Normally the modem should be trying to connect to a different network which we see happen in some areas, but around the airport here, the modem keeps retrying the same PLMN that doesn't work.

Our current solution is to manually select the PLMN to the NB-IoT network here that we know works, but this isn't a global solution if the device encounters a similar issue in a different area. We were wondering if there was a command to force the modem to select a PLMN with a different MNC than the one it previously tried to attach to and failed.

I read similar forum posts about the algorithm for the PLMN automatic selection and read that the modem uses the networks preferred/prioritized by the sim card, so we will be looking into contacting our sim provider to see if we can change what networks we are prioritizing. However this is still a manual disabling of a network and we are hoping for a more automatic solution.

Thanks,

Stuart

  • Hi Stuat, 

    are you able to provide us with a modem trace? This way we can see exactly why the modem keeps retrying the same PLMN.

    Kind regards,
    Øyvind

  • Hi Øyvind,

    I have a modem trace attached which is captured after a reset of the board and the modem tries to register to the NB-IoT network which does not work for us. It hangs after that and doesn't try to connect to the other PLMN in the area that does work.

    trace-2024-01-05T22-57-56.616Z.mtrace

    Thanks,

    Stuart

  • Thanks Stuart! Can you please provide what network you are trying to connect? How long did you run the modem trace? Do you have any application logs during this time as well?

  • Hi Øyvind,

    I don't have the exact application log that corresponds to the modem trace, but I have a very similar one:

    [00:00:00.881,134] <dbg> lte_lc: init_and_config: System mode (5) and preference (0) configured
    [00:00:01.031,127] <inf> app_event_manager: e:logger_module_event LOGGER_EVT_READY
    [00:00:01.967,041] <inf> app_event_manager: e:logger_module_event LOGGER_EVT_PERIODIC_TASKS
    [00:00:28.696,166] <dbg> lte_lc: at_handler_cereg: +CEREG notification: +CEREG: 2,"6298","034684C0",9
    [00:00:28.706,054] <dbg> lte_lc_helpers: parse_cereg: Network registration status: 2
    [00:00:28.714,172] <dbg> lte_lc_helpers: parse_cereg: LTE mode: 9
    [00:00:28.720,672] <dbg> lte_lc_helpers: event_handler_list_dispatch: Dispatching event: type=0
    [00:00:28.729,736] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0004470D
    [00:00:28.738,891] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0002C949
    [00:00:28.747,589] <dbg> lte_lc_helpers: event_handler_list_dispatch: Done
    [00:00:28.754,852] <dbg> lte_lc_helpers: event_handler_list_dispatch: Dispatching event: type=4
    [00:00:28.763,916] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0004470D
    [00:00:28.772,644] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0002C949
    [00:00:28.781,372] <dbg> lte_lc_helpers: event_handler_list_dispatch: Done
    [00:00:28.788,665] <dbg> lte_lc_helpers: event_handler_list_dispatch: Dispatching event: type=5
    [00:00:28.797,729] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0004470D
    [00:00:28.806,488] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0002C949
    [00:00:28.815,216] <inf> cloud: Active LTE mode changed: NB-IoT
    [00:00:28.821,502] <dbg> lte_lc_helpers: event_handler_list_dispatch: Done
    [00:00:29.192,291] <dbg> lte_lc: at_handler_cscon: +CSCON notification
    [00:00:29.199,249] <dbg> lte_lc_helpers: event_handler_list_dispatch: Dispatching event: type=3
    [00:00:29.208,282] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0004470D
    [00:00:29.217,010] <dbg> lte_lc_helpers: event_handler_list_dispatch:  - handler=0x0002C949
    [00:00:29.225,738] <inf> cloud: RRC mode: Connected
    [00:00:29.231,018] <dbg> lte_lc_helpers: event_handler_list_dispatch: Done
    [00:00:30.283,752] <inf> app_event_manager: e:gnss_module_event GNSS_EVT_WORKER_HEARTBEAT
    [00:01:00.283,782] <inf> app_event_manager: e:gnss_module_event GNSS_EVT_WORKER_HEARTBEAT
    [00:01:01.967,041] <inf> app_event_manager: e:logger_module_event LOGGER_EVT_PERIODIC_TASKS

    The modem trace was run for around a minute and the difference from this application log is that it tried twice in a row to register to the network with MCC:302, MNC:220, TAC:25240 (Telus). Then the application firmware hangs since we are waiting for lte_lc_connect() and the PLMN is not switching to the network here that works: MCC:302. MNC: 720, TAC: 48613 (Rogers).

    Regards,

    Stuart

  • Stuart, it seems that your device is stuck in a reset loop (click here) , which restricts the device from connecting to network at all. You can subscribe to modem event AT%MDMEV=1 which will tell if Reset Loop Restriction prevents operation. Modem selects network 302 220 but that is because it is the last network UE has been registered to.

Related