Does one exist? Not according to my piles of google searches.
Seems pretty unlikely to me. A microcontroller like an Arduino is very 'small' in terms of processing power when compared to the microprocessor you'd find inside of a cell phone.
check out this link... http://www.libelium.com/tienda/catalog/product_info.php?cPath=21&products_id=59
Very nice link, lag. I was going to suggest GM862 Cellular Quad Band Module - CEL-00757 - SparkFun Electronics which is the module alone. I didn't know there was a shield version yet.
I'm not sure why one would think processing power is an issue, the cellular module takes care of everything. Just add a SIM card and it's as easy to use over the serial pins as a hayes compatible modem.
mugzilla, have you seen this thread? http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1250631908
Might be just what you want.
Andrew
Anyone used it so far??
Anyone used it so far?
I've got one and for the life of me have not been able to get it to work.
Only had it a couple of days but can not even get response sending AT commands, the data sheets are not brilliant either.
I would not recommend it.
Yes I have a "Cellular Shield with SM5100B" and got it to work.
There's two possible problems (I had both). The Baud Rate Being mis-configured and current draw too great for USB.
Baud rate problem - (the problem & fix that I put on the comments in the sparkfun product page:)
Problem:
The default baud rate (for the SM5100) was set at 115200; this is also the factory default as stated on page 24 of the AT command document. Sparkfun is supposed to be setting them at 9600 during production. Not sure if this is problem is only on my board or the whole batch.
The shield's solder jumpers configure it to use pins 2/3 for the SM5100B's output, which requires using Softserial
The sample sketch included, uses 9600 baud for communication with the 5100 (instead of the 115200 that the module is configured at).
Softserial CAN NOT receive at 115200 baud (so simply correcting the sketch to the correct baud is not possible)
Therefore the Arduino does not see any serial traffic from the 5100.
(because its at the wrong baud rate, but even if connected to the correct baud rate 115200, it wont work due to the baud limit of SoftSerial).
Fix:
Connect directly to pins 2/3/gnd with any serial TTL connection (FT232 breakout, FTDI cable, etc...)
Connect at 115200 baud, and you should see some commands output by the 5100 ("+SIND: 4", etc..)
type in this command to reset the baud rate to 9600: "AT+IPR=9600"
It should respond with "OK". (This setting is saved in non-volatile memory.)
Current Problem -
The 5100B draws more current than the USB port can deliver, so you have to hook the Arduino up to an external power source in order for it to properly run.
If this works, you might want to also want to post in the comments section, so sparkfun is aware that others have this problem too.
Thanks AZRobbo, I was a little suspicious of the baudrate, will try that tomorrow, hopefully it will work.
I'm using the "GSM Playground" shield from Hardware Kitchen:
Works OK so far! We've used it mainly for SMS (text messages), but another user at Dorkbot Bristol has been using one for GPRS data access. Be sure to get a Lithium Polymer battery for it, because it will try to draw much more current than the USB port can supply. This will simply crash it if you don't have the battery connected.
The shield has a DTMF decoder built-in, as well as a clock backup supercap, a microphone, a piezo buzzer and the usual SIM card socket.
AZRobbo, do you mind posting how exactly you set this baudrate? I have an extra Arduino and a FT232RL breakout board but I can't seem to get it to work at all...
Maybe you could post a step-by-step guide, e.g. which wires go where etc? It seems simple, but.. hell. I'm doing something wrong.
Right O.
I have spent the whole weekend trying to get this running smoothly.
Now I need help.
I have a SM5100B on the Sparkfun Shield.
I can get it to send ONE text SMS fine each time it restarts then it fails of ages (like 5 to 10 min), with +CME ERROR:4.
After a while it will send one message again.
I have tried two ways to send, both do the same.
What is missing?? It has got to be something like that.
PLEASE help, Im ready to chuck it in.
Here is my code, two examples listed..
Thanks.. M
// Define messenger function
void messageCompleted() {
// This loop will echo each element of the message separately
while ( message.available() ) {
if ( message.checkString("OK") )
{
digitalWrite (ReadyLed, HIGH);
digitalWrite (BusyLed, LOW);
Serial.println("GSM Ready - OK");
}
if ( message.checkString("+CME ERROR: 4") )
{
Serial.println(string); // Echo the string
Serial.println("+CME ERROR:4 -operation not supported. ");
digitalWrite (ReadyLed, HIGH);
digitalWrite (BusyLed, HIGH);
}
if ( message.checkString("+SIND: 4") )
{
Serial.println("SIM Ready");
bootOneTime();
}
message.copyString(string,MAXSIZE);
Serial.print(string); // Echo the string
Serial.println(); // Terminate the message with a carriage return
}
}
void sendSMSpreamble() {
delay(1500);
cell.print("at+cmgs="); // comand message
cell.print(34,BYTE); // "
cell.print(PHONE); // Insert phone number
cell.println(34,BYTE); // "
Serial.println("preamble");
delay(1500);
}
void sendSMSappend() {
delay(500);
cell.println(26,BYTE); // end of message command Ctrl-z
Serial.println("append");
delay(5000);
isActive0 = 0; //Finished Sending
}
void sendErrorSMS() {
sendSMSpreamble();
Serial.print("Error: ");
// cell.print(errorMsg[error]);
// writeStatus();
sendSMSappend();
}
void StatCheckGSM() {
cell.println("atz");
delay(1000);
}
void sendTestSMS() {
SetMode();
sendSMSpreamble();
sendStatus();
sendSMSappend();
}
void sendStatus() {
cell.print("Test SMS: ");
cell.println(SMS0);
Serial.println("message");
}
void sendStatusSMS() {
sendSMSpreamble();
//writeStatus();
sendSMSappend();
}
void SetMode() {
cell.println("at+cmgf=1"); //Set message mode to Text (1)
Serial.println("setmode");
}
void bootOneTime() {
digitalWrite (ReadyLed, LOW);
digitalWrite (BusyLed, HIGH);
cell.println("at+cmgf=1"); //Set message mode to Text (1)
delay(1000);
cell.println("AT+CSQ"); // Check signal strength
Serial.println("System Ready....");
digitalWrite (ReadyLed, HIGH);
cell.println("AT+CMGD=1,4");
}
Also Have tried the following.
// Send the restore SMS
if ( SMS1 >= 1 && isActive1 == 0 ) {
Serial.print("Door-1 Restore. Now Closed after "); // Do something only if interval has elapsed and the metro is "active"
Serial.print(SMS1);
Serial.println(" times.");
Door1Metro.interval(timing);
cell.println("at+cmgf=1");
Serial.println("at+cmgf=1");
delay (100);
cell.print("at+cmgs=");
Serial.println("at+cmgs=");
cell.print(34,BYTE);
cell.print(PHONE);
Serial.println(PHONE);
cell.println(34,BYTE);
//cell.print(13,BYTE);
cell.print("Door 1 Restore. Door 1 Now secure. Door trigger was looped ");
cell.print(SMS1);
cell.print(" times.");
cell.println(26,BYTE);
cell.print("ok");
SMS1 = 0;
}
//cell.println("at+cmgf=1");
//cell.print("at+cmgs=");
//cell.print(34,BYTE);
//cell.print(PHONE);
//cell.println(34,BYTE);
//cell.print("Your Message Here");
//cell.print(SMS1); //insert counter
//cell.println(26,BYTE);
Hi,
I have also aquired a SM5100B-D and Shield. I started playing with this module, this morning.
I am new at this ARDUINO environment myself, but I do understand GSM, GPRS, UMTS and WIMAX.
I cannot tell you why, just yet, but I found that if I use a 32K sim card instead of a 64K sim card, all works properly. I have tested the 64k sim in other modules and it works fine.
...Hmmm STANDARDS - maybe, where are they?
I have also not gone through all the literature, but I don't see any explicit exclusions on 64K sim cards. If anyone knows of these; please let me know. :-/
I will write and test more 'sketches'.
Kind regards
MiloSA
HI,
Something more that I noticed besides the 32K sim card limitation, is that in my country we use 3 mobile operators. Using the "AT+COPS=?" at-command in a loop, I could see that the SM5100B-D losses the operator network and tries to re-attach/re-register to an alternate operator-network, when I set the COPS selections to automatic. I connected an antennae and forced manual selection and monitored for "+SIND: 11", before moving on...
You should always consider the "+SIND: 11" response before doing anything else...
Also consider that each of the mobile-base-transceiver-stations from the various operators might work at different power levels, so, to ensure RF reception and stability, you must use the antennae on the unit and prevent the re-selection by fixing the operator selection to "manual".
This is quite a nice unit! I love all the cool Operator-NETWORK-info that is available.
Kind regards
miloSA
I have spent the whole weekend trying to get this running smoothly.
Now I need help.I have a SM5100B on the Sparkfun Shield.
OK, but remember that the GSM module will draw more power than the USB port can supply. How does your setup deal with this? Is there a battery (lithium-polymer cell)? Or do you have an external power supply capable of supplying about 2Amps?
OK, but remember that the GSM module will draw more power than the USB port can supply.
Yes, thanks.
The set up is running from a 12v 2.5a Supply, into Vin.
The Unit will always send the first SMS without a problem.
The second and subsequent SMS's fail with a error message from the SM5100.
The error is as listed before CME Error 4 (an unknown command error).
I can still query the unit, and get an answer, using other queries, like AT and I get OK.
There is something I cant find getting in the way of the next message.
Like an unfinished command getting fed into the sm5100 before I start the SMS sending loop.
Does any one have a working code example?
IE push a button and send an SMS.
I would love to see one, and test with my hardware.
MH
There is something I cant find getting in the way of the next message.
Like an unfinished command getting fed into the sm5100 before I start the SMS sending loop.
Maybe some other eyes looking at the code would help. Post your code.
The set up is running from a 12v 2.5a Supply, into Vin.
OK, so how much current can the on-board regulator supply? I'm not sure myself, so it's worth looking up. Remember that the regulator will be dropping 7V, so it'll be dissipating quite a bit of heat.
In my experience, bizarre hardware behaviour can be caused by marginal power supplies. I certainly had the GSM Playground crash unexpectedly when I didn't have it connected to a LiPo battery.
How long are you waiting before sending the next SMS? I didn't see it documented in the datasheet but in the Telit datasheet (I use the GE865) they warn you that it could take up to 60 seconds before the message goes through. If you're trying to send the next message during this timeout period then you will probably get an error. Try issuing just a "AT" command prior to sending each SMS and see if that helps. If it does it's probably a timeout issue.
I would have thought that Sparkfun designed the board with its high current regulator to be able to drive the GSM unit from the 5v supply.
Regardless running from a 12v 2.5A psu there is No voltage drop or fluctuation from the 3.3v, 5v, or Vin +12v lines when sending a SMS.
And Like I said, it ALWAYS sends one SMS and it is DELIVERED to my phone.
Code dont fit in one post
M