Cellular RAW data
To locate a device using Cellular network the following information are required
Network Information: Mobile Country code (MCC), Mobile Network code (MNC), Radio Access Technology (RAT)
Serving cell Information: Cell ID (logical identifier of the cell), Code (or PCI, Physical Cell Identifier), Signal Strength, Frequency
Neighbor cells information: Signal strength, Code, Frequency
Note: CloudLocate supports Cell ID location for 2G, LTE-M and LTE Radio Access Technology.
Every modem has the capability to provide in output these information by using some dedicated AT commands. Since the data might be reported in different standards, some simple manipulations might be needed before sending the data to CloudLocate service.
{
"RequestId": "82cb34c9-88c9",
"CellMeasurements": {
"HomeMCC": 234,
"HomeMNC": 10,
"IMEI": "517334473528130",
"RAT": "LTE",
"NetworkCells": [
{
"CellIdentifier": 137788526,
"AreaCode": 14354,
"SignalStrength": -98,
"Code": 201,
"Frequency": 6400,
"IsServingCell": true
},
{
"SignalStrength": -90,
"Code": 393,
"Frequency": 6400
}
]
}
}
Network information
The first set of data is represented by the network information:
MCC (Mobile Country Code) and MNC (Mobile Network Code), identify uniquely worldwide the network operator. The conjunction of those two data is also referred as PLMN (Public Land Mobile Network). Both are mandatory parameter and shall be reported to the service as an integer value
IMEI uniquely identify the Cellular modem and is an optional parameter. It is reported in the location response in case it is provided in input.
RAT (Radio Access Technology) is a mandatory parameter and identifies the network technology used by the modem. It can assume one of the following value: GSM, LTE,LTECATM1
Network Cells
This is an array containing at least the data of one serving cell and eventually one or more neighbor cells.
Serving cell
The serving cell is the cellular cell to which the modem is connected. The modem can be connected to only on cell at a time, but it can receive from the Base Station also the information about other neighbor cells around it. The information to be provided to CloudLocate Service:
CellIdentifier: Cell logic identifier. For GSM it is 16bit cell identifier and for LTE/LTE-M it is 28bit E-UTRA Cell Identifier. Although some modems reports it as an HEX value, the parameter shall be transformed in an integer value to be accepted by the service. It's a mandatory value.
AreaCode: it identifies the area where the base station is deployed according to the Network Operator planning. It is only required for serving cell. In case of GSM it is reported as tracking area code(TAC) while for LTE it represents the Location area code (LAC) within a Mobile Network Operator's network. It's a mandatory value
SignalStrength: It is the strength of the signal of the serving cell received. by the modem. This value might be reported with a custom range(format) or according to 3GPP TS 36.133. The service accepts:
For LTE/LTE-M the RSRP value in dBm, with a range between -140 and -44 dBm
For GSM, it is Received Signal Level and in code representation [0 .. 63]
This parameter is mandatory.
Code: this is the phisical code identifier of the network cell. For LTE it is physical layer cell identifier [0 .. 503] and for GSM it is base station identity code [0 .. 63]. This parameter is mandatory.
Frequency: for GSM it is the Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) [ 0 .. 1023 ] and for LTE/LTE-M it is Evolved Absolute Radio Frequency Channel [ 0 .. 65535 ]. This parameter is mandatory.
IsServingCell: this is a booean value (true/false) that indicates if the reported cell is a serving cell (true) or not. It is mandatory only if it is a serving cell, if omitted the service assumes that is a neighbor cell.
Neighbor cells
For neighbor cell, a limited set of parameter are required with the same format described above:
Code
Frequency
SignalStrength
In the next section you can find a detailed description on how to obtain the meaningful values for u-blox modules. If you need instruction on how to proceed with NOT u-blox modems, please send a support request to support@thingstream.io, so that we can directly assist you.
Using u-blox cellular SARA-R5 module - LTE-M
Serving cell
When using u-blox SARA-R5 module, the command the command to get the cells information is:
AT+UCELLINFO?
The response from this command is as following:
AT+UCELLINFO=<mode>,<type>,<MCC>,<MNC>,<CI>,<PhysicalCellID>,<TAC>,<RSRP>,<RSRQ>,<TA>
From the given response, relevant information can be extracted and passed in to the Cell measurement section of CloudLocate. For example, the AT command gives a response as:
+UCELLINFO: 0,5,234,10,129659000,114,1B0,44,12,1,96,"HISTORIC",0,0,0,0
In the response the second output indicates which type of cells it is: type 5 represents serving cell, while type 6 represents neighbor cells
To get the Frequency information (EARCFN) for serving cell the following commands can be used:
AT+UCGED=2
AT+UCGED?
The response to this command is:
+UCGED: <mode>
<rat>,<svc>,<MCC>,<MNC>
<EARFCN>,<Lband>,<ul_BW>,<dl_BW>,<TAC>,<LcellId>,<P-CID>,<mTmsi>,<mmeGrId>,<mmeCode>,<RSRP>,<RSRQ>,<Lsinr>,<LTE_rrc>,<RI>,<CQI>,<avg_rsrp>,<totalPuschPwr>,<avgPucchPwr>,<drx>,<l2w>,<volte_mode>,<meas_gap>,<rai_support>
For example:
+UCGED:2,
6,4,234,10,
6400,20,50,50,1b0,7ba7078,114,d70abbf7,fffc,80,46,16,13.68,1,255,255,46,255,255,0,255,255,0
For all the information gathered from the commands, mapping can be done to formulate input for cell measurement section of the CloudLocate request. The sample mapping is given below:
<MCC> and <MNC> and <EARFCN>: no conversion is required. The values can be issued as decimal/integer value in the API
<CI>: Logical cell identifier and <PhysicalCellID> No conversion is required. These parameter corresponds to CellIdentifier and Code in the API payload
<TAC>: the Tracking Area Code is reported in HEX and shall be converted to an decimal value for the AreaCode parameter in the API
<RSRP>: it's reported in decimal value. To obtain the SignalStrength a conversion is required subtracting 140 to the RSRP value. For example, if RSRP = 44, then SignalStrenght = 44-140=-96
Note: remind that these considerations are valid only for this u-blox modem. Other vendors and other modems might need different transformations, therefore you are kindly suggested to look at the AT Command interface of the Cellular modem.
Using u-blox cellular SARA-R422 module
GSM Radio Access Network
For SARA-R422, you can proceed in a similar way as of SARA-R5. By enable reporting (AT+UCGED=2) and then read the report (AT+UCGED?) you get automatically the list of serving and neighbor cells if available. A typical output is:
+UCGED: 2
2,410,6
81,0,9c4b,11,0091,91,30,-1,22,22,1,1
N1: 410,6,79,9d28,22,0091,26,18,18
N2: 410,6,70,9d27,21,0091,19,11,11
N3: 410,6,86,6421,13,0091,14,6,6
N4: 410,6,77,8ea0,2b,0091,13,5,5
N5: 410,6,68,9d29,31,0091,12,4,4
N6: 410,6,72,74a5,06,0091,13,5,5
OK
that complies to the format
+UCGED: 2
<rat>,<MCC>,<MNC>
<arfcn>,<band1900>,<GcellId>,<BSIC>,<Glac>,<Grac>,<RxLev>,<t_adv>,<C1>,<C2>,<NMO>,<channel_type>
[N1: <MCC>,<MNC>,<arfcn>,<GcellId>,<BSIC>,<Glac>,<RxLev>,<C1>,<C2>
...
For all the information gathered from this AT command, mapping can be done to formulate input for cell measurement section of the CloudLocate request. The sample mapping is given below:
RAT corresponds to <rat> (2 in the example) and it has to be mapped to the RAT parameter. The supported values by CloudLocate service are: 2= 2G, 4=4G, 6= LTE Cat M1 and shall be mapped respectively into GSM, LTE and LTECATM1
MCC and MNC corresponds to <MCC> and <MNC> and no conversion is required since it is already provided in decimal format (0-999)
CellIdentifier corresponds to <GcellId> (2 bytes, 0x0 - 0xFFFF) and shall be converted from HEX to decimal. The HEX value is 2 bytes (0-FFFF)
Code corresponds to <BSIC> (0x0 - 0x3F) and shall be converted from HEX to decimal
AreaCode corresponds to <Glac> (0x0 - 0xFFFF) and shall be converted form HEX to decimal. 0xFFFF means that the Area code is not known
SignalStrength corresponds to <RxLev> (0-63, 99= not known). The range of <RxLev> is an index from 0 to 63 plus 99 (signal level not known).
Frequency corresponds to <arfcn> that spans from 0 to 1023 (65535 equals to not known) and no conversion is required
The next service payload corresponds to to sample output listed above, but limited to the first 3 neighbor cells.
{
"CellMeasurements": {
"HomeMCC": 410,
"HomeMNC": 6,
"RAT": "GSM",
"NetworkCells": [
{
"CellIdentifier": 40011,
"AreaCode": 145,
"SignalStrength": 30,
"Code": 17,
"Frequency": 81,
"IsServingCell": true
},
{
"SignalStrength": 26,
"Code": 34,
"Frequency": 79
},
{
"SignalStrength": 19,
"Code": 33,
"Frequency": 70
},
{
"SignalStrength": 14,
"Code": 19,
"Frequency": 86
}
]
}
}
LTE-M Radio Access Network
For LTE- M you need first to get the Cell Identifier by using the command
AT+CREG?
the reply is in the format
+UCREG:<stat>, <lac>,<CI>,<AcTStatus>
The Cell Identifier of the serving cell corresponds to <CI> (4 bytes, 0x0 - 0xFFFFFF) and shall be converted from HEX to decimal. The HEX value FFFFFFFF means that the the current CI is invalid
Check also that <stat> = 5 (registered) and <AcTStatus>=7 (connected to EUTRAN Radio access technology, that is LTE/LTE-M)
To get the remaing values of the serving cell, and the information about neighbor cells, similarly to what explained in the previous section , you should enable the reporting (AT+UCGED=2) and read the report (AT+UCGED?); the typical output when using LTE-M network is in the format
+UCGED: 2
<rat>,<MCC>,<MNC>
<EARFCN>,<Lband>,<ul_BW>,<dl_BW>,<TAC>,<P-CID>,<RSRP_value>,<RSRQ_value>,<NBMsinr>,<esm_cause>,<emm_state>,<tx_pwr>,<drx_cycle_len>,<tmsi>
N1: <MCC>,<MNC>,<EARFCN>,<PCID>,<RSRP_value>,<RSRQ_value>
N2: <MCC>,<MNC>,<EARFCN>,<PCID>,<RSRP_value>,<RSRQ_value>
OK
These values can be mapped to the service JSON payload as below:
RAT corresponds to <rat> (2 in the example) and it has to be mapped to the RAT parameter. The supported values by CloudLocate service are: 2= 2G, 4=4G, 6= LTE Cat M1 and shall be mapped respectively into GSM, LTE and LTECATM1
MCC and MNC corresponds to <MCC> and <MNC> and no conversion is required since it is already provided in decimal format (0-999)
Code corresponds to <P-CID> (0- 503, 65535= not known) and does not require any conversion
AreaCode corresponds to <TAC> (0x0 - 0xFFFF) and shall be converted form HEX to decimal. 0xFFFF means that the Area code is not known
SignalStrength corresponds to <RSRP_value> and it is already reported in dBm from -140 to 44, therefore non conversion is required
Frequency corresponds to <EARFCN>, reported according to 3GPP TS 36.101. No conversion is required
Using u-blox cellular LENA-R8 module
When using LENA-R8, you can retrieve a one-shot report of visible cells using the command AT+CCED=0,x (the value x defines if you want the serving or neighbor cells information)
Serving cell
AT+CCED=0,1
The output for LTE is
+CCED:LTE current cell:<MCC>,<MNC>,<imsi>,<roamingFlag>,<bandInfo>,<bandwidth>,<dlEarfcn>,<cellid><rsrp>,<rsrq>,<tac>,<SrxLev>,<pcid>
while the output for GSM is
+CCED:GSM current cellinfo:<MCC>,<MNC>,<lac>,<cellid>,<bsic>,<rxlev>,<RxLevSub>,<Arfcn>
As a brief summary, is the correspondences with the service JSON payload are as follow:
HomeMCC and HomeMNC corresponds to <MCC> and <MNC>
AreaCode corresponds to <tac> in LTE and <lac> in GSM
CellIdentifier corresponds to <cellid>. It is in HEX, to be converted to decimal value
SignalStrength corresponds to <rsrp> (LTE) and <rxlev> (GSM). While for GSM no conversion is required (0-63) for LTE, you need to subtract the value 140 from <rsrp> before submitting the data to the service as described for SARA-R5 module
Frequency corresponds to <dlEarfcn> (LTE) and <Arfcn> (GSM). While for LTE no conversion is required for GSM you need to convert the value from HEX to decimal
Code corresponds to <pcid> (LTE) and <bsic> (GSM) the values are in decimal format and no conversion is required
Neighbor cells
AT+CCED=0,2
The report is in the following format:
+CCED:LTE neighbor cell:<MCC>,<MNC>,<frequency>,<cellid>,<rsrp>,<rsrq>,<tac>,<SrxLev>,<pcid>
+CCED:GSM neighbor cellinfo:<MCC>,<MNC>,<lac>,<cellid>,<bsic>,<rxlev>
As for the Serving cell you need to fill the JSON payload with the following parameters:
Code corresponds to <pcid> (LTE) and <bsic> (GSM) the values are in decimal format and no conversion is required
Frequency corresponds to <dlEarfcn> (LTE) and <Arfcn> (GSM). While for LTE no conversion is required for GSM you need to convert the value from HEX to decimal
SignalStrength corresponds to <rsrp> (LTE) and <rxlev> (GSM). While for GSM no conversion is required (0-63) for LTE, you need to subtract the value 140 from <rsrp> before submitting the data to the service as described for SARA-R5 module
Using third party modems
If you are using modems not belonging to u-blox, feel free to contact the support so that we can help you. We already have the instruction on how to obtain the relevant information from multiple third-party modem and how to do thee conversion before submitting the data to CloudLocate service.
In this section
Still need help?
CloudLocate getting started guide
If you need more help or have any questions, please send an email to services-support@u-blox.com