openAT lockups?



I work for a company who are currently investigating/evaluating a range of wavecom devices.

We have a concern with regards to a comment on another forum. The user described a state where a mistake in the openAT environment caused a module to freeze forever and that the only fix was to send the module back to be reprogrammed.

Can anybody offer any reassurances that this was merely sour grapes?




Hello Lee,
A properly designed Open-AT application never faces any risk of causing the module to freeze. The proper way to create an Open-AT application is to first execute it in debug mode (where it utilizes the resources of the PC) and check out any of the potential problems.
Only then the application should be created for the target mode and downloaded in the modem.

Also, Wavecom modules have inbuilt watchdog mechanism and RTK which restarts the module in case the application performs some invalid task (like infinite loop or invalid pointer operation). The best way to design an Open-AT application is to subscribe to a custom AT command (like AT+START) and when this command is given, the functionalities provided in the application will come into picture. In this way, even in case of faults in the application, the module will reset and you can erase the application or download a new application. (This is because, you have to give AT+START command to start the application and if there is some problem in application, the module will restart. Hence, don’t give AT+START but just erase the application using AT+WOPEN=0 and then AT+WOPEN=4).

Please note here that AT+START command is not used here to start/stop the Open-AT application itself. It is rather used to control the functionalities that your application provides. For instance, you start your Open-AT application and only when you give AT+START will it connect to the web server etc.

In case, you are using your application for a real M2M scenario where there is no entity to give such command, you can subscribe to a timer and when the timer expires, you start the functionalities provided by the application. In this case, if you application fails (crashes), the module will reset. Now, as you have provided the application’s functionality in the timer handler function, you can always stop the application before the timer expires and you application starts. Hence, there is no risk in this case too.

So, by and large, there is no problem in using Wavecom products. According to my experience, I have found Wavecom products to be the best in the market.

Rest depends upon your perception.

Best Regards,
Open AT Fan.


Hi OpenAt_FAN,

we have similar problems with wavecom Q2501 module,
in serveral situations the os doesnot reset the module, even
there should be watchdog functionality implemented.
at+cfun=1 does not work.

The only way is to disconnect from current, and reconnect.
then it runs again, until the next nevercomeback situation.

this is a big problem, any idea?
(Firmware 6.51, 3.03)




Hello thorsten,

Can you reproduce the problem?

Was the supply voltage low or specific Open AT code etc…?

I suggest using the newest wavecom OS and a hardware WDT.



Thanks for your reply,

what is the current version?
3.03 and 6.51 was on the cd my distributor sent us 2 weeks ago.

Supply voltage is about 3.8V.


Thorsten Keller


My openAT app has an exception. The modem resets every ten odd seconds. I cant issue any at commands nor at+wopen=0. I cant stop the openAT app from restarting and crashing.



Hello r-hire,

Open the hyperterminal window and use the Paste command with ‘AT+WOPEN=0’ command. Paste as fast as you can during the reboot, use shortcut. :smiley: It may help. Theoratically, there is a bigger gap before the user appli start when exception occured, so you have enough time to stop the application. But it is not always the case…

If your fingers are tired pressing paste button without success, you can use the DwlWin application. :wink:

Best Regards,


I also have managed to produce an OpenAT app that seems to reboot after a random amount of time. I can’t see why or where as pointer operations are minimal and the app is mostly cyclic, so if it worked one time it should work the next time. It usually does but then at some point later in time it just reboots.

I have been checking the reset pin, thinking of adding an extra pull-up. The app reboots on a section that does absolutely nothing different from the last few thousand times.

My question:
I have subscribed an error handler. I never get any output from it, so I was wondering when exactly the error handler is called, if not on invalid pointers or such.

I am currently developing this problem on Q2406B with OpenAT 3.04. Simply using the latest and greatest is not an option since the next generation modules are a bit short on supply here. When the day comes that only NG modules are used I’ll be elated since they are simply so much nicer.