AT#SSEND returns “+CME ERROR: tx error”

9 thoughts on “AT#SSEND returns “+CME ERROR: tx error”

  1. I’m trying to optimize bandwidth achieved with the build in the modem TCP/IP stack.

    Setup is:

     – monitor socket info with AT#SI

     – send data until non ack-ed bytes are less than 10000

     

    Sometimes I receive this error on AT#SSEND:

    +CME ERROR: tx error

    it is received instead OK i.e. after > prompt and all paytload send to the modem.

     

    Could you explain what it means please? And is there something that I can do to avoid it? For example if it is because internal buffer overflows it will be nice if I know its size in order to use the same constraints.

  2. Another observed error on AT#SSEND is:

    +CME ERROR: activation failed

     

    Both errors occur on:

    Modem: GE864-QUAD V2

    Firmware: 10.00.022 and 10.00.028

    1. Hi Atanas,

      When
      sending data with AT#SSEND or AT#SSENDEXT and a lot of data is still
      waiting to be acknowledged, the module may reply with "+CME ERROR: 563"
      or "+CME ERROR: tx error", 

      when the next packet is sent.
      This
      error happens when the module tries to send the next packet and
      consequently it will also increment the ACK waiting counter. 

      If this counter is already too big, it may become bigger than the negotiated window size.
      To avoid this event from happening, the <ACK waiting> counter in AT#SI should be checked periodically.

      Example:

      AT#SSENDEXT=1,1200
      OK
      AT#SI=1
      #SI: 1,1200,0,0,0
      OK
      AT#SSENDEXT=1,1200
      OK
      AT#SI=1
      #SI: 1,2400,0,0,1200
      OK
      AT#SSENDEXT=1,1200
      OK
      AT#SI=1
      #SI:
      1,3600,0,0,2400            <- 2400 means that the ACKs for the last
      two packets haven’t been received yet. Wait at least one ACK.
      OK
      AT#SI=1
      #SI: 1,3600,0,0,1200            <- 1200 means that we are waiting one ACK, we can proceed with the next packet.
      OK
      AT#SSEND=1,1200
      OK
      1. This is what I was looking for, thanks.

         

        Is there a way to configure/detect window size with AT commands?

        If there is no way can I use the monitored in wireshark window size as constant?
        It is 11360 – will it remain the same in the all firmware revisions?

  3. Sorry, the latest firmware is 10.01.xx0 (I corrected above too) and this is the first one to support  AT#TCPMAXWIN. Download link sent.