AT command problem??

19 thoughts on “AT command problem??

  1. Hi.

    I test my program and do not work very vell.  

    If run call sequnce make this :

    first send to module AT 

    and wait for OK

    if receive OK then wait 1sec and send ATD091xxxx; want call this tel number.

    read answer from module for OK ,10sec. and module return OK.

    now I konw so gsm module call my number and ringing .
    then controll all status of gsm module :




    and read answer.


    #QSS: 2,3
    +CIND: 5,1,1,1,0,0,0,0,3
    #SERVINFO: 48,-85,"EUROTEL-SK","23102",32,0013,08,0
    +CPAS: 4
    +CLCC: 1,0,3,0,0,"091xxxxx",129,""

    from answer I see so module is call to my number.

    then I send ATH wait 3sec, send ATD091xxxx; different number .

    and wait answer from gsm module 10sec,  but answer (OK) receive fast, less then 1sek 

    and if check status of gsm is :


    #QSS: 2,3
    +CIND: 5,0,0,0,0,0,0,0,3
    #SERVINFO: 48,-80,"EUROTEL-SK","23102",32,0013,08,0
    +CPAS: 0

    no active call or outgoing call . we see so gsm module is not registered (CIND 5,0,0..), but see operator name . and cpas is 0. 
    what I make wrong , previous command is ATD xxx ; and module answer OK , why don’t call to number 


    1. I test it again and same problem

      #QSS: 2,3
      +CIND: 5,0,1,0,0,0,0,0,3
      #SERVINFO: 48,-80,"EUROTEL-SK","23102",32,0013,07,1,,"II",01,6
      +CPAS: 0


      #QSS: 2,3
      +CIND: 5,0,0,0,0,0,0,0,3
      #SERVINFO: 48,-81,"EUROTEL-SK","23102",32,0013,08,0
      +CPAS: 0

      before ATD , module is registered and no problem but if send request for call number then problem. CIND inform not registered to network, CPAS no active call.

      some hardware problem or what?? 

      1. pls write here AT command to report power supply automaticaly.

        may I have problem with switch power supply.

        may if start call then VBAT go low and unregister form network..

        1. You cannot survey the power supply with AT commands in any way to give a good information about momentary glitches, you need to use a digital oscilloscope with memory, or something like this.

          Indeed in the case of bad power supply module can reset itself and lead to such inconsistencies you have.


          Use a strong supply as docs require to be confident on your tests.


  2. Today I began to thoroughly test the power supply for the module. I joined the oscilloscope probe to the output capacitor and I began to measure the Voltage ripple. I ran cyclically call at the number and I tested a number of attempts and actual number of calls when the module allows a ring at the number provided. Test fared as follows:
    average power: 4.015 V
    average ripple: 32.130 mV
    maximum power: 4.031 V
    minimum value of power: 3.906 V
    maximum of ripple power: 93.75 mV

    average of ripple power:     32mV
    program tried to execute Call 93 but actually made 70 Call (called party to ring minimally 3s). That means 23 times the link failed.

    I used the M524 oscilloscope, 500 mV per div, timeline 500ns per div.
    I called only one number, make test calls to multiple numbers.

    I let the record all outputs from GSM mode to file time stamp.
    Then the file attached to a examination.


    To 15:50 I made 306 attempts to call the given number but only 241 passed .
    on attach is short file of all answer from GSM module

    search: ATD0902647165; 

     if module return OK short time (1 or 2sec) that means  that it could not be Call on given number, if time is a great then ringing on given number

    1. If finish test then my program make 630 call to defined number but only 498 passed.


      any idea what happened?

      my program do not send  other AT command, if the previous command did not respond .



      1. Please clarify what is happening when the call fails, what is the phone status, is still answering to AT commands, SIM and registration status, signal, and how you treat the fail in your code.



  3. If I send to module ATDxxx; for want to made call then wait for OK.

    if OK receive then check all status of gsm module:

    signal, register to network, if call , outgoing , incoming … .

    if ATDxxxx; return OK then control if is call , outgoing.

    if no call (I send ATD and no call why??)  then send ATH and wait 3sec. 
    After this check all status of gsm module (signal, registration, call … .)

    If no call, I’m registered, then send ATDxxxx; again . and all made again. 

    look at my report file.

    there you can see time stamp.


    on top of this post you can see what I send to gsm module if send ATDxxx;





    1. You don’t want to believe the need to respect timeouts: ATD has a max timeout of 30 seconds, perfectly understandable because of network interaction. You can set a lower timeout with ATS7 but once again, 30 seconds is a good figure.

  4. I’m respect timeout 30sec ATD, If send this to gsm module then wait OK , and if return after 5 sec , OK , if return after 25sec OK, but return 1sec. and what ??? I must wait 30sec??? for interaction . what interaction??? in gsm module return OK it’s OK ?? or what else???


    if you write to me so if send to gsm module ATD and receive OK then need wait more then I’m wait for return OK , write how many?? or what further indicator tells me what is happening ?

    I don’t just send at command to gsm module ,I’m still waiting for an answer.

    and if  the response is OK, it means OK or what?


    1. Simply enough: send ATDwhatevernumber then wait for answer UP TO 30 seconds; of course if answer comes faster proceed immediately after; if after 30 seconds you still have no answer consider module dead and go to your failure procedures.


      1. I know it, but still don’t solve problem.

        if send to module ATD and answer is OK , gsm module don’t call to number , but return OK, why??? if  is problem why return OK???

        before call to number (ATD) I check +CPAS  and return 0. I can send any AT command .then I send ATD and wait for OK. if receive OK then again check +CPAS and return 0 , why ??? why don’t call to number , why don’t return +CPAS: 4 ??


        1. ATD starts the call, returning after completing its actions; of course the call can fail after ATD returns.

          1. So to clarify. If I send to the GSM module ATDxxx; module and answer OK, it means only that I processed the command but does not guarantee that I’m calling a given number??
            How to call a given number so that I had the same really started to call me if the module responds OK. or returns the error that it can not call. What actually means OK response to command ATDxxx;? As may be reasons not to open call if other indicators suggest that this should be so.

  5. I test with different setting.

    If start UP my application then first set this command AT#DIALMODE=2.


    and then made test with call. and I see:
    after ATDxxxx; on short time gsm module return RELEASED (ATH) .

    what all can made this command , what doest it mean??? 

    if call and all work good then after ATDxxxx; gsm module return (cca after 5sec) 

    DIALING, then RINGING . ..


    what happened  ???

    is there any special setting??

    I look to schematic on my PCB and I use only Rx , Tx and RTS is connect in to GND, all other (uart) pin are free. 

     what all process made this command ATH?

    1. And are you 100% sure an ATH was not sent in the queue, causing call abort? With such a command rate without keeping good order  odd things can happen and bve very hard to trace. Try slowing down the rate even ten times.


      I don’t know what you want to implement, but it looks like a fast dialing application used to "consume" some features on mobile plans .I had at some time such an app, but the implementation was much conservative than yours, the platform allowed it, I maintained a state machine keeping track of each call, respecting timeouts and all these. Worked OK in many scenarios, keeping up 6 simultaneous calls most of the time!



      1. I’m today change my call function from ATDxxx; and wait OK to (before set #DIALMODE=2) to ATDxxx; and wait all respond from gsm module.(DIALING,RINGING, CONNECTED…)

        if wait for this respond do nothing else just wait.

        if gsm module answer RELEASED I know so not call made.

        is my application fast, hmmm I’m don’t think , yes.
        but I have second gsm module GE865-quad and create new PCB board , and I have two prototype. and then test second prototype, and rent development kit from RUTRONIK and test my code with dev kit. 

        thus attempting to remove all doubt as to the power, damage to the module or badly programmed code.

        if no other option, so I test my prototype in a specialized clinic and meticulously inspected different parts of the whole circuit board and compatibility of the various parts

        while we still believe the error is on my side, and is why it does not work 100%.
        but I have no instructions more prototypes can not share it with sufficient certainty to express.