I am having the exact same problem and I am pretty much stumped. I think that I read your post on http://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/
I tried this, not exactly sure I did it right
Interim update: If I go into the NewSoftSerial.cpp and change the interrupt timings for our 16MHz chip to the following I get about 27 characters per chunk before it loses synchronization. That’s enough to send the AT command to the SM5100B to change its baud rate to something more manageable. But just in case anyone else runs into this problem, here are the timing values (using NewSoftSerial library version 10):
#if F_CPU == 16000000
static const DELAY_TABLE PROGMEM table[] =
{
// baud rxcenter rxintra rxstop tx
{ 115200, 1, 16, 16, 12, }, changed this in a txt file and re-saved it as the original
(… and so on…)
Comment by Jens | September 18, 2011
#
Allright here is my conclusion: (1) the hardware is overwhelmed, but (2) it can be made “well enough” to at least change the SM5100B baud rate to 9600. Here are the parameters that worked the best for my NewSoftSerial library:
#if F_CPU == 16000000
static const DELAY_TABLE PROGMEM table[] =
{
// baud rxcenter rxintra rxstop tx
{ 115200, 1, 16, 15, 14, }, Tried this too
… and so on. In particular the rxcenter, rxintra, and rxstop parameters have no wiggle room. Note that rxintra and rxstop have to be set different … Depending on the Arduino Uno readout baud rate (9600 versus 115200) there is a two-character artifact at different places of the long +SIND: reply. That indicatees that the NewSoftSerial library works in principle but that the hardware (the Arduino) just can’t process the 115200 SM5100B readout baud rate.
The command to send to the GSM chip to reset its (default) baud rate is:
AT+IPR=9600 I think I might be screwing this up, I have not been able to confirm my command was sent when send it in the serial monitor
If it works as documented, the setting is persistent. We’ll see.
Hope this helps … Thanks, Jens
Comment by Jens | September 18, 2011
This did not seem to work, so I looked at http://www.sparkfun.com/products/9607 and found this
33Warlord | March 20, 2010 at 4:32 PMComment Rating1
Heads-up to anyone who has problems communicating with the SM5100B... My shield arrived with the SM5100B configured for a baud rate of 115200 NOT the 9600 specified.
33Warlord | March 20, 2010 at 7:05 PMComment Rating1
Is anyone else having problems with this shield?
The Arduino pass-thru sketch does not work, and I cannot upload from Arduino with the shield in place. (Even though the jumper to select rx/tx are in their factory setting at pins 2/3)
I only works if I connect an FT232RL breakout TX/RX to directly to pins 2/3 AND set the baud to 115200 as mentioned above. I usde a different USB/TTL break out and I was able to see the SIND commands
33Warlord | March 21, 2010 at 8:21 AMComment Rating1
Fixed! In case anyone else has problems getting their shield working.
Problem: The default baud rate (for the SM5100) was set at 115200; this is also the default as stated on page 25 of the AT command document. Not sure if this 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. Using pins 2/3 requires using Softserial.
Softserial CAN NOT receive at 115200 baud. Therefore the Arduino does not see any serial traffic from the 5100.
Fix: Connect to pins 2/3 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.) for some reason it does not give me the OK when I do this
SparkFun Employee zagGrad | March 22, 2010 at 7:55 AMComment Rating1
Hi,
The modules we send are supposed to be reconfigured to 9600 baud here at SparkFun during their test procedure. I'm sorry that you had so much trouble getting yours up and running; hopefully this isn't a widespread issue.
FYI, the 5100 is connected to soft serial pins so that the Arduino can be reprogrammed without removing the cellular module. Bus contention is introduced when the sm5100 comm. pins are connected to the hardware serial lines of the Arduino.
I am sure that once I can get past this little hurdle I will be able to move on with some of the projects in the tutorial.