SMS is a method by which mobile phones can transmit messages up to 160 characters (not bytes, as 7bits per character are used). SMS has many oft-quoted downsides:
- expensive – it’s a fun-fact that without an unlimited message plan it is more expensive to send an SMS message than it is to download data from the Hubble Space Telescope
- slow – it is and wasn’t not unknown for an SMS message to take hours to be delivered, however, normally and presently messages are quick, on the order of a tens of seconds
- unreliable – SMS is a best-effort protocol, just like email, in which delivery is not guaranteed, and in the past this has been a problem, but recently I have only encountered this maybe twice a year, out of maybe 30,000 messages.
- insecure – SMS messages are not encrypted and the sending number can be spoofed (just like phone calls)
Despite these downfalls, I like SMS messages. They fit an needs that no other messaging system quite fills. Some of the up-sides of SMS are:
- cheap – unlimited texting is included in some plans:. SMS can only deliver approximately 300mb of data a month if used constantly (160 char per message * 7 bits per char / 8 bits per byte * 1 message per second * 62400 sec per day * 30 days per month = 362880000 bytes / month) in practice it’s significantly less than that.
- low power – SMS messaging works even if the power-hungry 3g and 4g networks are disconnected. While 2g networking is less power-hungry, I’ve personally never had much luck having it work on my Android phones.
- always available – Since SMS is part of the base cell protocols, it is available anywhere that cell service, even bad service, is.
- not IP-based – as funny as it sounds, this is a feature to me. 3g or 4g cellular data modems are expensive and require a lot of overhead to run (granted, often that overhead is built into OSs now). A cellphone or modem acting as an AT modem is very simple. In fact it can be done over telnet. This is useful for projects that don’t have a lot of computational power (i.e.: microcontroller (including Arduinos) and other embedded projects) or ones where a simple interface simplifies the project (e.g. server monitoring)
The insecurity and unreliability of SMS messages don’t worry me because my use can deal with both of these situations (though if wide-spread spoofing became an issue that may be an issue for any write-based services). These are also the same problems with email, although email is more likely to deliver a message I have had some get dropped before.
I personally take advantage of the low-power consumption often because I tend to kill the battery on my phone very quickly. By switching off the data network I am still able to stay in touch via SMS or by services that can operate over SMS (e.g. Twitter and write-only-Evernote).
There are also other services that work over SMS such as Yahoo, Google, Banking, and Wikipedia
A program that will talk to your cellphone as an AT modem is wammu (library and command line known as gammu). It will allow you to talk to a cellphone, send text messages, make calls, download received texts, read address books, and more. It’s hand and easy to script and use.