HL7800 PLMN selection with +CPOL and +CPLS

Hello,

I’m using the HL7800 with an Hologram SIM card. With no specific action (automatic operator selection), the Sunrise(Swiss) operator is systematically selected by the module (operator code “22802”).
I would like to set a preference to Swisscom operator when available (operator code “22801”). For that, I’m trying to implement an operator preference using PLMN selection (Hologram SIM).

First, I set the preferred operator using AT+CPOL=1,2,“22801”,1,1,1,1
Then, I active the preference list with AT+CPLS=0
Finally, I force a module reboot with CFUN=1,1

After this sequence, the selected operator is still always Sunrise (AT+COPS? ==> +COPS: 0,2,“222802”, 7)

Some tests I’ve performed:

  • A manual selection of the wanted operator works perfectly (AT+COPS=1,2,“22801”)
  • When coming back to automatic selection (AT+COPS=0) after manual forcing, the last forced operator is always selected again. Even if a reboot is performed.

Any help will be appreciated.
Thanks a lot,
Michael

Here is the console log:

at+cops?
+COPS: 0,2,“22802”,7
OK
at+cpol?
+CPOL: 1,2,“22801”,1,1,1,1
OK
at+cpls?
+CPLS: 0
OK
at+cops=0
OK
at+cfun=1,1
OK

+CEREG: 5,“A4D8”,“004A4805”,7
+CREG: 5,“A4D8”,“004A4805”,7
at+cops=3,2
OK
at+cops?
+COPS: 0,2,“22802”,7

at+cops=?
+COPS: (1,“Sunrise”,“Sunrise”,“22802”,7),(1,“Swisscom”,“Swisscom”,“22801”,7),(0,“Salt”,“Salt”,“22803”,7),(0-3),(0-2)
OK
+CEREG: 5,“A4D8”,“004A4805”,7
+CREG: 5,“A4D8”,“004A4805”,7
at+cops?
+COPS: 0,2,“22802”,7
OK

at+cops=0
OK
+CEREG: 5,“A4D8”,“004A4804”,7
+CREG: 5,“A4D8”,“004A4804”,7
at+cops?
+COPS: 0,2,“22802”,7
OK
at+cpol?
+CPOL: 1,2,“22801”,1,1,1,1
OK
at+cpls?
+CPLS: 0
OK
at+cfun=1,1
OK

+CEREG: 5,“A4D8”,“004A4805”,7
+CREG: 5,“A4D8”,“004A4805”,7
at+cops?
+COPS: 0,0,“Hologram”,7
OK
at+cops=3,2
OK
at+cops?
+COPS: 0,2,“22802”,7
OK
at+cops=1,2,“22801”
OK

+CEREG: 5,“0BD6”,“010E4201”,7
+CREG: 5,“0BD6”,“010E4201”,7
at+cops?
+COPS: 1,2,“22801”,7
OK
at+cops=0
OK
at+cfun=1,1
OK

+CEREG: 5,“0BD6”,“010E4201”,7
+CREG: 5,“0BD6”,“010E4201”,7
at+cops?
+COPS: 0,2,“22801”,7
OK

at+cops=1,2,“22802”
OK

+CEREG: 5,“A4D8”,“004A4805”,7
+CREG: 5,“A4D8”,“004A4805”,7
OK

at+cpol?
+CPOL: 1,2,“22801”,1,1,1,1
OK
at+cpls?
+CPLS: 0
OK
at+cops=0
OK

+CEREG: 5,“A4D8”,“004A4805”,7
+CREG: 5,“A4D8”,“004A4805”,7
at+cops=3,2
OK
at+cops?
+COPS: 1,2,“22802”,7
OK

This seems to be normal behavior.

At switch on, or recovery from lack of coverage, the MS selects the registered PLMN.
The registered PLMN is the one stored in the SIM (or in some cases in the module).
That means the last registered PLMN is the last one the MS successfully camped on in full service.

Hello jyijyi,
Thanks for this feedback.

Is there a way to force the module to use in priority the user defined PLMN list at startup/reboot instead of the last successfully connected network?

At minimum, our goal is to find a way to use a specific operator when available (Swisscom) and Sunrise only as a backup solution when Swisscom network is not available. Is PLMN list the correct way to implement this? Or do we need to do it manually (scan the available networks and use the manual operator COPS=1 command?)

Thanks a lot,
Michael

using the last successfully connected network seems to be part of the 3GPP specification.

You might need to select the operator manually by at+cops=1