I have a 2G Electron (with the ublox SARA-G350 module) running Device OS 1.0.0 and I am unable to get the cellular signal strength information. The problem manifests itself in two ways:
-
The radio access technology variable returned by the CellularSignal class is 0 (which stands for NET_ACCESS_TECHNOLOGY_UNKNOWN or NET_ACCESS_TECHNOLOGY_NONE). This causes getStrength() and getQuality() to return -1.0 and getStrengthValue() and getQualityValue() return 0.0.
-
The rssi member variable of Cellular.RSSI() is set to 1 „indicating a Cellular module or time-out error“.
The test code I ran was this:
void setup()
{
CellularSignal sig = Cellular.RSSI();
int rat = sig.getAccessTechnology();
char accessTechText[8];
snprintf(accessTechText, 8, "%i %i", rat, sig.rssi);
Particle.publish("Access technology", accessTechText, 0, PRIVATE);
}
void loop()
{
}
and this is the output I get:
event: Access technology
data: {"data":"0 1",<removed>}
additionally I noticed that the spark/device/diagnostics/update
diagnotics event reports:
network":{
"connection":{
"status":4
"error":0
"disconnects":0
"attempts":1
"disconnect":0
}
"signal":{
"rssi":{"err":-100}
"strength":{"err":-100}
"quality":{"err":-100}
"qualityv":{"err":-100}
"at":0
"strengthv":{"err":-100}
}
}
I have previously been using the rssi variable of Cellular.RSSI() successfully on 0.7.0 but only noticed this regression after I updated to 1.0.0. I have been unable to downgrade from 1.0.0 to find out exactly which version broke this functionality. I am using a Particle SIM card.
I was unable to find anything about this on the forum or the Github issue tracker. I wanted to post this here to confirm that this is a bug before filing an issue on Github. I’m also open to any workarounds until a fix is released.