HE910 SW Flow Control

16 thoughts on “HE910 SW Flow Control

  1. Hi,


    We already sucessfully used GC864 Quad V2. Now we want to replace this module with HE910. 

    During testing HE910 with our ‘old’ Hardware we recognized that this module does not support SW Flow Control. Why? Is there another Firmware for this module which supports SW Flow Control?

    Unfortunately we can’t use HW flow control due to insufficient pins of our microcontroller.


     Thank you, kind regards



  2.  Hi Cosmin,


    thank you for your reply.


    Ok, so we will try to implement HW Flow Control.



    Another question:


    I currently try to get a network registration with HE910 (FW 12.00.004), but when I read the Network Registration Report with "AT+CREG?" I always get "+CREG: 1,0" as reply. What is wrong, especially why is <stat> always 0?


    I still checked the funcitonality of the SIM card. In our device working with GC864 Quad V2 it works fine.


    Thank you

  3. Is antenna connection OK? Try newtork survey commands, AT+COPS, AT#MONI to see what is around.


    … and see also AT#SIMDET, AT#QSS.

    1. #MONI replies "CME Error 30" -> No Network service

      So I will check my antenna connection.


      #QSS replies "#QSS: 0,1" 


      #SIMDET replies "SIMDET:2,1"


      so I guess that my SIM card is ok

  4. I checked the antenna connection. I tested several HE910 and antennas. I still get CME Error 30 when sending "AT#MONI" or "AT#COPS=?".


    I don’t know what might be wrong. I’m just setting CREG to 0, ENS to 0, COPS to 0 and AUTOBND to 2 right before I am sending "AT#MONI=7" and requesting "AT#MONI".

    1. Ok, I just found out why it was not working.

      I had to enter the SIM pin before checking CREG. With GC864 it was possible to enter the pin afterwards.

  5. Hi,


    I’m trying to use HW flow control with the HE910, but it is not working.

    CTS is always keeping logic 0 though I have definately a high loss of data during transmission in online mode. If I insert long delays during transmission there is no loss of data.


    For activation of HW flow control I tried AT&K3 without any effect. Is there another command I forgot to send for enabling HW flow control?


    Thank you, best regards

  6. Hi Eric,

    you don’t need others commands…

    I set it up as below and attacehd you can see a snapshot depicting CTS moving as it has to do.

    Are you really sure about your wire connection?

    Have you set up HW flow ocnyrol also on your transmitting device?


    DTE SPEED                      : 115200
    DTE FORMAT                     : 8N1
    GSM DATA MODE                  : Not Transparent
    AUTOBAUD                       : +IPRxxx00=NO
    COMMAND ECHO                   : E1=YES
    RESULT MESSAGES                : Q0=YES
    VERBOSE MESSAGES               : V1=YES
    EXTENDED MESSAGES              : X1=YES
    LINE SPEED                     : F0=autodetect
    CONSTANT DTE SPEED             : YES
    FLOW CONTROL OPTIONS           : &K3=HW bidirect.
    CTS (C106) OPTIONS             : &B2=OFF while disc.
    DSR (C107) OPTIONS             : &S3=PHONE ready->ON
    DTR (C108) OPTIONS             : &D0=ignored
    DCD (C109) OPTIONS             : &C1=follows carrier
    RI (C125) OPTIONS              : R1=OFF dur. off-hk
    C108/1 OPERATION               : &D4=NO
    POWER SAVING ON DTR            : +CFUN:1=NO
    DEFAULT PROFILE                : &Y0=user profile 1


  7. HE910, USB connection to Windows Embedded Compact 7 host, ReadFile returns 0 bytes.

    Our platform is a custom TI DM3730 based board running Windows Embedded Compact 7,
    and connects to the HE910 module over USB only.

    We are running a simple test application that uses the standard Windows CE functions:
    CreateFile, WriteFile, ReadFile etc.
    We are using the Telit supplied CDC-ACM driver:
    SO    : WEC7;
    Driver: UA.00.00.RC1;
    Module: HE910-EUR;
    FW    : 12.00.203

    If we set up a new connection from the Start menu, using:
    Start–>Settings–>Network and Dial-up Connections–>Make New Connection
    and select Dial-up Connection, then Next, and select the main Telit port
    (COM6:, but actually COM5: on our platform, as we have relabelled the ports),
    and accept the default settings. Then when we open the port using
    CreateFile, and send ‘AT’ using WriteFile, the ReadFile file returns
    a count of zero bytes, with nothing in the buffer.

    If the platform is reset, and we open the port before going into the
    Make New Connection dialog, then ReadFile returns ‘OK’ as expected.

    Why does setting up a connection to the main Telit modem port prevent
    the serial file ReadFile from working?
    Note that CreateFile, WriteFile and ReadFile always give a return value
    indicating a successful call. That is, no errors are indicated.


  8. Hi,

    thank you for your answer. We have solved the problem with the CTS signal. There was a hardware failure by myself.

    But we have currently another problem. We send Emails with large attachments (500kB up to 2 MB).

    If we send the attachment we wait that the CTS is low for each byte. But with a file size of 200 kB the CTS is even high for 90 seconds. After this 90 seconds timeout i deactivate the HE910.

    Why is the CTS always high?

    I tested a longer timeout (360 seconds) but it is the same situation.

    Please see the attached file. There you can find all AT and SMTP command.

    FC_Stop = CTS is high

    FC_Run = CTS is low

    Thanks for your help,


    –> This is the function to send the data.

    enum GSMState FlowControlSendString(uint8_t* GSMString,uint16_t delay)
        uint32_t flow_control_timeout=0;
            if (!ActivateModulSoftwareFlowControl)
                if(GPIO_PinInGet(UMTS_FLOWCONTROL_CTS_port,UMTS_FLOWCONTROL_CTS_pin) == 1) //Wenn CTS high, dann warten
                    flow_control_timeout = 90000/flow_control_delay; //Timeout = 90sec
                    while(GPIO_PinInGet(UMTS_FLOWCONTROL_CTS_port,UMTS_FLOWCONTROL_CTS_pin) == 1) //Solange CTS high -> warten
                        if(!flow_control_timeout)    return GSMFail;  
                if(GSM_GetChar()==0x13) //SW Flow Control
                    flow_control_timeout = 90000/flow_control_delay; //Timeout = 90sec
                    while(GSM_GetChar() != 0x11)
                        if(!flow_control_timeout)    return GSMFail;                    

        return GSMOk;

      1. Hello Cosmin,

        i work in online mode. In this case I must close the online mode with “+++”. After that i could check the state, but i cant. The module do not answer any command. The line “+++” is not recommended from the module. The cts is always high. Please understand it is not possible to check the connection state, because i dont get a answer to “+++” and the following AT commands.

        The hardware flow control work but there is a case where the module dont leave the cts high state.

        !!! I get a answer from the module, when i make a hard restart … i must leave the power form the module.The problem is not an isolated incident that happens with other HE910 modules.Do you have any idea.Thanks,Eric

  9. You can monitor the DSR line to check the connection status, and is useful to read the income serial stream to catch any error message or connection closing indication.

    Please clarify – a hardware reboot of your device, leaving the HE module untouched, makes the communication active again?