FEZ Panda II with Seeed GPRS / GSM shield problem

I have a panda II board and an Seeed GPRS shield (http://www.seeedstudio.com/wiki/index.php?title=GPRS_Shield_v0.9b) The problem is that I cannot send a SMS, I use the following code and get no errors. Nothing happen. Please help. ??? ???

On the GPRS shield I use the jumpers in Xduino position so I can use the COM1 port of the PANDA.

   static SerialPort GSM = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);

         
        public static void Main()
        {

            Debug.Print("wait 30 sec startup gsm");
            for (int i = 0; i < 30; i++)
            {
                Thread.Sleep(1000);
                Debug.Print(i.ToString());
            }

            sendSMS("testSMS");
                    
        }
        static string sendCommand2GSM(string command, int delay)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(command);
            GSM.Write(bytes, 0, bytes.Length);
            Thread.Sleep(delay);
            byte[] inData = new byte[GSM.BytesToRead];
            GSM.Read(inData, 0, GSM.BytesToRead);
            string str1 = new string(Encoding.UTF8.GetChars(inData));
            return str1;
        }


        static void sendSMS(string message2Send)
        {
            try
            {
                GSM.Handshake = Handshake.None;
                GSM.Open();
                Debug.Print("gsm conn open");
                string GSMResponse = "";
                string GSMCommand = "";
                GSMCommand = "AT+CMGF=1";
                GSMResponse = sendCommand2GSM(GSMCommand + "\n\r", 1000);
                Debug.Print("send start command");
                GSMCommand = "AT+CMGS=\"0681480290\"";
                GSMResponse = sendCommand2GSM(GSMCommand + "\n\r", 1000);
                Debug.Print("send sms");
                GSMResponse = sendCommand2GSM(message2Send + (char)26, 15000);
                Debug.Print("done");
            }
            finally
            {
                GSM.Close();
            }
        }
 

Start here:

http://www.ghielectronics.com/downloads/NETMF/Library%20Documentation/html/4e8f146a-90e4-eda5-e130-170ae041562c.htm

Search the forum,we have discussions about GPRS as well.

@ Achitect: The PPP library is not supported on FEZ Panda II :). Also PPP is used to open a data connection, it is not good for SMS.

@ rbruinsma: I suggest that you create a UART bridge between COM1 and another COM port on PAnda. And connect the other COM port to the PC. This way you can manually talk to the shield through any terminal application like tera term.

To connect the COM to the PC you will need a USB-to-Serial e block, if you have the FEZ Connect shield or the e-block shield:
http://www.ghielectronics.com/catalog/product/266

Yeah but this module is a serial bridge. No need for PPP.
Unless I am missing something.

I got the GPRS module up and running with the Panda! There are jumpers on the board which sets the output COM port to D0 and D1 on the PANDA. So I can use COM1 in my code and that worked for me. Thanks for your help.

Hi,

Could you provide a little more info as to how you got this to work and what jumpers you changed - code would be nice :slight_smile:

Hi,

i have GPS/GSM tracking solution that works based on Seeed GPRS/GSM shield and FEZ Panda II, could you please post whole communication with module ?

Jan

Hi All,

Worked it out, use the driver here - http://netduino2seedgsm.codeplex.com/SourceControl/list/changesets
Obviously change it to use the FEZ resources.

The code is a bit buggy, so make the following changes;

public void placeCall(string msisdn)
        {

            PrintLine("ATD + " + msisdn + ";");
            Thread.Sleep(100);
            Debug.Print("Calling.....");
        }

Also, I commented out all the code in the private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) as I was getting an error i did not feel like debugging.

On the hardware side of things, the trick is the following;

  • Set the GPRS to software serial mode using the jumpers.
  • Place a bridge between D0 and D7
  • Place another bridge between D1 - D8
  • DO NOT use pins D7 and D8 for anything else.

Make calls and send sms’s :slight_smile:

Another thing to point out is that it requires quite a bit of current, so if you are struggling to get a signal (green flashing light on GPRS board) I would suggest hooking up an external power supply - I used a external HDD cable with the dual USB connectors to sort my problem out as I am using the FEZ Touch at the same time.

Hope my explanation is clear enough, if not please shout.

I’ll post proper code once I work out all the bugs, but it should be enough to get everybody going.