Why the signal strength is empty?

Hi,

I'v a GSM shield and Arduino Uno. I am able to get the following message from Serial Monitor using example programme: GSM/Tools/gsmNetworkScan.


GSM networks scanner
looping start
looping end
Modem IMEI: 359231038101091
Scanning available networks. May take some seconds.

STARHUB Pte Ltd
MOBILEONE
SingTel

Current carrier:
Signal Strength: [0-31]
Scanning available networks. May take some seconds.

Current carrier:
Signal Strength: [0-31]
Scanning available networks. May take some seconds.

Why the signal strength is empty?

Thanks for any help...

Hi,

same here. Did you solve the problem?

Best regards

Hi,

Execute the sketch replacing the line:

GSM gsmAccess;

with:

GSM gsmAccess(true);

Post your serial output.

Replacing GSM gsmAccess; with: GSM gsmAccess(true); doesn't change the serial output. I partially solved the problem commenting this lines:

// Serial.println("Scanning available networks. May take some seconds.");
// Serial.println(scannerNetworks.readNetworks());

now "current carrier" and "signal strength" are working.

I don't understand. In my shield in Spain works perfectly. Although, it's possible there may be a bug in the library.
Could you show more details?.

Hi,
i have a similar problem, but i didnt find a solution for me. if i upload program from my old notebook (Dell Vostro, win7 sp1) everything works good. Bud if i upload the same scatch from any other computer, signalStr is 0. Please, can someone help me?

Code:

#include <GSM.h>

#define PINNUMBER ""

#define GPRS_APN "Internet"
#define GPRS_LOGIN ""
#define GPRS_PASSWORD ""

GSMClient client;
GPRS gprs;
GSM gsmAccess(true);
GSMScanner signalScanner;
GSMModem modem;

boolean unconnected = true;
boolean serverConnected = false;

String IMEI = "";

void setup() {

Serial.begin(9600);

while (unconected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY){
Serial.println("GSM ready");
Serial.println();

if (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY) {
unconnected = false;
} else {
Serial.println("!!!!!! ERROR !!!!!!");
delay(200);

}
}
}

Serial.println("GPRS ready");
Serial.println();

}

void loop() {

String net;
int signalStr;
net = signalScanner.getSignalStrength();

// Serial.println("Scanning available networks. May take some seconds.");
// Serial.println(scannerNetworks.readNetworks());

signalStr = net.toInt() * (100 / 31);
Serial.print("signal strength: ");
Serial.print(SignalStr);
Serial.println(" %");
delay(2000);

}