Go Down

Topic: Arduino UNO & SIM900 -AT communicaton problem (Read 13 times) previous topic - next topic

jgriguol


Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



I would look at the speed serial monitor of arduino ide.
que tambien este en 19200.

Gallentro

Thanks, I checked that. It is set to  19200. The thing is, when I change the setting the strange characters change to other strange characters or disappear at all, but are never any readable text.


AWOL

Quote
are never any readable text.
...usually implies either a speed mismatch, or a line inversion.

However
Quote
but it looked like this: Ý Ý Ý Ý Ý Ý  .
looks more like the -1 that a serial read rturns if there is no data to read.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Gallentro


Quote
are never any readable text.
...usually implies either a speed mismatch, or a line inversion.



I checked these speeds and matched them to the speed of the Efcom Pro (what it says in the product description... is there any way to check it?):

- serial port (in Windows hardware manager)
- serial monitor

Do I need to check in other places as well?


Quote
looks more like the -1 that a serial read rturns if there is no data to read.

The thing is, it sends this only when the chip is powered on, then it stops. So I interpret it as the "hello, i'm ready signal" of the chip...


Gallentro

The problem persists, anyone got an idea?

I read somewhere else, that a inversion of the high and low might be a problem --> a pullup resistor might do the trick. I haven't had time so far to check this out, does anyone think, that this might do the trick?

rupertrussell

I am using this shield with a Arduino UNO and I have managed to get it to work using the code see below: I am running Arduino 1.0.4

I have the jumpers set to the default position: D3 is set to S_RX and D2 is set to S_TX





Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


I am applying 6 V DC to the UNO as well as USB from the PC sending the serial commands.

I am having problems working out how to send a SMS using the Hardware Serial settings. What I want to be able to do is send an SMS message directly from the UNO code.  I can't work out the jumper settings.  for the GSM sheild.


jgalaxy

Hi Gallentro.  I'm wondering if you ever resolved your issue.  I have an Uno as well with the same EFreaks GSM/GPRS Shield.  I am also getting the  Ý Ý Ý Ý Ý Ý

The only difference is that my Uno and EFreaks SIM900 used to work. 

Then one day I started to notice issues.  Some of the AT commands would not work or would behave erratic.  Working one moment then not working the next.  Portions of the GSM libraries stopped working.  So I built functions from scratch.  ANd then those functions stopped working.  I though maybe I fried the chip, so I purchased new GSM Shield, and then a different one and then another Uno and a different manufacturers GSM Shield, and then different power supplies... so long story short ... 3 Uno's and 3 different GSM shields later, same rubbish  when I try to communicate over serial to the GSM shield Ý Ý Ý Ý Ý Ý

I even moved from 1.0.4 Linux to Windows platform, to 1.0.5.

I am at wits end.  Anyone have any thoughts?


Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?

Deraldo

Hi.
My problem is a little bit different.
First. the EFCOM GPRS Shield looks like Works. the net led blinks every 3 seconds.
Using the SSCOM3.2 I tried AT commands. In the beginning no one response. neither echo.
Now, I can receive an OK from single AT command. ATZ Works too. AT+IPR=19200 Works fine.
but AT+CMGF=1 gives me an error.
ATDT<number> gives me NO DIALTONE.
any ideas?

Andr3s


Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



hello, I have the same problem. You found the solution to this problem? sorry for my English I speak Spanish.

jgalaxy

I havent heard from the original poster.
I'm still trying with no luck. 
I have tried uninstalling and removing the UNO drivers and re-installing.
I have tried different baud rates from 300 to 115200 in the serial monitor. 
I have tried going to Device Manager and setting the baud, parity and flow control there and then going through all the baud rates using serial monitor.
No luck.



Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



hello, I have the same problem. You found the solution to this problem? sorry for my English I speak Spanish.

jgalaxy

I finally figured out the issue.  Somehow the factory setting of 19200 was reset to auto-bauding.
Autobauding requires that the first command issued be AT or At.  You can then reset the baud to using AT+ITR=<rate>.



From section 2.2.41.1 of the SIM900 v1.0.3.pdf

