How to get the Cell Operator?

Hi

I used B523 and B524 with the latest OS. I need to report the Cell Operator, the Access Technology and the Signal Strength on a regular basis. The last two are no problem but I cannot get the Cell Operator out of the Modules.

I have also tried the “CellularHelper” library from rickkas7@rickkas7.com. But even this great tool cannot get the Operator if the access technology is LTE which it is in my case.

But the “last vitals” update from the Web-Console does force a “spark/device/diagnostics/update” event where the Cell Operator is included!

  • How can I force such a diagnostic Update from my B524 C++ code?
  • When the “Refresh device vitals” code can extract the Operator why is it not possible that I can do it?
  • Or is it easyer to send an “Refresh device vitals” request to the API and grab the operator from the Event?

Thanks for any tips
Andreas

The MCC/MNC (numeric) specify the operator. All devices can get the numeric identifiers.

The problem is that only some devices (those with a u-blox SARA-U201/U260/U270/G350) have an internal database to convert these to text. The console has this database, which is why it works there.

The CarrierLoookupRK library contains a compressed version of this database that can even fit into devices with 128K firmware binaries.

Here’s some sample code for getting the CellularGlobalIdentity to get the mcc (mobileCountryCode) and mnc (mobileNetworkCode) that you pass to the lookup function.

Device vitals won’t help because on the device side, the vitals don’t contain the carrier name because that’s generated on the console side. The device only sends up the mcc/mnc.

1 Like

Hi Andreas,
The library Rick mentioned can help get the operator on the device itself.

In case you had a cloud infrastructure already, you can hit the Particle API Get last known device vitals and you will find a section with the operator:

{
  "device": {
    "network": {
      "cellular": {
        "radio_access_technology": "3G",
        "operator": "AT&T Wireless Inc.",
        "cell_global_identity": {
          "mobile_country_code": 310,
          "mobile_network_code": "410",
          "location_area_code": 45997,
          "cell_id": 20160117
        }
      },

Best

1 Like

Hi rickkas7!

Oh, I think the Cell Operators just send some Text and not a number which need a lookup… But now it’s clear. I have used the CarrierLookupRK library and it’s perfect for me. I have configured a GSM/Cellular test device powered by an B524 and I got all data I need. We must test some locations in the forest - to see if and how stable the cellular connections are. The Test-Device send a Status Message all 15 Minutes. I have configured a Datacake Dashboard to present all Info’s in a Chart.
Here is the Link if you or someone else is interested: https://app.datacake.de/dashboard/d/dab91929-9457-4dd9-a0e1-6973e5299227

Thanks for your help!!!
Andreas

2 Likes