How to check module registration with AT command

Why are there 3 different commands to check the module is registered (attached) to the network? It is according to the different types of core network architecture:

AT+CREG // GERAN, E-UTRAN – core network used in 2G and 3G mode
AT+CGREG // GPRS, GERAN – data services in 2G GSM/GPRS core network
AT+CEREG // EPS – (Evolved Packet System) core network used in 4G mode

The module can state what kind of services it registered for according to the type of core network that it attempted to attach to.
For general user, they don’t really have much idea which type of core network is out there, but these commands come from 3GPP standards… But generally for 4G, only CEREG needs to be checked. For 2G and 3G, then CREG and CGREG can be used.

It can be that for modules that support different radio technologies, a SIM is only registered for service in 4G so AT+CREG returns registration denied but CEREG returns registered OK…

Hope this helps…


Yes, you’re correct. +CREG is usually used to indicate the registration status for Circuit Switch domain. For example, if +CREG returns denied, CS voice call would not be available.
Also some Network Operators don’t deploy GSM network, and they use Voice over LTE. In this scenario, +CREG would return denied and +CEREG returns registered OK.
In some network, data-only sim card could also have this result.


Hi Willie,

We are having the same problem. We are using the UG95A (3G) module in the US and Mexico. When we attempt to use a Global SIM cards the device doe not register with the network (AT&T, T-Mobile) or (Telcel, AT&T - Mexico). When we insert the SIM card into a iPhone it connects. Then, when we remove the same SIM cards and insert it into our device it connects (quite fast). We are using the standard “AT_CREG 0,2” commands.

Looking forward for a quick solution - thank you!

Best, Chris

Hi Team,
We are having the same issue in India. we use MC60 modules. connects flawlessly in the home network, but the moment the user goes to a different state, it disconnects. But it works when we insert the m2m sim into a mobile and put it back into the IoT Device.
Any help would be appreciated.