SIM800L

sim800lfront Description quad-band GSM/GPRS module
I have paid $5.84 / piece (free shipping)
Supply voltage 3.4 – 4.4 V
Interface UART (2.8V)
Dimensions board size: 25 x 23 mm
Datasheet sim800_at_commands.pdf
Library sim800l.ino (test code)

Introduction

This is a very small and very cheap quad-band GSM module. Supply voltage is 3.4 up to 4.4 V (the module is designed to be powered by a Li-On battery). It is usually shipped with on-board antenna, which is sufficient to communicate with the GSM network but you can attach additional antenna to improve signal quality.

First steps

You need only 4 wires to make the module operational: VCC, RXD, TXD and GND. You need to connect 3.4-4.4 V to the VCC and GND power supply pins. Use strong power source. Manufacturer is stating that the consumption of the module can be up to 2A (in peaks). If you have your SIM card inserted (in the right way), the module will automatically connect to your home network after powering the module up. You will notice that by slower rate of blinking of the power LED.

sim800l_sim_orientationsim800l_sch

Now you can control the module using serial interface. You can use any USB-to-TTL module and your PC. Sellers are claiming that the module is 5V tolerant (and it seems to actually be), however the SIM800L hardware design manual defines maximum voltage of the high level as 2.8 V. It is safer to use proper voltage divider at the RXD pin of the SIM800L.
Once you have connected the UART (RXD, TXD, GND), make a serial connection. The module will automatically recognise any of the following baud rates: 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200. Type command “AT” to synchronise communication between the PC and the module. The module should respond “OK”. Signal level can be obtained using “AT+CSQ”. First value is signal level <rssi>, value “18” means -78 dBm. Second value is <ber>, value “0” means that bit error rate is below 0.2 %, which is OK.
signal
If you do not have any USB-to-TTL module, you can turn your Arduino into one. You can use this sketch to send the AT commands through Arduino serial monitor.