AT command script processor for GSM modem debugging

Posted on Wednesday, August 18th, 2010 in utilities by 7

Last week we wrote some software for a GSM (cellular) modem module.  The GSM modem is controlled by AT commands, like an old landline modem. Debugging is usually done by typing AT commands into Hyperterminal or the Bus Pirate.

We got tired of tapping out tons of AT commands by hand, so we created an AT Command Script Processor in C# (Visual C# 2010 Express Edition). We’re releasing it so people can share AT command scripts that demonstrate how various devices are configured.

Download it here, the current version as of this writing is 00.08.01 Alpha Release. We also added a page to the documentation wiki.

Use examples after the break.

There are two files included in the download: the application and a sample script file.

AT Command| Get Response (bool)| Delay|  Comment

The script file formatting is like this. The AT command is first, followed by a Boolean (TRUE/FALSE) value that tells the program if it needs to get a response. Finally, tell it how long to delay before retrieving data from the modem. The last field is an optional comment that is ignored.


AT|TRUE|1000|Send  AT then delay for 1 sec then get data

This example waits 1 second and then gets a reply from the GSM modem.


AT|FALSE| 1000|Send AT then delay for 1 sec

This example doesn’t get a reply from the GSM modem

This utility helped us test a series of AT commands during development. We’re releasing it so people can share AT command scripts that demonstrate how various devices are configured.

This entry was posted on Wednesday, August 18th, 2010 at 8:49 am and is filed under utilities. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

21 Responses to “AT command script processor for GSM modem debugging”

  1. -S- says:

    Great! Could you do a java version of it or something else portable?

  2. Wartos says:

    Does this mean we can expect a new Dangerous Prototype with a cellular module anytime soon? :p

  3. sjaak says:

    with us you can expect everything ;P

    But suppose we aren’t, do you have an idea for one?

  4. -S- says:

    A very small size gps tracker to be put into bicycle frame tube. I’d buy one :)

  5. tayken says:

    As I remember, AT commands are also used by bluetooth modules.

  6. nutwalker says:


  7. 7 says:

    There is a new version: 00.08.02

    – Added Option to adjust RX Buffer Size
    – Special Command for sending ascii from any hex range: __@HEX Usage: __@HEX=AA|TRUE|100|None — example: for creating SMS, Ctrl+Z is needed at the end of the message creation.

  8. 7 says:


    ah yeah, bluetooth modules also use AT commands. thank you for that :D

  9. tayken says:

    Hey, doesn’t Xbee modules also use AT commands? I have some, I’ll check it out sometime.

  10. 7 says:

    Hi tayken,

    thank you so much… I also tested it with the Bus Pirate and it works as well :D

  11. Fonsken says:

    Speaking about AT commands, is there a specification about timeouts? Or is it up to client to decide when he has waited enough?

  12. Ken Than says:

    The download link is no longer working. Can you post the new download link?

  13. HERU says:

    it seem doesn’t compatible with command AT+STGI=0 / AT+STGR= ; for GSM SIM TOOL KIT , because can not Read Reply from Provider.

  14. thor says:


    if it can be done on hyperterminal, it can also be done using this tool. maybe you just need to add some delays.

  15. 7 says:

    well said thor ;)

  16. iqbal says:

    I can’t download the application. Could you give me the link?Tq

  17. luite says:

    @iqbal see comment #14

  18. Jonathan says:

    Hi, I’m using this software and first of all I’d like to say thanks for writing it, because its pretty great.

    Secondly I have a question. When I use the AT command AT#SD to activate a remote socket connection directly through a terminal program (in my case secureCRT) I get the response “AT#SD = 1,0,80,”” but with my script using your software, the resonsei get is “AT#SD = 1,0,80,””.

    Can anyone tell me why this difference is appearing?

  19. 7 says:

    Currently, I am using this to send and receive AT commands in batches with my ESP8266. I will later try if I can inject Lua scripts to ESP8266 as well.

    Hi Jonathan, thanks for using the software. This project was born because I am tool lazy to retype things over and over again. :) By the way. I open-sourced this project as well.

    On the problem you mentioned and based on your post, I can’t find the difference of the results and seems to me that they are posting the same thing?
    response1: “AT#SD = 1,0,80,””
    response2: “AT#SD = 1,0,80,””

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recent Comments

  • Joe Desbonnet: Ya, I can recommend the low melting point solder. I used brand 'ChipQuik' and it's amazingly easy to use.
  • Jerome: I need a new BusPirate for the Fablab ;) Many thanks!
  • Max: Seems like an unexpectedly violent way to remove the chip indeed. A hot air station should of course do the job just fine, but in...
  • jose: Part removal described here is pure butchery, the cheapest hot air station will do a fast and clean job removing the QFP, heat air to...
  • Cody: Yes please