This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How does automatic network selection work with +COPS?

Hi

I was wondering if there is any further reading about the Automatic network selection set as <mode> in the +COPS set command.

Especially, I'm looking for a solution to choose the best roaming network. With modem 1.2.0 I observed that the automatic network selection might select a network where roaming actually doesn't work, although there is a working one nearby (but with slightly lower signal strength). Most probably, the roaming on the chosen network does not work because the IMSI provider and the network operator do not have a partnership (I'm about to verify this).

The modem indicates a Network registration status (+CEREG) status <stat> 4 Unkown with a <reject_cause> 15.

+CEREG: 5,4,"FFFE","FFFFFFFF",7,0,15,"11100000","11100000"

The description of reject cause 15 is acc. to 3GPP TS 24.301 Annex A:

No suitable cells in tracking area - This EMM cause is sent to the UE if it requests service, or if the network initiates a detach request, in a tracking area where the UE, by subscription, is not allowed to operate, but when it should find another allowed tracking area or location area in the same PLMN or an equivalent PLMN”

What is the best way to switch to a different network in case of such an error? Can the modem do this automatically?

Thanks for your support!

Parents Reply Children
  • Hi Øyvind

    Thanks for your answer.

    Actually, we discovered that our issue is related to using the nrf-sdk 1.4.0 lte link controller. As we use lte_lc_connect_async() and it fails with error 8 (ENOEXEC), it is not allowed to call lte_lc_connect_async() directly again, because it will immediately return with error 8 again (because it calls AT%XSYSTEMMODE which requires the modem to be set to flight mode (AT+FUN=4, e.g. via lte_lc_offline()) before using it.

    But I prefer to have the modem on and keep trying. With nrf-sdk 1.5.0 that issue actually can be avoided by using Kconfig CONFIG_LTE_NETWORK_DEFAULT=y.

    For reference, here the network registration status before lte_lc_connect_async() returns with error 8:

    +CEREG: 2,"3904","00DFF303",7,0,0,"11100000","11100000"
    
    +CEREG: 2,"3904","00DFF303",7,0,11,"11100000","11100000"
    
    +CEREG: 2,"040A","00FE4611",7,0,11,"11100000","11100000"
    
    +CEREG: 4,"040A","00FE4611",7,0,15,"11100000","11100000"
    

Related