Cheap and easy SMS via GSM for your MCU

Non acronym version of the title: send and receive text messages via cell phone communication towers using an Arduino or other microcontroller. “We’ve been doing that for years!” you cry, well yes, technically. But [Fincham] lays it outs simply; commercial offerings are expensive and finding a cell phone that uses RS232 now a days is getting difficult, so a new way of doing the same old is necessary. The good news is USB GSM modems are readily available, cheap, and only require a few interface pins to get them talking with an Arduino. In fact, the image above is all you need.

67 thoughts on “Cheap and easy SMS via GSM for your MCU

  1. @Gant:

    USB host on a microcontroller is vastly more complex and expensive – just the sort of thing this hack was trying to get around.

    The soldering really isn’t that complex. You only have to remove an IC and it doesn’t matter if you kill it in the process!

  2. @Spangen:

    The module does work, but you have to realize that it is primarily designed for European use. The only frequency that really works on our side is the GSM/PCS-1900 Band. Basically, that is the band that Cingular used (now AT&T), so you will need an AT&T go-phone or true AT&T account in order to use this modem. I used the module with great success with my AT&T SIM card.

    One thing, though. If you are wanting to play with the module before hooking it up to an MCU, remove the 8 pin EEPROM next to the PL2303. This will turn the PL2303 into a normal USB RS-232 transceiver chip so you can play with the AT commands.

  3. Damn doesnt work in australia either. probably due to the IMEI
    >AT+CGSN
    IMEI: 00000000900000-1
    IMEISV: 00000000900000-08

    and the network registration status after a few minutes is:
    >AT+CREG?
    +CREG: 0, 3
    where the 3 means “Limiting Service: registration denied”

    Is there some way to set this value I wonder. the benq AT command sheet says its set by the manufacturer, I guess now we know why they are so cheap. also it seems odd that the shielding is removed from the module

    oh and regarding the comments on the antenna. this shows mine disassembled https://lh5.googleusercontent.com/_gSJjS8PDIVI/TcTYqhECntI/AAAAAAAAAKc/YY-bQoSQp8o/gsm-module.JPG … love you Chinese engineers. cutting so many corners the thing doesnt function (even when using the included software and stock hardware)

  4. neat tip re. the 8 pin chip.

    I suggest the use of a simple Hall sensor aka 3 pin things used as laptop and phone lid sensors as an enable/disable for the onboard chip.
    Most SE2PROMS have this little feature so you can connect it to a PC as well as using it for your retro phone conversion/mobile robot/lost bicycle detector/balloon tracker/etc just by using a magnet.

    Wonder if this would also work with one of the dual Hall things so you can select one of two E2PROMs or none?

  5. You can get it cheaper from alibaba.com (18$).
    EEPROM can be left untouched as long as you install atached drivers and use any serial terminal to send AT commands.

  6. @celulux

    The whole point of this procedure is to bypass the need for a USB host implementation. Soldering to the USB pins will only give you access to the USB to serial IC, when what we want for easy Arduino integration is the direct RS232 serial on the other side of that IC.

  7. in other words, Arduino requires a serial data? not the data that has been converted by the IC ? that’s why we need to remove the IC. is it true ?

  8. in other words, Arduino requires a serial data? not the data that has been converted by the IC ? that’s why we need to remove the IC. is it true ?

    if i solder on pins 1,2,3,4 are not running?

  9. you dont need to desolder the whole chip, only the TX pin of the chip (Rx input for the module) because this pin has a low impedance output and will “fight” the TX of your microcontroller.
    you can do this buy lifting the pin with a tiny screwdriver or hobby knife while applying heat from a soldering iron to the pad. this is generally easier than desoldering the entire chip

  10. @jarrod

    I see guys. May be more safe I buy a usb to ttl converter such as products from FTDI to get the rx and tx. The result will be the same right ?

  11. No that won’t work, the module already has a USB slave converter, you can’t simply connect another tobget back to serial. USB works using a master-slave system. If you are uncomfortable with this, shops like sparkfun sell modules ready to use with a microcontroller.. even arduino Ham shields

  12. @celulux read up on USB, and read through the rest of the comments here and you might begin to understand why that won’t work

  13. I got one of these working with a T-mobile pay-as-you-go SIM card. The GSM modem I got actually had an IMEI (it wasn’t printed on the device or its packaging or manuals and I had to desolder the 8-pin EEPROM chip and retrieve the IMEI from the device via serial AT commands).

    I don’t know how IMEI allocation works or even if the number on my modem is unique. When I log into T-mobile’s online account management website, it seems to think I’m using the SIM card in an LG flip phone. So if you order one of these, you *may* get one that will work on networks that explicitly require an IMEI for access.

    The “antenna” that comes soldered to the board is a joke, and its signal reception is pathetic. I’m going to try to find an external antenna and see if I can get another bar or two.

  14. Hi everybody; Anybody got this working?
    I´d like to control my farm with these from my cell.Do you think it will work?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s