Go Down

Topic: GSM Shield V2 Audio jack pin-outs & Audio Echo cancelation. (Read 532 times) previous topic - next topic

Douglas-Bair

There are several issues I have asked about without responses;
1. In the schematic "Arduino GSM Shield V2 Schematic.PDF"; Where is the open gap in the circuit labeled 'SJ1'?

2. Also the circuit that shows the jack for a 4 position plug,
what are the electrical pin positions compared to the physical positions?  The Pin-Out.
I don't want to assume anything.

I found this in a forum on the '.org' site, but couldn't find a response or a picture that was referenced.
"Re: GSM Shield 2 Audio output and Arduino sound output to one speaker
Postby fabioc ยป 14 Jan 2016, 11:18

Hi WimG83,
I looked the [http://download.arduino.org/products/GSMSHIELD/Arduino-GSM-Shield2-Rev3.2-SCH.pdf|Shield Schematic].
It seems that 3-4 are output audio signal , 2 GND and 1 MIC, following the numeration of your jack picture.
I attach a picture that shows you the connections but I advise to verify them.
Regards.
FC"

3. I have a microphone working in a sketch where a call is placed to my cell.  If any noise from my cell is heard by its mic, it is sent to the Quectel M10, then echoed back to my cell.  I have worked with Quectel on trying to cancel the echo using AT+QECHO(and channel, level...) without any result.
One rep told me that the command has been abandonded.

I would appreciate any help such as a working sketch like a telephone, the location of 'SJ1', and the physical to electrical layout of the audio jack.

I have been successful with the microphone setup.  I use the mic to listen when the alarm call me.
Here is the code that works;
void conNetwork()
  {       // topic=163449.0
  unsigned long myTimeout = 30000; // YOUR LIMIT IN MILLISECONDS. Was 30 sec.
  boolean notConnected = true;
  unsigned long timeConnect = millis();
 
  Serial.println("Trying to connect...");
 
//  gsmAccess.begin("",true,false); //Use async mode and requires that GSM debug mode
    gsmAccess.begin("",true); //Use async mode and requires that GSM debug mode
                                  // has been set on GSM object creation.
  while( notConnected && ( ( millis()-timeConnect ) < myTimeout) )
    {
    int result = 0;
    result = gsmAccess.ready();
    //Call this if debugging is on. Otherwise we will never reach GSM_READY...?!?
    //if( debugFlag )
    //  {
      Serial.print("Return code from 'gsmAccess.ready': ");
      Serial.println( result ); // Print result code.
    //  }
    timeLoop(1000); //might not call ready too often.??? See GSM3ShieldV1AccessProvider.cpp,
                // GSM3ShieldV1AccessProvider::begin
    result = gsmAccess.getStatus();

    if (result == GSM_READY)
      {
      Serial.println( "GSM Connected!");
      notConnected = false; // Therefore true/connected.
      }
      else
      {
      Serial.print(F("GSM status: "));
      Serial.println( result );
      }     
    }
  if(notConnected)
    {
    Serial.println("Error in connection");
    char codeMsg[]="RegF";
    recordLog(codeMsg);
    }
  else
    {
    Serial.println("Connected to GSM network");
    }
  }
/////////////////////////////////////////////////////////////////////// End of conNetwork

void micSetup()
  {
  // 1 Information response: Long result code format: <CR><LF><verbose code><CR><LF>
  Serial.println(modemAccess.writeModemCommand("ATE1",5));
  // 1 Information response: Long result code format: <CR><LF><verbose code><CR><LF>
  Serial.println(modemAccess.writeModemCommand("ATV1",5));
 
  // AT+QAUDCH Swap the Audio Channels, set the active channel to 1(2nd ch).
  Serial.println(modemAccess.writeModemCommand("AT+QAUDCH=1",5));

  // AT+QMIC Change the Microphone Gain Level,<channel>,<gainlevel>
  Serial.println(modemAccess.writeModemCommand("AT+QMIC=1,4",5));
  // AT&W  = Store Current Parameter to User Defined Profile
  Serial.println(modemAccess.writeModemCommand("AT&W",5));

  // AT+QAPS is used to modify echo algorithm parameters of all three
  // software audio channels. The value 32513 = Disable.
  Serial.println(modemAccess.writeModemCommand(
  "AT+QAPS=1,4,1,\"254.224.32513.31.57351.24607.400.132.80.4325.99.0.16392.0.0.0\"",5));
 
  // AT+CLVL is used to modify the analog gain of receiver.
  // It can increase or reduce loudness of downlink speech.
  Serial.println(modemAccess.writeModemCommand("AT+CLVL=1",5)); //Key to 'No Echo'.
  // AT&W  = Store Current Parameter to User Defined Profile
  Serial.println(modemAccess.writeModemCommand("AT&W",5));
  }
In Setup, I call conNetwork, then micSetup.
In Loop, every 18 minutes, I check to see if the network registration is still good.  If not, the call
the subs again.
Note the microphone is an amplified unit.

dermiste

Hi there,

It seems like I am having the exact problems. Did you have any luck trying to solve that?
I also MPed you

Go Up