2.2.41.1 Auto-bauding
Synchronization between DTE and DCE ensure that DTE and DCE are correctly synchronized and
the baud rate used by the DTE is detected by the DCE (= ME). To allow the baud rate to be
synchronized, simply issue an "AT" string. This is necessary when you start up the module while
auto-bauding is enabled. It is recommended to wait 3 to 5 seconds before sending the first AT
character. Otherwise undefined characters might be returned.
If you want to use auto-bauding and auto-answer at the same time, you can easily enable the
DTE-DCE synchronization, when you activate auto-bauding first and then configure the
auto-answer mode.
Restrictions on auto-bauding operation
The serial interface has to be operated at 8 data bits, no parity and 1 stop bit (factory
setting).
Only the strings "AT" or "At" (not "aT" or "at") can be detected when auto-bauding is
enabled.
AT+IPR=0 setting to auto-bauding will take effect after module resets. If user wants to
change DTE baud rate during module is running, i.e. from 57600 to 4800, DTR shall be
used to urge auto-bauding progress. DTR shall be pulled up to invalid state at least 2
seconds by DTE and then pulled down to valid state. The step will urge auto-bauding
progress and DCE will synchronize its baud rate after it receives data from the serial port.
Unsolicited Result Codes that may be issued before the ME detects the new baud rate (by
receiving the first AT Command string) will be sent at the previously detected baud rate.
The Unsolicited Result Codes "RDY" and so on are not indicated when you start up the ME
while auto-bauding is enabled.
It is not recommended to switch to auto-bauding from a baud rate that cannot be detected
by the auto-bauding mechanism (e.g. 300 baud). Responses to +IPR=0 and any commands
on the same line might be corrupted.
Auto-bauding and baud rate after restart
The most recently detected baud rate can not be stored when module is powered down.


I havent heard from the original poster.
I'm still trying with no luck. 
I have tried uninstalling and removing the UNO drivers and re-installing.
I have tried different baud rates from 300 to 115200 in the serial monitor. 
I have tried going to Device Manager and setting the baud, parity and flow control there and then going through all the baud rates using serial monitor.
No luck.



Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



hello, I have the same problem. You found the solution to this problem? sorry for my English I speak Spanish.


Andr3s


Hello jgalaxy I could communicate with arduino sim900. The problem was that these Ý Ý Ý Ý Ý Ý coming out in the beginning is that this in Chinese, but that means it's working. I used the sscom32 to send commands and functions, write an "at" and you respond OK. and it then call and send mensajs achieved. Any questions you have write me;) an mp or email andres.olivares @ outlook.com. Greetings.



I havent heard from the original poster.
I'm still trying with no luck. 
I have tried uninstalling and removing the UNO drivers and re-installing.
I have tried different baud rates from 300 to 115200 in the serial monitor. 
I have tried going to Device Manager and setting the baud, parity and flow control there and then going through all the baud rates using serial monitor.
No luck.



Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



hello, I have the same problem. You found the solution to this problem? sorry for my English I speak Spanish.


jgalaxy

The Ý Ý Ý Ý Ý Ý is due to a communication error related to auto-bauding.  Nothing other than typing "AT" or "At" will result in synching up with the Shield.  I am glad yours works.  For those having the issue described above need only follow as defined.



Hello jgalaxy I could communicate with arduino sim900. The problem was that these Ý Ý Ý Ý Ý Ý coming out in the beginning is that this in Chinese, but that means it's working. I used the sscom32 to send commands and functions, write an "at" and you respond OK. and it then call and send mensajs achieved. Any questions you have write me;) an mp or email andres.olivares @ outlook.com. Greetings.



I havent heard from the original poster.
I'm still trying with no luck. 
I have tried uninstalling and removing the UNO drivers and re-installing.
I have tried different baud rates from 300 to 115200 in the serial monitor. 
I have tried going to Device Manager and setting the baud, parity and flow control there and then going through all the baud rates using serial monitor.
No luck.



Hi there

I do actually have a very similar problem, that I haven't found the solution yet.
I'm trying to control a SIM900 mounted on a Efcom Pro (http://www.elecfreaks.com/wiki/index.php?title=EFCom_Pro_GPRS/GSM_Module) with my UNO. I sticked to the tutorial on said wiki and ended up with the following code (arduino 1.0.3):
Code: [Select]


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);                 // the GPRS baud rate   
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read()); 

}


Than hooked up the serial connection from the Efcom Pro to pins 2 and 3 and started my serial monitor and turned on the Efcom Pro. As expected the chip sent out some data upon turning on, but it looked like this: Ý Ý Ý Ý Ý Ý  .

Trying to communicate with it through AT commands did nothing at all, no reply. I see from the blinking on the Efcom Pro, that it has registered with the network, but it's not reachable through the serial connection.

Any suggestions?



hello, I have the same problem. You found the solution to this problem? sorry for my English I speak Spanish.



Jeroth

Hi I have the same problem with  Ý Ý Ý Ý on reset but can't communicate or connect even after "AT" is sent.  How did you solve the problem?

RobvdVeer

#29
Dec 04, 2013, 09:22 am Last Edit: Dec 15, 2013, 04:48 pm by RobvdVeer Reason: 1

Hi I have the same problem with  Ý Ý Ý Ý on reset but can't communicate or connect even after "AT" is sent.  How did you solve the problem?

I just found this thread lucky me, i have exactly the same issues.

EDIT: I got it to work by using a teensy2.0 as a 'bridge' to communicate with the module. Using a USB2Serial to the phone module resulted in nothing.
Rob
Follow my progress on http://simplicate.weebly.com

Go Up