Q24+ problem in roaming


#1

We are using Q24+ for our application. It works fine when it is in local

network.

When it is roaming it will not register with the network so then we remove

the sim card and put it into our mobile phone and after confirm of

registertation in the mobile if we put back to our modem then it registers

and works fine.

We have another application running in Q24+ it also works fine in local

network. But when it is in roaming it never register with network even after doing the

above said procedure.

We have led connected for network indication

The only extra lines of code i added in the new application is below

if(adl_atUnSoSubscribe ( "+WIND: 15",UnSohdl )==OK)
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
	   TRACE ((2, "UnSoSubscribe OK "));
   }
   else
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\n UnSoSubscribe ERROR \r\n");
	   TRACE ((2, "UnSoSubscribe ERROR "));
   }
   
 if(adl_atUnSoSubscribe ( "+CLIP:",at_CLIP_atCmdRspHandler )==OK)
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
	   TRACE ((2, "UnSoSubscribe OK "));
   }
   else
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
	   TRACE ((2, "UnSoSubscribe ERROR "));
   }


   if(adl_atUnSoSubscribe ( "+CMTI:", UnSohdl_CMTI )==OK)
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
	   TRACE ((2, "UnSoSubscribe OK "));
   }
   else
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
	   TRACE ((2, "UnSoSubscribe ERROR "));
   }


   if(adl_atUnSoSubscribe ( "+WIND: 16", UnSohdl_WIND1)==OK)
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe OK \r\n");
	   TRACE ((2, "UnSoSubscribe OK "));
   }
   else
   {
	   adl_atSendResponse(ADL_AT_PORT_TYPE(ADL_PORT_UART1,TRUE),"\r\nUnSoSubscribe ERROR \r\n");
	   TRACE ((2, "UnSoSubscribe ERROR "));
   }




bool UnSohdl(adl_atUnsolicited_t *paras)
{

adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
   TRACE (( 1, paras->StrData ));

    
return FALSE;
}

bool UnSohdl_CMTI(adl_atUnsolicited_t *paras)
{

adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
   TRACE (( 1, paras->StrData ));

   
   if(sms_clr==SET)
	   sms_clr=CLR;
   else   sms_clr=SET; 

onesec_tmr=adl_tmrSubscribe(FALSE, 10, ADL_TMR_TYPE_100MS, 

(adl_tmrHandler_t) onesec_timerhdl);
return FALSE;
}


bool UnSohdl_WIND1(adl_atUnsolicited_t *paras)
{

adl_atSendResponse(ADL_AT_RSP, "\r\nWe have received a \r\n");
adl_atSendResponse(ADL_AT_RSP, paras->StrData);
   TRACE (( 1, paras->StrData ));  

  

TRACE (( 1,"length=%d",strlen(paras->StrData) ));  
   if(!wm_strcmp(paras->StrData,"\r\n+WIND: 16\r\n"))
   adl_atCmdCreate("AT+COPS=0",ADL_AT_PORT_TYPE( ADL_AT_UART1, 

TRUE),(adl_atRspHandler_t) atCmdRspHandler, "*", NULL);
  
return FALSE;
}



bool at_CLIP_atCmdRspHandler (adl_atUnsolicited_t  *atRespPtr)
{

	
TRACE ((1, "Inside at_CLIP_atCmdRspHandler"));
		
	TRACE ((1, atRespPtr ->StrData));
   _AT_RSP_TRUE_1("Inside at_CLIP_atCmdRspHandler\r\n");

	switch(atRespPtr -> Dest)
	{
	case ADL_PORT_UART1:
	    TRACE ((2, "Command Received on UART1"));
		break;

	case ADL_PORT_UART2:
		TRACE ((2, "Command Received on UART2"));	    
		break;
	}	

wm_strGetParameterString(recvd_tel_no,atRespPtr->StrData,1);
	TRACE ((2, recvd_tel_no));
  return FALSE;

}

Our module is connected with external watchdog timer and network indication pin is connected as input to this watchdog the reset time approx 25 sec.

