CEREG and CEREG returns the same


I have tried to enable URCs for CEREG and CGREG with the following ar commands.

This works but after enabling this both CEREG and CGREG returns the same, this was not the case before and feels like a bug?

URC: +CGREG: 5,“2EF5”,“1DC920B”,7
URC: +CEREG: 5,“2EF5”,“1DC920B”,7

Command: AT+CEREG?
Response: +CEREG: 2,5,“2EF5”,“1B58A04”,7

Command: AT+CGREG?
Response: +CGREG: 2,5,“2EF5”,“1B58A04”,7

Before activating URCs CGREG would report something like 0,4 and CEREG 0,5 which makes sense. What is going on?


The “2” causes results from AT+CEREG? of

+CEREG: 2,<stat>[,[<tac>],[<ci>],[<AcT>]]

The default is AT+CEREG=0 which causes results from AT+CEREG? of

+CEREG: 0,<stat>

Yes but that was not my question.

How is it that the modem simultaneous reports that it is registered to both a LTE network (CEREG) and a 2G/3G network (CGREG).

This is not the case if

I understand that the last digit is the access technology, but stil is this how it is supposed to work? This was not what I was expecting.

(It’s an EG95 modem)

I have always assumed that the GPRS-specific AT+CGREG command applies to all packet-mode connections, and not just to 2G/GSM in packet mode.

Note the text in 3GPP 27.007, section 10.1.20:

If the GPRS MT also supports one or more of the circuit mode services in GERAN/UTRAN, EPS
services in E-UTRAN or 5G services in NG-RAN, the +CREG command and +CREG: result codes, the
+CEREG command and +CEREG: result codes and the +C5GREG command and +C5GREG: result codes
apply to the registration status and location information for those services.

A little ambiguous I know. So manufacturers may interpret that differently.

Thanks for the answer. Yes not just a little ambiguous. :slight_smile:

Since I have seen some, lets say, interesting behavior of the registration status where it for example during a short period of time jumps from registered to registration denied and back, I have some trust issues when it comes to C[E/G]REG and want to understand how I need to treat it for it to work reliably, not just on the home network. Can I trust that CGREG and CEREG always returns the same and correct information if CEREG=2 and CGREG=2?

Again the thing that got me worried is the changed behavior of theses at commands.


CEREG reports the LTE registration status. and CGREG reports the 2g/3g registration status. This is what I would expect otherwise why have two commands for this?

But if

CEREG and CGREG reports the same information regardless of access technology. And any change in registration status causes URC for both CEREG and CGREG to be generated.


I personally don’t use the AT+CGREG command at all in production systems. Instead, I use:


and trust the first one with a result which includes <tac/lac> and <ci>.

The AT+C5GREG command is only for NR5G-capable modems, of course.

Thanks for the input.

Perhaps CREG and CEREG is enough none of the modems I work with support C5GREG.


Hello Bjorns,

Can you give more information about your setup?
You said that it was working “before” so what firmware version? Can you confirm Hardware as well?
I’m using same setup as you with AT+CGREG=2 and AT+CEREG=2 so I’m interested in understanding was it going on !
Thank you :slight_smile:

Hello Thomas,

I will try to explain it again.

When I write C?REG I refer to CREG, CGREG and CEREG.

And just so that I have not misunderstood something and that we are talking about the same thing
CREG: Registration status for circuit switched
CGREG: Registration status for packet switched GPRS
CEREG: Registration status for packet switched EPS (LTE)

When no unsolicited messages was enabled for C?REG=0, CREG, CGREG and CEREG reports different and correct results. For example.

at at+creg?;+cgreg?;+cereg?
+CREG: 2,5
+CGREG: 2,0
+CEREG: 2,5

In other words I get individual results for CSD, GPRS and EPS. So far so good.

When enabling unsolicited messages C?REG=1 or C?REG=2. This is not the case anymore. Now I get the same answer to all AT+C?REG? commands. For example (The same is true for the unsolicited messages)

at at+creg?;+cgreg?;+cereg?
+CREG: 2,5,“2DF2”,“2052327”,7
+CGREG: 2,5,“2DF2”,“2052327”,7
+CEREG: 2,5,“2DF2”,“2052327”,7

Even the access technology is the same.

For reference this behavior is seen on the EG95 modem. On BG95 it is behaving “correct” regardless of the C?REG=X setting.

Hope this clarify my question.