Boron LTE and Cellular.RSSI() - funny values

I have confirmed that we have an issue with Electron-compatible RSSI / quality calculation on Borons, which we’ll fix in the next release, however going forward we’ll be migrating to using the new (and currently undocumented) API that provides information on the current radio access technology (RAT) as well as RAT-specific strength/quality parameters along with percentages: https://github.com/particle-iot/firmware/blob/mesh-develop/wiring/inc/spark_wiring_cellular_printable.h#L48. I can suggest using it as a workaround on Borons to get more sensible strength and quality values for now.

getAccessTechnology() returns one of the following values:

    NET_ACCESS_TECHNOLOGY_UNKNOWN = 0,
    NET_ACCESS_TECHNOLOGY_NONE = 0,
    NET_ACCESS_TECHNOLOGY_WIFI = 1,
    NET_ACCESS_TECHNOLOGY_GSM = 2,
    NET_ACCESS_TECHNOLOGY_EDGE = 3,
    NET_ACCESS_TECHNOLOGY_UMTS = 4,,
    NET_ACCESS_TECHNOLOGY_CDMA = 5,
    NET_ACCESS_TECHNOLOGY_LTE = 6,
    NET_ACCESS_TECHNOLOGY_IEEE802154 = 7

For each RAT getStrengthValue() and getQualityValue() return RAT-specific strength and quality parameters, whereas getStrength() and getQuality() will return the percentage based on minimum and maximum values (0% - 100%).

GSM

Strength: RSSI (dBm) [-111, -48], see 3GPP TS 45.008 8.1.4
Quality: BER (Bit Error Rate) (%) [0.14%, 18.10%], see 3GPP TS 45.008 8.2.4

EDGE

Strength: RSSI (dBm) [-111, -48], see 3GPP TS 45.008 8.1.4
Quality: log10(Mean BEP) (Bit Error Probability) [-0.6, -3.6] (QPSK table), see 3GPP TS 45.008 10.2.3.3

UMTS (3G)

Strength: RSCP (dBm) [-121, -25], see 3GPP TS 25.133 9.1.1.3
Quality: Ec/Io (dB) [-24.5, 0], see 3GPP TS 25.133 9.1.2.3

LTE

Strength: RSRP (dBm) [-141, -44], see 3GPP TS 36.133 subclause 9.1.4
Quality: RSRQ (dB) [-19.5, -3], see 3GPP TS 36.133 subclause 9.1.7

(cc @rickkas7)

4 Likes