GPRS is UP, but modem reports no GSM registration

Hi, all

I am observing interesting behaviour. FXT009, running 7.45

  1. Connect GPRS
  2. Run AT+CGATT=2 (kills both GSM and GPRS)
  3. Run AT+CGATT=1

LED starts flashing normally, GPRS can be brought up and is operational, but AT+CREG? returns 2,2 (searching)

It appears that modems in the field get into situation where GPRS is up, but modem reports loss of GSM registration. Use of AT+CGATT command is just one way I managed to reproduce it. We do not do that in the field.

Did anyone see situation where GSM registration appears lost, but GPRS operates?

This creates a particular problem for us, as we monitor modem status and attempt to recover (reset) if registration is lost for a while. We get quite a few of “false positive” resets where GPRS traffic is active and modem resets due to loss of registration. (Do not ask why we do not check for gprs traffic in decision making – it is a long story with lots of legacy code)

Thanks,
Rudolf

Hi Rudolf,

Can you perform your tests with the unsolicited indications for AT+CREG and AT+CGREG enabled? Attach the traces if possible.

Regards,
Rex

Hi,

As I was told By SiWi representative, modem behaves as expected, as those commands will stop GSM and keep it in off state. At+CFYN=1,0 should get GSM back 9I am yet to try it).
Personally, I would expect that there should not be a situation where GPRS is up but GSM is not. It is not logical. Also, if GSM is trully off, AT+CREG? should return 2,0, not 2,2 as this is misleading.

On the other hand, there is a definite problem with the FXT-003 unit. We can reliably get it into state where underlying base-band processor crashes. After recovery attempt, AT+CREG? commands may fail to produce any result ever. I call the command from the code using API and handler is never called. Unit is registered and GPRS and GSM parts work at this stage. Given that ICERA is no longer and FXT-003 is discontinued, I do not think there will be any support, but any ideas on how to minimise ICERA crashes and/or recover from one will be greatly appreciated. Our code now consists of relatively small core with huge amount of logic around it to work around platform bugs and deficiencies.

Thanks,
Rudolf