Continue network scan for other network after registration fails (bg96)

We are using a BG96 modem on the Telit network. The Telit network operates in roaming mode everywhere. However, we cannot connect to all networks.

When we scan for networks with roaming enabled, it always comes up with the same network. However, sometimes Registration fails for that network (Received response: <+CREG: 0,3>).

How do I request the modem to try to connect with the next network(s) (there may be multiple networks which does not let us register)?

Kind regards

What does the network scan command AT+COPS=? return?

Note that it can take a minute or more for the command to return a result.

The result of the AT+COPS=?

AT+COPS?
+COPS: 0,0,"vodafone NL Tele2 IoT",8

OK
AT+COPS=?
+COPS: (1,"T-Mobile NL","TMO NL","20416",8),(1,"NL KPN","NL KPN","20408",8),(1,"NL KPN","NL KPN","20408",0),(1,"vodafone NL","voda NL","20404",0),(1,"T-Mobile NL","TMO NL","20416",0),,(0,1,2,3,4),(0,1,2)

OK

This output is interesting, so now I wonder how I can use it to “continue” scanning for new networks…

The output from AT+COPS=? can change from time to time, but should remain fairly constant with the modem in a fixed location.

Your modem can see signal from three providers there: Vodafone, KPN and T-Mobile.

When trying to lock to a specific provider, I find it best to specify that provider numerically by MCC+MNC.

A hard lock to KPN would be AT+COPS=1,2,"20408"

A soft lock would be AT+COPS=4,2,"20408"

The soft lock means KPN is preferred, but another network can be used if KPN isn’t available or usable.

You can optionally provide the RAT you want (GSM or LTE Cat M1) by adding either ,0 or ,8 to the above commands.

AT+COPS=0 will remove any provider lock.

No indication of signal strength is given in the AT+COPS=? result, so some values returned might not have a good enough signal.

This might be part of the solution, but it is the round-about way.

It would be much better (and easier) to keep track of the networks on which registration fails.
Your solution would go something like:

  1. request all available network
  2. set the first network on the list as hard/soft lock
  3. if registration is successful, connect
  4. if registration fails, remove from list of available networks and fo to step 2

Would this work?

You shouldn’t need to go through this to get network registration. The automatic setting should work.

So something is getting in the way.

Do you have a network that you prefer to use?

Does your SIM have a user-controlled network preference file? The command to read it (if it exists) is:

AT+CRSM=176,28512,0,0,0

While you’re there, it might be a good idea to look at the operator-controlled network preference file:

AT+CRSM=176,28513,0,0,0

And the home network preference file:

AT+CRSM=176,28514,0,0,0

The results of those commands are:

AT+CRSM=?
OK

AT+CRSM=176,28512,0,0,0
+CRSM: 144,0,"FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000"

OK

AT+CRSM=176,28513,0,0,0
+CRSM: 144,0,"FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000"

OK

AT+CRSM=176,28514,0,0,0
+CRSM: 144,0,"FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000"

OK

However, I have no idea what that data means. The documentation refers to AT+CSCS (2.24. Select TE Character Set), but that does not clarify it for me.

To answer the other questions:
We use Telit (https://www.telit.com/). They are always roaming (no home network available). Since we do not know to which country a device will be shipped, we cannot provide a preferred network setting.

Any other pointers?

That SIM has no provider preferences set.

What APNs have you got set? What does AT+CGDCONT? return?

Well, I set the APN as provided by Telit:

AT+CGDCONT?
+CGDCONT: 1,"IP","nxt17.net","0.0.0.0",0,0,0,0

OK

So basically I know that no preferences are set, I know that I require Roaming to be enabled, and I know that the networks to which I can connect can change. Depending on the contracts Telit has in different countries, the list of networks I can successfully connect to, can change during the time our device is in use.