Network selection (+COPS,+CPOL+CPLS)

Hi,

My understanding of AT+COPS=? is that it returns a list of detected PLMNs. Are these in any particular order (e.g. signal strength)?
If the module returns PLMNs x,y,z and has automatically registered to x, and then I force it to manually register to y (via AT+COPS=1,…) then will it fallback to x if y disappears and if so will it ever return to y if it reappears ?
If the above is not possible then I assume I have to use AT+CPOL and AT+CPLS to edit/create a PLMN list on the SIM. Are then any examples on how to do this?

If I create a PLMN list then how do I get the module to go straight to step 3 in the sequence below (from a post I have see elsewhere on this forum) ?

1.Last registered PLMN; this is stored in SIM.
2.HPLMN.
3.PLMN from user controlled PLMN selector in order of priority.
4.PLMN from operator controlled PLMN selector in order of priority.
5.Other PLMN with sufficient signal strength in random order.
6.Other PLMN in decreasing signal quality.

Thanks

Hi,
This document can help you, https://source.sierrawireless.com/resources/airprime/application_notes_and_code_samples/airprime---plmn-selection-and-reselection---application-note/#sthash.CBqjQBEK.dpbs
If you want to check signal strength, you can use AT+CSQ

Please check “Solution” if your question is answered.
Thanks,

@GaryATodd,

So to answer the simple questions first.

  • Yes the cops command returns a list of PLMN’s that unit can see, it will list different tech separately i.e. Vodafone 2G and Vodafone 3G.
  • If the unit has attached to a given network then yes you can manually force it to attempt to attach to another one.
  • If you do this then it will stay on this network and ONLY this network, it will not fallback to another one if it say, loses coverage. The unit will only fallback if it is auto mode (there are other modes i.e. at+cops=4 but it is a little predictable so I would not recommend using it).
  • If you do say at+cops=1,2,“23415” then it will only use Voda UK (all tech) as opposed to at+cops=1,2,“23415”,7 where this would stay only on Vodafone UK LTE (and not fall back to 2G/3G).

If the unit is in auto mode, generically speaking it will do what the SIM tells it to do and will operate based on the CPOL. It is possible to modify these using AT commands but the operators keep an eye on these and iof they are changed from what they want they will update the SIM over the air, there is no way to stop this, and it will happen transparently.

The general recommendation is to either go full auto (at+cops=0, the default) or full manual, don’t relay on the internal cell/network selection algorithm which is complex and reliant upon external factor that you might not have control of.

Regards

Matt

HI Matt,

Thanks for this useful information. Does the at+cops=? return the PLMNs in any order (e.g. signal strength) ?
What I am trying to do is to provide the user will a list of available networks (via AT+COPS=?") and then allow the user to choose their preferred network from this list, and then send an AT+COPS command to select the chosen network. However, if the network becomes “not available” then I want the unit to go back to automatic selection but only until the user’s preferred network becomes available again. I’m not sure of the best way to achieve this (or whether its even possible). I was hoping AT+COPS=4 may work but you don’t recommend it. Any suggestions?

Thanks

@GaryATodd,

You can try mode 4 but from my experience its not awesome.

No the units are not listed in any specific order I am aware of, certainly not signal strength.

If you ignore the technology and just rely on setting an operator then I would do the following.

  1. Trigger a network search with at+cops=?
  2. Present the list to the user (with or without tech as you want) which they then select from.
  3. Set the unit to manual selection of that network.
  4. Then turn the CREG/CGREG/CEREG responses on, if the unit goes out of service (so is not state 1 or 5) for more than 10-20 seconds (the time delay will make allowances for any minor state changes which can be seen for short periods as it performs location/tracking area updates, tech selection changes, etc) then send at+cops=0 to the unit.
  5. The at+cops=0 will push it to auto mode and get you back on line ASAP.
  6. The tricky part here is to detect when the previous network re appears. The only sensible way to do this is to periodically send at+cops=? to check. It can always be aborted if the application needs to make connection/call.

Regards

Matt

Hi Matt,

Following on from the above, we have seen a situation where the module falls back from EE 4G to EE 2G and latches to EE 2G, without ever going back up to EE 4G. I think we have discussed this before and it is normal behaviour.
Is there a command that we can periodically send to the module to cause the module to unlatch from this condition and re-evaluate whether to use 4G or 2G?
Would AT+COPS=2 (de-register) followed by AT+COPS=0 (Auto) or AT+COPS=1 (Manual) have the desired effect or perhaps there is a better way?

Thanks