Hey, > I have yet another question around the Fibocom MA510 modem. I'm > observing an issue where the modem is in registered state when > ModemManager starts up. MM ignores this due to > > 3GPP registration state change ignored as modem isn't enabled (line 832) > > MM then triggers an automatic network registration (+COPS=0, line 937) > and then immediately proceeds with connecting since the modem reports > +COPS: 0,0,"...",7. The modem appears to be slow in reacting to the > +COPS=0 because right after the connection is up, we get +CEREG: 0 (line > 1072) and NW DETACH. > > I have 2 questions around this: > 1. Is it possible to initialize the modem as enabled if it's already > registered automatically? Then we wouldn't have to trigger an automatic > network registration which would speed all of this up significantly.
We could store those 3GPP reg state updates that happened before being enabled, and once we get enabled, we could apply them. Those delayed 3GPP reg state updates could take us right away into registered state. This could definitely be a good change to do indeed. > 2. Is the modem misbehaving after the first +COPS=0 when it only emits > +CEREG: 0 some seconds later? How can we handle this properly? > Please note that the automatic registration you're seeing (+COPS=0) is being started because you likely run a Simple.Connect() while the modem was disabled (as opposed to running a Modem.Enable() first and then a Simple.Connect()). Not saying that running the Simple.Connect() while disabled is wrong, but I think it's important to note that MM won't ever run +COPS=0 on its own. Regarding the issue itself, ideally if the modem is already registered automatically in the home network, running +COPS=0 could just be a no-op; if the modem is reporting +CEREG: 0 after the +COPS=0, I think we could try to improve the logic to avoid having run the +COPS=0 in the first place, either by applying those delayed 3GPP registration updates from the previous questions, or even running an explicit registration refresh before triggering the automatic registration in the Simple.Connect() logic. -- Aleksander