No signal strength information for Electron 2G on Device OS 1.0.0

electron
Tags: #<Tag:0x00007f03903a1480>

#1

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:

  1. 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.

  2. 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.


#2

Check the firmware updates thread, I believe there was a change in the way RSSI is used for 1.0.0.


#3

Thanks for the suggestion. The 1.0.0 release does have a notice about changes to WiFi.RSSI() but it specifically mentions that “Electron is not affected”. The changelog also mentions “Network Signal Quality/Strength rework and diagnostics #1423” which might have something to do with the regression.

I guess I’ll just file a bug report and hope a fix makes it in time for the next release. Until then I’d love any suggestions for a workaround. I’m deploying a device in the field this week and it would be really beneficial to have some indication of signal strength so I can choose between two types of antennas.

I just tested Device OS 1.0.1-rc.1 and have verified that the bug is still present.


#4

I am stuck with the same problem.
I contacted Particle but they don’t seem very interested/concerned in the problem or the fact they they broke one of their apis which is a bit worrying. They talked about a fix for version 1.0.2 but who knows.

I am really interested in a workaround for this so if anyone has any ideas!