COPS Command — Network Registration and Operator Selection
Sets the cellular network registration policy (technology and operator selection) and the network registration manager that provides automatic recovery.
What is it for?
📡 Main use cases:
- 🌐 Force an access technology (2G / 4G) where the device must lock to a RAT
- 🏢 Set a manual operator with automatic fallback (controlled roaming, specific PLMN)
- 🔧 Registration diagnostics on difficult networks (LATAM, LTE attach rejection)
- 🔁 Return to pure automatic mode (factory default)
- 🛟 Enable or disable the registration manager (recovery ladder) without OTA
Robust network registration (modes ""/2G/4G/M,<plmn> and the SCRM manager) is available from firmware v1.09.24. The raw COPS format (SCOP<sim>4,2,"plmn") works from v1.00.00 and is kept for backward compatibility.
SCOP — Network registration policy
SCOP is configured per SIM. The SIM index goes right after SCOP:
| Index | SIM |
|---|---|
0 or S | SIM0 |
1 | SIM1 |
The value to the right of the index defines the policy:
| Value | Policy | Behavior |
|---|---|---|
(empty) "" | Pure automatic | Automatic RAT + automatic operator selection. Factory default. |
2G | Forced 2G RAT | Limits the scan to 2G/GSM, automatic operator. |
4G | Forced 4G RAT | Limits the scan to LTE, automatic operator. |
3G | Not implemented (falls back to automatic) | The parser accepts it without error, but no modem recognizes it as a forced RAT: it always reverts to pure automatic, just like an unknown value. |
M,<plmn>[,<act>] | Manual operator with fallback | Selects the given PLMN in manual mode with automatic fallback. Optional <act> = access technology. |
<digits>… | Raw COPS string (legacy) | Sent as-is as an AT+COPS parameter. Backward compatibility. |
The only RAT tokens that are actually implemented are 2G and 4G. 3G is accepted by the parser (no error is returned) but modemCmdSendCops() does not distinguish it from an unknown value: on all modems, without exception, it falls back to pure automatic.
Examples (v1.09.24 modes)
// Pure automatic (default): automatic RAT and operator
>SCOP0<
>RCOP0<
// Force LTE on SIM0
>SCOP04G<
>RCOP04G<
// Force 2G on SIM1
>SCOP12G<
>RCOP12G<
// Manual operator with fallback (PLMN 72207, Movistar Argentina)
>SCOPM,72207<
>RCOPM,72207<
// Query the current policy of SIM0
>QCOP0<
>RCOP04G<Raw COPS format (legacy, backward compatible)
The classic AT+COPS format is still supported: pass the raw string after the SIM index.
Examples by Argentine operator
>SCOPS4,2,"722310"< // Claro Argentina (ex CTI)
>SCOPS4,0,"UNIFON"< // Movistar Argentina
>SCOPS4,0,"PERSONAL"< // Personal Argentina
>SCOP14,0,"UNIFON"< // Movistar on SIM1LTE module configuration (prioritizes GSM with LTE fallback)
| Operator | Command | Priority |
|---|---|---|
| 📱 Claro | >SCOPS4,2,"722310",0< | GSM → LTE |
| 📱 Personal | >SCOPS4,2,"72234",0< | GSM → LTE |
| 📱 Movistar | >SCOPS4,2,"72207",0< | GSM → LTE |
COPS works together with the CXAPN command for full connectivity configuration.
SCRM — Network registration manager (kill-switch)
When the registration manager is on (default), the device applies a recovery ladder during network registration: it waits, resets the radio and retries the RAT/operator selection before escalating to a reboot, avoiding getting stuck on a technology the network rejects.
SCRM works as a reversible kill-switch (over SMS, no OTA needed):
| Command | Action |
|---|---|
SCRM1 | Enables the registration manager (default) |
SCRM0 | Disables the manager (legacy behavior: applies the selection and continues, no ladder) |
SCRM | Queries the current state |
The state is persisted in non-volatile memory (key CEL.REGMGR) and the default value is 1 (on).
>SCRM<
>RCRM1< // Manager on
>SCRM0<
>RCRM0< // Disabled (legacy)Compatibility
See Also
- Cellular connection status (QCEL) — signal telemetry and registration ladder level
- CXAPN Command - APN configuration
- IP Command - Communication destinations
- MC Command - Country detection