Hi,
I've just taken delivery of a UNO SMD R3, plus a GSM 2 R3 (integral antenna) shield (from RS Components). Before trying to develop anything I downloaded and installed the latest IDE for Windows 1.8.5.
I've put in a standard (working) O2 PAYG SIM with plenty of credit and no pin (checked in a real phone). UNO+GSM2 shield are primarily powered by a 12V 2A "mini brick" SMPS connected to the UNO's DC IN jack.
So far I can't get it to do ANYTHING using any of the example sketches.
The "BandManagement" example sketch from GSM - Tools, throws up a load of warnings:
In file included from C:\Program Files\Arduino\libraries\GSM\src/GSM.h:46:0,
from C:\Program Files\Arduino\libraries\GSM\examples\Tools\BandManagement\BandManagement.ino:26:
C:\Program Files\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In constructor 'GSM3MobileMockupProvider::GSM3MobileMockupProvider()':
C:\Program Files\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:44:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
msgExample="Hello#World";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In member function 'int GSM3MobileMockupProvider::connectTCPServer(int, char*, int*)':
C:\Program Files\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:183:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
strcpy("192.168.1.1", localIP);
^
In file included from C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:34:0:
C:\Program Files\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp: In constructor 'GSM3ShieldV1BandManagement::GSM3ShieldV1BandManagement(bool)':
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:38:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[UNDEFINED]="";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:39:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[EGSM_MODE]=""EGSM_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:40:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[DCS_MODE]=""DCS_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:41:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[PCS_MODE]=""PCS_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:42:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[EGSM_DCS_MODE]=""EGSM_DCS_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:43:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[GSM850_PCS_MODE]=""GSM850_PCS_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:44:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
quectelStrings[GSM850_EGSM_DCS_PCS_MODE]=""GSM850_EGSM_DCS_PCS_MODE"";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ModemCore.cpp:39:14: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
char* ok="OK";
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp: In member function 'String GSM3ShieldV1ModemVerification::getIMEI()':
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp:64:20: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
String number(NULL);
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp: In member function 'void GSM3ShieldV1SMSProvider::beginSMSContinue()':
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp:68:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp, ">"))
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getCurrentCarrier()':
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:66:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
return String(NULL);
^
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getSignalStrength()':
C:\Program Files\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:85:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
return String(NULL);
^
and when uploaded gives the following no matter WHAT band I select (4 selected in the below example) - and I have to MANUALLY poweron the modem using the button to get to even do that:
"Restarting modem...
Modem restarted.
Unrecognized modem answer:⸮⸮@
Current band:
Want to change the band you’re on?
Select band:
1 : E-GSM(900)
2 : DCS(1800)
3 : PCS(1900)
4 : E-GSM(900)+DCS(1800) ex: Europe
5 : GSM(850)+PCS(1900) Ex: USA, South Am.
6 : GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)
Configuring band EGSM_DCS_MODE
Error while changing band
Unrecognized modem answer:x⸮
"
This leads me to think that either the GSM library, or the examples, or both shipped with IDE 1.8.5 just do NOT work with this shield.
Like ghell2000, I get the same garbage result from the TestModem example sketch (the same shed loads of warning during compile).
"Starting modem test...ERROR, no modem answer.
Checking IMEI...Modem's IMEI: 0
Resetting modem..."
With GSMScanNetworks (same shed load of warnings) I get:
"GSM networks scanner"
and that's it. It can sit there for hours and NOTHING.
As a development product this combination is rubbish. How can anyone be expected to develop anything when none of the examples work!
EDIT - 21/10/2017 @ 7:34PM
Interestingly, trying this again using IDE 1.7.10 and, while still having any success with the examples (yet, still working through) at least all the compile time warnings are gone!
Something wrong between 1.7.10 and 1.8.5! IDE
Ok
GSM Networks Scanner from GSM 2 Shield Getting Started page - nothing, still doesn't work.
TestModem - exactly the same.
"Starting modem test...ERROR, no modem answer.
Checking IMEI...Modem's IMEI: 0
Resetting modem...Modem is functioning properly"
Hmmm.. Just tried the Pin Management sketch and that throw up some interesting, if rather misleading, results. It at least ran and came up with:
"PIN & PUK locked. Use PIN2/PUK2 in a mobile phone."
So I put my O2 PAYG SIM back into a phone (old Samsung GT-E2550 Monte slider phone) and - nope not locked at all. PIN Lock is off, no PIN necessary to use it and could happily make calls and send SMS messages.
Anyone any suggestions? Or am I looking at a duff GSM 2 R3 shield to send back to RS?