Pages: [1]   Go Down
Author Topic: GPRS Shield V1.4 with Arduino UNO AT&T USA SIM / Voice Call Issues  (Read 3814 times)
0 Members and 1 Guest are viewing this topic.
Seattle, WA
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Goal: Receive voice calls on GPRS shield.

Configuration:
MAC OSX
Arduino UNO
GPRS Shield V1.4 with SIM900 - Reference: http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0
SIM Card: AT&T USA -provisioned for voice only service, confirmed as active on mobile handset. AT&T customer care claims that the SIM is unlocked (not confident about this statement).

Propery configured Audrino UNO and GPRS Shield with separate power supplies.
Loaded example code from Arduino libary: GMS Receive Voice Call

Manually powered on GPRS Shield, confirmed red power LED and three second flashing "Net Light"

Issue: Every time I run the Serial monitor I only get the response "Receive Voice Call" however no other response is ever received. When calling the shield no answer is achieved.

Confirmed a working baud rate as when changed you can't read "Received Voice Call". Tried all the new line / carriage return options in the monitor.

I called AT&T tech support and they confirmed that they see the IMEI of my SIM900 on their network.

I tried loading and running the "Make a voice call" but never get the oppertunity to type a phone number into serial monitor.

 Any thought or experience would be greatly appreciated!!

Is there any issues trying to get voice calls to pass throu the shield when text and data have been blocked on the SIM account? This same SIM card places and receives voice calls just fine in a mobile phone so I think it's provisioned properly for voice only calls.

I also noticed after loading a program as described above to the UNO and fire up the serial monitor that when I type "AT" I get no response in the monitor.

Another possible reason for my issue: I'm using the The GSM library "GSM.h" included with Arduino IDE 1.0.5. All accounts show that this library file supports the Arduino GSM Shield manufactured in corporation with telefonica digital and appears to have a Quectel GSM chipset. 

1. Can someone confirm if the "GSM.h" library file will support the GPRS Shield V1.4 with the SIM900 chipset?!

2. If there is a deferent required library file for the GPRS SIM900 chipset please advise where to obtain this file!
   

jmorgan007@iCloud.com
« Last Edit: June 07, 2013, 11:59:13 pm by jmorgan007 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have got same problem, I guess it has something to do with serial
I dont know how to extract data from serial and use it in your variables.
You have to monitor the state and then get somehow the state value to your variable

Monitoring the state

#include <SoftwareSerial.h>

SoftwareSerial mySerial(7, smiley-cool;
 
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);               // the GPRS baud rate   
  delay(2000);
}
 
void loop() {

  mySerial.println("ATV0");
  delay(100);
  ShowSerialData();
}

void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read());
}

Logged

Seattle, WA
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

After additional fishing online I accomplished my goal with the following code. I believe at first I was trying to use an incompatible library file for a different GSM chip set! The Seeed Studio GPRS Shield with SIM900 purchased from Radio Shack is I'm using.

Wind Talker is a very old basic wind reporting weather station that was originally setup for landline phones or ham radio PTT trigger. However our system is on top of a mountain so we are utilizing solar and a cell phone to answer calls into the system that provides a spoken announcement of the current wind conditions. 

For nine yeas I use a Nextel rugged phone with auto answer set to vibrate and soldered control lines from the vibrator line to trigger the Wind Talker announcements. That was fine until Sprint took over and dumped the Nextel network forcing new a new handset. I started looking for an easier cellular interface and realized Arduino as a super easy solution!


Quote
 //WindTalker Interface - Arduino will set GPRS shield to auto answer voice calls and trigger wind report once per call.
 // Jeff Morgan 06/08/2013 Lic: Public Domain

 //Serial Relay - Arduino will patch a
 //serial link between the computer and the GPRS Shield
 //at 19200 bps 8-N-1
 //Computer is connected to Hardware UART
 //GPRS Shield is connected to the Software UART

 
 #include <SoftwareSerial.h>

 char inchar;                      // Will hold incoming character from the Serial Port
 SoftwareSerial GPRS(7,8);
 // unsigned char buffer[64];         // buffer array for data receive over serial port
 int count=0;                      // counter for buffer array
 int WTA = 10;                     // Pin 10 = Wind Talker Announcement Trigger
 int numring=0;                   
 int comring=2;


 void setup()
 {
   GPRS.begin(19200);              // the GPRS baud rate   
   Serial.begin(19200);            // the Serial port of Arduino baud rate.

   pinMode(9, OUTPUT);             // Power up SIM900 GPRS
   digitalWrite(9,LOW);
   delay(1000);
   digitalWrite(9,HIGH);
   delay(2000);
   digitalWrite(9,LOW);
   delay(1000);

   pinMode(WTA, OUTPUT);          // Defines pin 10 as a +5V Digital Output
   digitalWrite(WTA, LOW);        //Sets WT trigger back low
   delay(1000);

   GPRS.println("ATS0=2");        // Set auto ansewer to 2 rings
 }  

 void TriggerWTA()
 {
 // pinMode(WTA, OUTPUT);        // Defines pin 10 as a +5V Digital Output
 digitalWrite(WTA, HIGH);        // Sets WT trigger HIGH
 delay(500);
 digitalWrite(WTA, LOW);         //Sets WT trigger back low
 }

 
 void loop()
 {
  if(GPRS.available() >0)          //If a character comes in from the cellular module...
  {
  inchar=GPRS.read();
  if (inchar=='R')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='I')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='N')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='G')
  {
  delay(10);
 
  numring++;                // So the phone (our GSM shield) has 'rung' once, i.e. if it were a real phone it would have sounded 'ring-ring'
  if (numring==comring)
  {
  numring=0; // reset ring counter
  TriggerWTA();
  }
  }
  }
  }
  } 
  }
 }






   
Logged

Pages: [1]   Go Up
Jump to: