CellID / Cell Locate / Geolocation on HL7800

AirPrime HL7800 (using LTE-M1)

I’m trying to get neighboring cell tower information to feed into a geolocation database (e.g. Google, Skyhook) but have been running into trouble.

I’m aware of both the AT+KCELL and AT%MEAS commands, but I’m not getting everything I need.

The databases require MCC, MNC, LAC and CID. I was told that the CID values are unique, but I have no idea how a 3-digit decimal number could be a unique value by itself. Also, I can’t seem to get MCC/MNC/LAC for neighboring cells via AT%MEAS.

1) Any thoughts on this? I’m dissapointed with this so far as cellular triangulation is a primary feature we were told would be possible, manually.

2) I’m only getting 3 towers, which is odd as I see many LTE towers nearby. Do I need to change bands to get more towers? Suggestions?

3) Shouldn’t AT+KCELL deliver information about more towers than just one?


+COPS: 0,0,"Verizon Wireless",7


+CREG: 2,1,"BE43","02E8B302",7

+KCELL: 3,5,130184,2e8b302,172,48707,41,20,14,6,5230,178,34,46,5230,291,33,2

%MEAS: EARFCN=5230, CellID=172, RSRP=-100, RSRQ=-9
%MEAS: EARFCN=5230, CellID=178, RSRP=-107, RSRQ=-16
%MEAS: EARFCN=5230, CellID=291, RSRP=-107, RSRQ=-17

Hi @nsingh,
I am looking into this. I can reproduce the issue that you are reporting. I will get back soon.

OK great, thank you! I’m working on weekend to prepare for a customer demo early next week. Geolocation is a key component, using:


There are 3 cells in your KCELL result:
+KCELL: 3,5,130184,2e8b302,172,48707,41,20,14,6,5230,178,34,46,5230,291,33,2
The serving cell:… 5,130184,2e8b302,172,48707,41,20,14,…—> PLMN=130184 => MCC=311,MNC=480; LTE-CI = 2e8b302, CellID=172
There are 2 neighbor cells: …5230,178,34,46,5230,291,33,2 —> CellID = 178 and the other is 291
For LAC, you can get from CREG or CEREG command
+CREG: 2,1,“BE43”,“02E8B302”,7

The KCELL and MEAS commands list all Cells of the band (network) which is registered, so the MCC/MNC is the same for serving cell and neighbor cells.

If you change to other band, module is registered to other network, KCELL will show the information of that network. The cell information can only be retrieved when the module stays in attached mode


Thank you for this information. I did not realize that neighboring cells were also included in the same inline response via KCELL. However, it does not seem formatted properly. How on earth would I be able to parse that? There seems to be a bug.

The only way to make sense of the string is to assume the code has a bug (missing a comma) at parameter #14:

+KCELL: 3,5,130184,2e8b302,172,48707,41,20,14,6,5230,178,34,46,5230,291,33,2

If I assume “46” is really supposed to mean “4, 6” then it makes sense:

3, (total cells)
5,130184,2e8b302,172,48707,41,20,14, (serving cell)
6,5230,178,34,4 (neighboring)
6,5230,291,33,2 (neighboring)


A) Is this indeed a confirmed bug for +KCELL?

Also, thank you for showing how acquiring MCC/MNC/CELID(relative) can be acquired. But LAC seems very challenging and time-consuming. Are you saying I need to register on EVERY neighboring cell in order to get LAC via a +CREG command?

B) Is there not an easier way? Is there some kind of hidden command that gives LAC for neighbor cells automatically?

C) Can I not get CELLID (28-bit) for neighboring cells? If not how would I go about this specifically?

D) If I’m using Verizon as carrier, does this mean I can only see Verizon neighboring cells, or this is all LTE-M1 cells in the selected band? If I’m required to register to get LAC, seems like I wouldn’t be able to on non-VZW towers

Thank you for your attention to detail on these responses


It is not a bug for KCELL:

  • +KCELL: 3,5,130184,2e8b302,172,48707,41,20,14,6,5230,178,34,46,5230,291,33,2
    3 --> total cells
    5–> serving cell
    130184,2e8b302,172,48707,41,20,14, --> information for serving cell
    6 --> neighbor cell ( there are 3 cells, 1 for serving cell, so there are 2 neighbor cells, “6” is displayed 1 time)
    5230,178,34,46 --> neighbor cell 1 : 5230 -> Earfcn, 178 -> cellID; 34 -> RSRP; 46 -> RSRQ
    ,5230,291,33,2 --> neighbor cell 2: 5230 -> Earfcn, 291 -> cellID; 33 -> RSRP; 2 -> RSRQ

If you are using Verizon you only see Verizon neighbor cells with KCELL command.
For LAC, for other HL series, KCELL command will show LAC of serving/neighbor cells, but HL7800 does not. If you need more details, please contact Sierra Support.

1 Like

Ah I see now, you are correct. Thank you for clarifying this. The documentation is rather confusing on this point.

Is the Verizon limitation you noted due to another idiosyncrasy of HL7800? Or Verizon itself?

As of right now, I’m understanding that:

  • I can’t get ECGI(28-bit) for neighboring cells (%KMEAS gives non-unique PHYSCID version)
  • I can’t get LAC for neighboring cells
  • I can’t see info from non-Verizon towers

For example, Skyhook requires:
The LTE tower block should be used for the following air-interfaces: LTE, E-UTRAN, LTE-TDD, LTE-FDD ``

  • mcc – Mobile country code
  • mnc – Mobile network code
  • tac - Tracking Area Code (16bit). Optional.
  • eucid – LTE E-CGI (28bits)
  • pci - LTE local cell id (0:503). Optional.
  • rsrp – Received signal strength (RSRP) from the tower, in decibels (dBm). Optional.
  • timing-advance – The length of time a signal takes to reach the base station from a mobile phone (half of rtt=round trip time). The units are symbols (Ts) as specified in 3GPP 36.133 (LTE). Range 0:7690. Optional.
  • age – Relative age of the measurement, in milliseconds.
  • earfcn - 3GPP channel number, 18 bit integer. Optional.
  • serving - True ( connected/serving cell) or False (not a serving cell), optional, default: empty (not serving)

I was told cell triangulation would be possible w/ this product. Based on comments so far, it sounds like effective cellular triangulation with HL7800 is going to be very challenging if not impossible. This is disappointing and if not mitigated, may impact our ability to use module.

I’m inquiring with Sierra Support/FAE to see if there are some ways to deal with this via hidden commands.

Hi nsingh,
I just want to clarify one thing, the mobile device can not assign which is its neighbor cell. The neighbor cell list is due to the operator. If you register to Verizon network, and your SIM card is Verizon SIM, you only see the neighbor cell list that Verizon indicated. If you use Sierra smart SIM, maybe there are other networks in neighbor cells list. It belongs to Verizon.


1 Like

Thank you. Do you know how to view the E-CGIs (28-bit ID) of neighboring towers? Seems the HL7800 only gives this for the server cell

Hi nsingh,
At this firmware, HL7800 only show E-CGI for the serving cell.
Sierra is considering implementing your request in the next build. Please keep contact with your Distributor.


Hi, I was doing some testing today with an HL7800 running the latest firmware. As you can see below, the output from AT+KCELL=0 is

+KCELL: 5,5,72f877,c413,441,30888,48,14,9,6,6390,432,50,12,6,6390,449,47,8,6,6390,438,45,4,6,6390,446,41,0


This contradicts the documentation. It says 5 total cells but I only see info about 4. Also the Cell Type is sent for each nbor while the documentation states it should be only sent once for all the nbor cells?

5 => 5 total cells
5,72f877,c413,441,30888,48,14,9,6,6390,432,50,12, => the serving cell


Sorry I actually see info about 5 cells correctly but still the cell type is sent for each nbor:

5 => 5 total cells
5,72f877,c413,441,30888,48,14,9, => the serving cell

Hi David,
Due to customer’s request, the output of KCELL has changed from firmware 4.4.6
You can find EURY-2625 in Customer release note “https://source.sierrawireless.com/resources/airprime/software/hl7800-firmware/hl78xx-firmware-4,-d-,4,-d-,6,-d-,0/#sthash.qeculOY8.dpbs
Now the “6” will be displayed for each of neighbor cell.


Has this request been resolved? Hoping in the similar case of the HL7588 to get the E-CGI and timing advance for neighboring cells to enable geolocation triangulation.

Hi @michael.scudder,

This is the ticket related to HL7800 module. So please help me create the new ticket for your HL7588 module to keep track.


I created a topic at Module HL7588 Geolocation triangulation