I am sending AT+COPS=0 to make auto register with network when +WIND16 arrives

Both the applications are in similar hardware.

Please give us the input what wrong going on in my module?.

This is very critical and i need your help please.


#2

I search a lot in the Forum but i couldn’t understand. :frowning:
Please someone tell me what steps i have to do while in roaming.

Thanks viewers


#3

Does the “foreign” network use a different frequency band?


#4

I am in the same country India but in different State. When we enter different state then the service will be in roaming.

I Think Frequency Band will be same across the country.


#5

Will the module register if you use a “local” SIM for the other state?


#6

Yes it is registering when we put local SIM of that state.
Service provider in both the states are same “Airtel” no roaming partners


#7

I don’t think it is a good approach. 25 secs is a way low value especially during roaming. Give more time for registration! ( At least minutes )The other problem is that you will get rests when there is no network covarage. Using OpenAT you should dedicate a Pin for the watchdog and you can assert the pin when you checked your application internally. ( for example you got an ack. from the center ) Even in this case you can implement a reset when there is no connection however 25 sec is too low value.


#8

We planned to change the value at least to 1 minute

But our old application having similar Modem and Hardware is working fine.

I have added AT+COPS=0 in my new application to get autoregister with network Isl this causing any problem in my new application?


#9

Agreed!

Even that may be a little optimistic!

It is often the case that the very first roaming registration takes much longer than subsequent re-registrations.
So it could be that your short timeout means that the “new” unit never gains the “first-ever” roaming registration.

What happens if you stop the Open-AT application, and just leave the modem to register on its own?


#10

That is why we are putting SIM first into our mobile phone and after confirmation of registration we putting back to our module.

Subsequent re-registration in roaming will take more time than local?

Sorry Awneil these modules are not with me. They have sent for Demo and there we facing the problem.


#11

It might be that seeing the SIM in a different ME causes a (more) complete re-registration?

Extending that timeout is certainly the first thing to try!


#12

But the modems with old application registers with the network. In this i am not sending AT+COPS=0.

-Edit-
I think in my new App. when i give AT+COPS=0 (after UNSO +WIND: 16) it re initiates again for network registration and hence getting delayed and by that time our module gets restarts due to HW Watch Dog. Am i right?

We will try this first. also we arranging roaming SIMs to test these behaviors


#13

I think in my new App. when i give AT+COPS=0 (after UNSO +WIND: 16) module starts again for n/W auto registration process and hence getting delayed and by that time our module gets restarts due to HW Watch Dog.

Couldn’t be the case? My Guess…


#14

This is right. We sent two more modems with same application by removing AT+COPS=0 (after UNSO +WIND: 16). It is registering with network and working fine.

But still we have to put the SIM first into our mobile phone and then to our modem. This because of Our H/W watchdog time duration or timeout during first registration.


#15

Looking for your valuable Feedback


#16

Your watchdog sounds like the fundamental problem!


#17

That is right.

1 We will change the timer value at least to 1 minute?.
2 we will control internally from application using at+creg? (0,1 & 0,5)?

which will be better?


#18

What, exactly, is the purpose of the Watchdog?

If it is just to catch loss-of-registration, then I think at least 5 minutes would be better…

But then, if it is just to catch loss-of-registration, why does it need to be an external, hardware watchdog at all?
Why not just use Open-AT timers?


#19

Really good suggestion! 8)

Right. It is Better and simplified! :bulb:


#20

Also this was causing downloading problem using AT+WDWL

Its always getting reset during first attempt and succeeding in second attempt like this

at+wdwl<CR>

<CR><LF>
+WDWL: 0<CR><LF>
<NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK>
// Fail
+WIND: 13<CR><LF>
<CR><LF>
+CGEV: ME CLASS "B"<CR><LF>

at+wdwl<CR>

<NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK><NAK>

//Success

Removing this H/W watchdog solved our issues :smiley:

We were unable using M2M before this . Now this also solved 8)