# Boron LTE and Cellular.RSSI() - funny values

**URL:** <https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299>\
**Category:** BLE // NFC\
**Created:** [November 16, 2018, 4:06am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299 "2018-11-16T04:06:45Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![psfales](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@psfales](https://community.particle.io/u/psfales)\
**Post date:** [November 16, 2018, 4:06am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/1 "2018-11-16T04:06:45Z")

</div>

According to the documentation I can find, Cellular.RSSI().rssi values should be in the range of -113 to -51. I’m getting values in the range from 43 to 46. My .qual values are around 18 to 20, so within the documented range of 0 to 49.

---

<div class="post-metadata">

**Author:** ![kennethlimcp](https://avatars.discourse-cdn.com/v4/letter/k/c0e974/32.png) [@kennethlimcp](https://community.particle.io/u/kennethlimcp)\
**Post date:** [November 16, 2018, 1:24pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/2 "2018-11-16T13:24:49Z")

</div>

Boron LTE or 3G/2G?

The exact model will be useful 🙂

---

<div class="post-metadata">

**Author:** ![psfales](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@psfales](https://community.particle.io/u/psfales)\
**Post date:** [November 16, 2018, 1:52pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/3 "2018-11-16T13:52:33Z")

</div>

Good point. It’s the Boron LTE

---

<div class="post-metadata">

**Author:** ![kennethlimcp](https://avatars.discourse-cdn.com/v4/letter/k/c0e974/32.png) [@kennethlimcp](https://community.particle.io/u/kennethlimcp)\
**Post date:** [November 16, 2018, 2:48pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/4 "2018-11-16T14:48:04Z")

</div>

Not sure… but mine shows up fine!

```auto
unsigned long old_time = 0;

void loop() {
  if (millis() - old_time > 10000) {
    CellularSignal sig = Cellular.RSSI();
    
    Particle.publish("CS", String(sig), PRIVATE);
    
    old_time = millis();
  }
}

```

---

<div class="post-metadata">

**Author:** ![psfales](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@psfales](https://community.particle.io/u/psfales)\
**Post date:** [November 16, 2018, 3:09pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/5 "2018-11-16T15:09:37Z")

</div>

What are some typical values that you get for the CS sig value?

---

<div class="post-metadata">

**Author:** ![Johanso](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/johanso/32/19052_2.png) [@Johanso](https://community.particle.io/u/Johanso)\
**Post date:** [December 3, 2018, 10:58am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/6 "2018-12-03T10:58:05Z")

</div>

I’m getting the same issues with odd signal values. I’m getting RSSI values around 30-40 (which isn’t in the documented -113dBm to -51dBm range), and quality of around 10 (which is a lot lower than a SIMComm module on the same antenna).

It is running an external SIM from Telstra in Australia, and running rc.25. Cellular is working, as it’s the only connectivity the module has, but is having stability issues.

---

<div class="post-metadata">

**Author:** ![superseb](https://avatars.discourse-cdn.com/v4/letter/s/cdc98d/32.png) [@superseb](https://community.particle.io/u/superseb)\
**Post date:** [December 18, 2018, 4:37am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/7 "2018-12-18T04:37:55Z")

</div>

Same issue for me on Boron LTE, I get 44 and 22 for both RSSI value as an example.

---

<div class="post-metadata">

**Author:** ![avtolstoy](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/avtolstoy/32/8126_2.png) [@avtolstoy](https://community.particle.io/u/avtolstoy)\
**Post date:** [December 18, 2018, 5:17am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/8 "2018-12-18T05:17:01Z")

</div>

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](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:

```cpp
    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)

---

<div class="post-metadata">

**Author:** ![psfales](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@psfales](https://community.particle.io/u/psfales)\
**Post date:** [December 19, 2018, 4:04pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/9 "2018-12-19T16:04:37Z")

</div>

@avtolstoy, thanks for the note, but I’m not quite clear on what you mean by “use it as a workaround on Boron for now.”

getAccessTechnology() is not defined on my Boron. Do mean that it should be available now automatically? Or available now if I do something special (like include a library)? Or is it something that is not yet available, but will be coming in the future? Thanks.

---

<div class="post-metadata">

**Author:** ![avtolstoy](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/avtolstoy/32/8126_2.png) [@avtolstoy](https://community.particle.io/u/avtolstoy)\
**Post date:** [December 19, 2018, 10:57pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/10 "2018-12-19T22:57:37Z")

</div>

It should be available. It is a method of `CellularSignal` class.

```cpp
CellularSignal s = Cellular.RSSI();

auto rat = s.getAccessTechnology();

float strengthVal = s.getStrengthValue();
float strengthPercentage = s.getStrength();

float qualityVal = s.getQualityValue();
float qualityPercentage = s.getQuality();

```

---

<div class="post-metadata">

**Author:** ![chipmc](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chipmc/32/15905_2.png) [@chipmc](https://community.particle.io/u/chipmc)\
**Post date:** [March 5, 2019, 3:03am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/11 "2019-03-05T03:03:36Z")

</div>

@avtolstoy,

While I value compatibility with the 2G devices, this is a significant improvement over what we had before. I have tested this approach in my own applications and am very happy with this change. I would only suggest updating the Bottom reference documentation to reflect this new approach.

Thank you!

Chip

---

<div class="post-metadata">

**Author:** ![chipmc](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chipmc/32/15905_2.png) [@chipmc](https://community.particle.io/u/chipmc)\
**Post date:** [October 3, 2019, 8:28pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/12 "2019-10-03T20:28:45Z")

</div>

@avtolstoy,

I am getting a “rat” value of 8 from this code for my Boron LTE. Is this correct? Can you please provide the correct rat values or point me to the repo?

Thanks,

Chip

---

<div class="post-metadata">

**Author:** ![avtolstoy](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/avtolstoy/32/8126_2.png) [@avtolstoy](https://community.particle.io/u/avtolstoy)\
**Post date:** [October 3, 2019, 9:05pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/13 "2019-10-03T21:05:57Z")

</div>

@chipmc We should really update the docs 😓

It’s LTE Cat M1: [https://github.com/particle-iot/device-os/blob/develop/hal/inc/net\_hal.h#L52](https://github.com/particle-iot/device-os/blob/develop/hal/inc/net_hal.h#L52)

---

<div class="post-metadata">

**Author:** ![chipmc](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chipmc/32/15905_2.png) [@chipmc](https://community.particle.io/u/chipmc)\
**Post date:** [October 3, 2019, 9:10pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/14 "2019-10-03T21:10:48Z")

</div>

@avtolstoy,

Figured as much, thank you!

Chip

---

<div class="post-metadata">

**Author:** ![ric\_hard](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/ric_hard/32/15875_2.png) [@ric\_hard](https://community.particle.io/u/ric_hard)\
**Post date:** [October 4, 2019, 8:54am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/15 "2019-10-04T08:54:18Z")

</div>

@chipmc are you setting the network band at all? My RAT is actually coming back as = 6. Which is just LTE not CAT\_M1 ??

---

<div class="post-metadata">

**Author:** ![chipmc](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chipmc/32/15905_2.png) [@chipmc](https://community.particle.io/u/chipmc)\
**Post date:** [October 4, 2019, 12:36pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/16 "2019-10-04T12:36:28Z")

</div>

@ric_hard,

No, I am not setting the network band. Running deviceOS@1.3.1 if that helps.

Would seem that all the Particle devices should be CAT\_M1 or CAT\_NB1 as I don’t think they use plain old LTE.

Chip

---

<div class="post-metadata">

**Author:** ![ric\_hard](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/ric_hard/32/15875_2.png) [@ric\_hard](https://community.particle.io/u/ric_hard)\
**Post date:** [October 5, 2019, 7:14am UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/17 "2019-10-05T07:14:24Z")

</div>

@chipmc appears they do when you change the modem settings…

Aldo do you mind telling me what you have in these fields? I have some Boron’s with 6 and some with 8.

![lte2](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/b/e/be321e83a0cffb0e2b66cbc4a9486c27dcb48574.jpeg)

Thanks

---

<div class="post-metadata">

**Author:** ![chipmc](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chipmc/32/15905_2.png) [@chipmc](https://community.particle.io/u/chipmc)\
**Post date:** [October 5, 2019, 8:04pm UTC](https://community.particle.io/t/boron-lte-and-cellular-rssi-funny-values/45299/18 "2019-10-05T20:04:57Z")

</div>

@ric_hard,

Interesting. Here is what I see on my console - the “at” value is 8 - just like yours.

![42%20PM](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/4/f/4f002f24bca02b0acbb0a9a23d3144063ed335fb.png) ![44%20AM](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/6/e/6eb377e240fabf31422d77c2e3f41b176acb2708.png)

So it seems that the only issue was updating the definitions of the “at” values:

```auto
const char* radioTech[10] = {"Unknown","None","WiFi","GSM","UMTS","CDMA","LTE","IEEE802154","LTE_CAT_M1","LTE_CAT_NB1"};
  

```

This seems to work for me. but not sure why the “LTE” value is needed.

Chip
