Issues with SM5100B Eval Board + Arduino

Having some problems, and I hope someone can help. Using my computer and a USB connection, I have changed the baud rate of the SM5100B to 9600 and verified it’s working by sending a few sms messages. I then cleared the jumpers on the evaluation board and soldered wires to TXD0 and RXD0. I hooked the wires up to my arduino (uno) on pins 2 & 3 and, using the sample code from SFE, I’m getting gibberish from the board. It acts like the baud rate is set incorrectly, but I have hooked it up to a SM5100B Cellular Shield, and it works perfectly. Just to double check, I re-soldered the jumpers on the evaluation board, hooked it back up to my computer, and confirmed that it is indeed working correctly over USB. After clearing the jumpers (again), it’s still not working. Any ideas?

Here’s the output from the serial connection:

Starting SM5100B Communication…

ÿ’¤LûÿÿkHªíþÿÿÓQHÿý$¥Lûÿÿÿÿß%9ÿÿÿÿÿ÷ÿÿÿÿÿ©iMúÿÿÿÑ5Rÿÿ2÷ÿÿÿÿú÷¿ÿÿÿÿÿÿÿÿÿŠŠþ+ûýÿÿÿOR:îÿÿï+ÿ×ÿ¥ª+ÿûÿÿ=ÿ

ÿÿÿÿÿÿÿÿ

And here’s the code:

/* SparkFun Cellular Shield - Pass-Through Sample Sketch
SparkFun Electronics Written by Ryan Owens CC by v3.0 3/8/10
Thanks to Ryan Owens and Sparkfun for sketch */
#include <SoftwareSerial.h>  //Include the SoftwareSerial library to send serial commands to the cellular module.
#include <string.h>         //Used for string manipulations
char incoming_char=0;      //Will hold the incoming character from the Serial Port.
SoftwareSerial cell(2,3);  //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.
void setup()
{
  //Initialize serial ports for communication.
  Serial.begin(9600);
  cell.begin(9600);
  Serial.println("Starting SM5100B Communication...");
}
void loop()
{
//If a character comes in from the cellular module...
  if(cell.available() >0)
  {
  incoming_char=cell.read();    //Get the character from the cellular serial port.
  Serial.print(incoming_char);  //Print the incoming character to the terminal.
  }
  //If a character is coming from the terminal to the Arduino...
  if(Serial.available() >0)
  {
  incoming_char=Serial.read();  //Get the character coming from the terminal
  //Serial.print(incoming_char);
  cell.print(incoming_char);    //Send the character to the cellular module.
  }
}

There’s a few things to check. First, keep in mind the note posted on the product page for the Eval board:

“Note: If you don’t want to use your computer, or the USB to communicate with the SM5100’s UART, make sure you clear the RX, DTR, RTS, TX, and CTS jumpers.”

Are you clearing all of the jumpers, or just TX and RX? Another thing to check would be whether you have a common ground between your Arduino board and the eval board-without a common ground, you can get some funky serial communication issues.

While I don’t think this is directly related to your issue, we have also seen issues with the serial terminal in Arduino. You may want to try monitoring the output through a different program such as CoolTerm or TeraTerm.