Macchina and GSM connection

How to get Macchina connected to the internet via a GSM shield.

There are several GSM shields out there, all with very similar features. We decided to use this one, since it was easy to get ahold of.

Available here:

http://www.seeedstudio.com/depot/gprs-shield-v20-p-1379.html?cPath=19_20

and again, amazingly enough, at RadioShack (?!) although this is an older version:

http://www.radioshack.com/product/index.jsp?productId=16518376

First thing to do is set up the hardware.

Insert a SIM card. [More on this later]

Next, decide on how to connect the shield to the Macchina.

The Seeedstudio shield doesn't reach the spare hardware serial lines on the Macchina, so you'll need to run two jumper wires from the shield to TX1 and RX1 on the Macchina. Having spare hardware UARTs is nice, as the other option is software serial, which takes up valuable flash, RAM, and CPU cycles.

Now it is time to set up the libraries:

We're working from library built for a different GSM shield, but it works very well with this shield after some slight modification. It can be found here:

https://code.google.com/p/gsm-shield-arduino/

Just get the latest from Downloads. The Readme file is pretty good, and the examples are also good places to start.

Macchina has the same pinout as the Mega 2560, so you'll want to make sure the "#define 2560" lines are uncommented in HWserial.h and GSM.h, and comment out the "#define UNO" line in GSM.h.

One more thing: There's a rather crucial error in the httpPOST() method in inetGSM.cpp. Lines 101-103 should be:

gsm.SimpleWrite("\r\n\r\n");
gsm.SimpleWrite(parameters);
gsm.SimpleWrite("\r\n\r\n");

I don't know if they dealt with some really permissive servers or what during their development, but most servers need a double carriage return + newline after the HTTP header, and not just newlines. I'll submit a patch to them with the fix, or add an issue to the project.

Once these step are done, we can start coding. To be continued...

Comments