Second try to register doesn't work


the first time i register to the network (adl_simSubscribe(…)) works perfectly. but after the offmode (i use at+cpof and at+cala) this kind of registering don’t work again. i tried with at+cpin=…, at+creg=1, at+cfun=1 and with on/off pin. the module doesn’t show any reaction.
if i use at+cpin=?, i always get an error without any tags.

i’m confused, whats to do?

Could you explain that a bit more clearly; adl_simSubscribe has nothing to do with network registration - what do you mean?


Thanks for taking time for my problem…

If I use this subscribe-function, the module automatically register to the network (the LED starts to blinking and I’m able to send SMSs).
I didn’t find a special OPEN AT instruction to register to the network. so I thought it has to be this one.

There is nothing specific to Open-AT - it’s a standard GSM AT Command:


See the AT Commands Manual.

The default is that the unit registers automatically.

If you want to monitor the registration state, monitor the +CREG: unsolicited responses.

You could also monitor +WIND: unsolicited responses.

Note that the +CREG: and +WIND: unsolicited responses are automatically enabled by ADL when your application is running - see the section “Inner AT Commands Configuration” in the ADL User Guide.

If I monitor with CREG? in the terminal emulator, he always response: +CREG:1,0.
If I use the adl_atCmdCreate(“AT+CREG?”…) function, the monitoring tool shows: +CREG:2,0.

If I “run” my program manually in the terminal emulator, the instruction works, but in the program it doesn’t work. the program stops at the CFUN=1 or CPIN=… commands.

I’ve just found out, that the module “see” the network, but he’s not registered! I get the response: +WIND: 7 !!!
And the response of CPIN? is SIM PIN --> PIN required.
But I now don’t know, why he doesn’t register to the network, becaus I use the CREG=2.
I never give up, I further try it :open_mouth:
p.s. The CFUN=1 instruction sets the CREG to 0!!

Which means, “Emergency calls only”

Think about it: the whole point of putting a PIN on your SIM is to stop it from being used by other people if it gets lost or stolen, isn’t it?

Therefore, if the PIN is set, the module will not register until the PIN has been correctly entered.

If you put this SIM into a mobile phone, you will get exactly the same behaviour; ie, it will stick at the “Enter PIN” prompt, and won’t register.

This is the correct behaviour!

It’s nice to know, that my module make the right thing. :slight_smile:
But my problem is now, to get registered at this point. I tried with the SIM-subscribe function, but nothing happen, neither a unsolicited response occurs nor another reaction.

Are you sure that your adl_simSubscribe() call is correct?

Do you get the appropriate +WIND: indications to confirm that the SIM is properly inserted?

Does it work if you clear the PIN from this SIM, or use another SIM without a PIN set?

The adl_simSubscribe() function needs to be correct, because I use this one for the first registering and it works perfectly.

I get three +WIND: responses:

+WIND: 1 --> SIM-Card has been inserted
+WIND: 7 --> Emergency calls only
+WIND: 13 --> ?

My next try will be with an SIM-Card without PIN-SET

I’ve just tried it with a SIM-Card without a code and it works.
Thanks for the idea.
I’ve still wonder me, why it doesn’t work with a PIN??

Are you sure you are sending the correct PIN?

Why are you subscribing twice?
Have you read the note in the ADL Manual about 2nd & subsequent calls to adl_simSubscribe()…?

Yes, I’m sure, that the PIN is correct.

I subscribe twice, because I have a independant system, which only register to the network when its nescessary. So it can be, that this state occure more than one time.

I’ve read something about this subscribe function. There is written, that the PIN at the second subscribe doesn’t matter. But I think it’s just true, if you don’t use the CPOF instruction.

You still seem to be confusing the ADL SIM Service subscription with the GSM Network registration - they are two entirely different things!

I use the following instruction in this cycle.

  • adl_simSubscribe(…);
  • adl_atCmdCreate(“AT+CALA”,…);
  • adl_atCmdCreate(“AT+CPOF”, …);
  • adl_atCmdCreate(“AT+CFUN=1”, …);

After this instructions the module response.

  • WIND: 7 --> Emergency calls only

It needs to subscribe the SIM again, isn’t it?

Surely, AT+CFUN=1 causes the whole unit to restart - it is a complete software reset?!