2 Replies Latest reply on Sep 21, 2016 4:18 PM by Intel Corporation

    How to connect Intel Galileo to Internet using Quactel GSM module?

    ivanivanovv

      Hi, I'm trying to connect my Intel Galileo Gen 2 to 3G internet using GSM module which I made using Quactel GSM M72 module.

      The communication between the Galileo and the GSM module is via UART, especially Serial2.

       

      I'm using a Python script to send some data to a remote server, thus I need a cellular 3G connection.

       

      The module is working and I know this because I'm able to send SMS via AT commands which I'm typing in the Serial Monitor of the Arduino IDE.
      I think I made a connection to the internet as well because I can ping www.google.com. But there isn't any connection on the Galileo itself.

       

      I checked the Intel Galileo Shield test Report and I found an article in section 12 where they use the arduino GSM shield to connect to internet and send SMSs etc. The shield has almost the same GSM module as mine - Quactel GSM M10 module. (mine is M72). There I found an arduino script wich makes a GPRS connection. Because I don't really need to send or receive any SMSs I change the sketch.

       

      I used the following commands to connect to 3G internet:

      void setup()

      {

      Serial2.begin(9600);

      Serial.begin(9600); // the GPRS baud rate

      delay(1000);

      GPRS();

      }

      void loop()

      {

      if (Serial2.available()) {

          Serial.write(Serial2.read());

        }

        if (Serial.available()) {

          Serial2.write(Serial.read());

        }

      }

      void ShowSerialData()

      {

      while(Serial2.available()!=0)

      Serial.write(Serial2.read());

      }

      void GPRS()

      {

      Serial2.println("AT+CPIN?"); // Is SIM ready to use?

      delay(1000);

      ShowSerialData();

      Serial2.println("AT+CGREG?"); // Is device registered?

      delay(1000);

      ShowSerialData();

      Serial2.println("AT+COPS?"); // Does SIM info match network?

      delay(1000);

      ShowSerialData();

       

      Serial.println("Check signal quality");

      Serial2.println("AT+CSQ"); // Check signal quality

      delay(1000);

      ShowSerialData();

      Serial2.println("AT+cgatt=1"); // GPRS attach

      delay(1000);

      ShowSerialData();

       

      // define a PDP context with IP connection, ID is 1

      Serial2.println("AT+CGDCONT=2,\"IP\",\"telenorbg\"");

      delay(1000);

      ShowSerialData();

      // list PDP contexts that are defined

      Serial2.println("at+cgdcont?");

        delay(3000);

      ShowSerialData();

       

      // setup the session using the appropriate PDP context

      Serial2.println("AT+CGACT=1,2");

      delay(1000);

      ShowSerialData();

      Serial.println("session is setup delay 5 seconds");

      delay(5000);

       

      // // deactivate the PDP context

      // Serial2.println("AT+CGACT=0,1");

      // delay(1000);

      // ShowSerialData();

      // // detach from GPRS newtork

      // Serial2.println("AT+CGATT=0");

      // delay(1000);

      // ShowSerialData();

      }

       

      The response from all the commands is OK. I ping successfully www.google.com

      And there isn't any new data in the server when I check after it is meant to have any connection to the internet.

       

      Any solutions to the problem? How can I use my GSM M72 module in order to provide Internet connection to my Intel Galileo Gen 2?