Closed mpena2099 closed 10 years ago
The powerup procedure is the same of the poweroff. The powerup is already done within the begin() function. If you powerup the module manually before the begin(), it will power off the module.
2014-11-14 17:29 GMT+01:00 Maurício Pena notifications@github.com:
Hi!
I'm using the "IComSat v1.1 -SIM900 GSM/GPRS shield" and, as you can see on the datasheet ( ftp://imall.iteadstudio.com/IM120417009_IComSat/DS_IM120417009_IComSat.pdf, page 6), "the pin 9 of Arduino interface is connecting to PWRKEY, and a high pulse with 400us wide can power on/off it."
So, to my sim900 module works I have to put this in the code, before calling "gsm.begin":
define SIM900_POWER 9
void setup() { //Serial connection. Serial.begin(9600); Serial.println("GSM Shield testing.");
// Power on SIM900 module pinMode(SIM900_POWER, OUTPUT); digitalWrite(SIM900_POWER, HIGH); delay(500); digitalWrite(SIM900_POWER, LOW); delay(5000); // end
//Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(2400)) { Serial.println("\nstatus=READY"); started = true; } else Serial.println("\nstatus=IDLE"); ... ... ...
Without that lines the module responds as follows:
............................................ GSM Shield testing. DB:NO RESP DB:NO RESP DB:NO RESP Trying to force the baud-rate to 9600
1200 2400 4800 9600 19200 38400 57600 115200 ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
status=IDLE ............................................
The problem is not why my code is working with these lines. The problem is: why YOUR CODE is working without that? :?
Note: in GSM.h there are two lines that I think don't do nothing:
43 // pins definition 44 #define GSM_ON 8 // connect GSM Module turn ON to pin 77 45 #define GSM_RESET 9 // connect GSM Module RESET to pin 35
Thanks! Mauricio
— Reply to this email directly or view it on GitHub https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield/issues/11.
Ok @MarcoMartines but the code only works here with these lines (powerup procedure) before begin():
// Power on SIM900 module
pinMode(SIM900_POWER, OUTPUT);
digitalWrite(SIM900_POWER, HIGH);
delay(500);
digitalWrite(SIM900_POWER, LOW);
delay(5000);
// end
Without it... DB:NO RESP DB:NO RESP DB:NO RESP
:-/
@mpena2099 For icomsat 1.1 to work just change pin definitions in GSM.h as shown below
#define GSM_ON 9
#define GSM_RESET 8
so it will match pins connections on the board. No need to run additional code:smiley:
Thanks @Xuob and... that is embarrassing. Now I see that I was not using the latest version of the library... :flushed:
And... no change was necessary after using the last commit of the library. So the default:
#define GSM_ON 8
#define GSM_RESET 9
Works!
Thanks a lot!
Thanks so much!! I spent one day long trying figure out what was not ok! Thank you ! Its working now! I just had to change GSM.h to :
Dear Sir,
i have no shield and i have one sim900 module with rx and tx pins only.i have connected my sim900 module tx, rx pins only to arduino mega2560. now i have connected the sim900 module to serial port 1 of mega and i have changed all the pin as mentioned in your instructions file. but always i get only DB: NO RESP . please help me how to connect the sim900 to mega2560
Hi @mpena2099 , can you share the library? I have the same problem... Thanks.
SMSGSM sms;
int numdata; boolean started=false; char smsbuffer[160]; char n[20];
char sms_position; char phone_number[20]; char sms_text[100]; int i;
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
if (gsm.begin(2400)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
if(started){ { if (sms.SendSMS("+6282283500114", "Arduino SMS")) { Serial.println("\nSMS sent OK"); } else { Serial.println("\nError sending SMS."); }
}}};
void loop() { if(started) { if(gsm.readSMS(smsbuffer, 160, n, 20)) { Serial.println(n); Serial.println(smsbuffer); } delay(500); } }
//// help me its sim900A , im not work GSM shield testing trying to force the baud-rate to 9600
ERROR= SIM900 doesn't answer. Chek power and serial pins in GSM.cpp
Status=Idle
I have this error:
GSM Texting...Trying to force the baud-rate to 9600
1200 2400 4800 9600 19200 38400 57600 115200 ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
status=IDLE
and all the code and conections are ok
i have ICOMSAT 1.1 and i changed the code in GSM.h as u mentioned above.
and now my irs turn off automatically and meanwhile the same error has indicating
ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
Please Help me to sort this.
If you are using Arduino Mega 2560, follow these steps. [1] How to switch between Arduino Mega and Arduino Uno?
1)
Open GSM.h and comment-decomment the appropriate lines like below
e.g. for Arduino Mega
//#define UNO
#define MEGA
2)
If you use Arduino Uno comment the line in HWSerial.h or decomment if
you are using Arduino Mega
e.g. for Arduino Mega
#define MEGA
3)
Save and compile
[2] How to switch between the old shield (that uses 4 and 5 pins for SoftwareSerial and the new (that used 2 and 3 pins)?
1)
Open GSM.cpp and comment-decomment the appropriate lines like below
e.g. for the new one
//#define _GSM_TXPIN_ 4
//#define _GSM_RXPIN_ 5
#define _GSM_TXPIN_ 2
#define _GSM_RXPIN_ 3
2)
Save and compile
Connect the RX pin of your sim module to pin 18 of your arduino mega and the TX pin to pin 19 of the arduino mega. This is because the library uses Hardware serial for mega. Connect VIO pin of your sim module to IOREF pin of your arduino mega and the connect the GND of your sim module to GND of your arduino mega. That's all.
Could you please give information how we can do it with micro , nano version
I have an issue where the library works with the Mega using the sendsms() method. I can see all the debug commands which work and the sms is received.
So Ive tried to use the nano with the library and directly with AT commands, this is what Ive found:
Library But when I try to use the nano, I cant upload the sketch with references to Serial1 in HWSerial, so I changed them all to Serial instead. I can see the logs again and I noticed that CPMS returns error whenever it doesnt work on the nano. When it works in the Mega, CPMS returns OK in the logs.
AT Commands I tried sending the sms with CMGS but the sms is never received. I started looking at the library and noticed that Im not using the pulse method, forceON(). I then googled it and found this thread and others where it seems to state that pulsing is required. The problem is I dont have the shield, I have a SIM900 breakout and thus cant really access the powerkey pin.
But I have made it work before. I dont know how, but I think switching to the mega/library sketch must have done something and i managed to receive a couple of sms from the nano/at sketch. That only worked for that session and when I tried to repeat it it stopped working.
Ive' posted about the issue here:http://forum.arduino.cc/index.php?topic=428200.msg2952179#msg2952179
Hi!
I'm using the "IComSat v1.1 -SIM900 GSM/GPRS shield" and, as you can see on the datasheet (ftp://imall.iteadstudio.com/IM120417009_IComSat/DS_IM120417009_IComSat.pdf, page 6), "the pin 9 of Arduino interface is connecting to PWRKEY, and a high pulse with 400us wide can power on/off it."
So, to my sim900 module works I have to put this in the code, before calling "gsm.begin":
Without that lines the module responds as follows:
............................................ GSM Shield testing. DB:NO RESP DB:NO RESP DB:NO RESP Trying to force the baud-rate to 9600
1200 2400 4800 9600 19200 38400 57600 115200 ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp
status=IDLE ............................................
The problem is not why my code is working with these lines. The problem is: why YOUR CODE is working without that? :?
Note: in GSM.h there are two lines that I think don't do nothing:
43 // pins definition 44 #define GSM_ON 8 // connect GSM Module turn ON to pin 77 45 #define GSM_RESET 9 // connect GSM Module RESET to pin 35
Thanks! Mauricio