Gemalto is now part of the Thales Group, find out more.

You are here

Cell tower triangulation | Thales IoT Developer Community

March 30, 2016 - 2:44pm, 3603 views

Hello,

our client would like to have as precise triangulation as possible, just with cellular signal. Without using GPS. When you help me answer my questions I can if there is interest change this OP to some kind of tutorial for triangulation or maybe even create whole example with source code.

My boss gave me example on his smart phone, where he isn’t connected to any WIFI or using GPS and phone knows when he has arrived at kindergarten with his kid. But here it could be possible in my opinion, that phone is still searching or collecting information about nearby WIFIs. Does anyone know anything more about it? Or how could phone know precise location?

I made test program with which I can get location of the device with 300m error when I am in the office. I use AT command AT^SMONI to get modules nearby cells. From the response I get mobile ****** code (MCC), mobile network code (MNC), cell ID (CI), location area code (LAC) and signal strength. With first four parameters I get cell tower location from OpenCellID. Then I use those locations with the signal strength to calculate modules location based on this example: http://stackoverflow.com/questions/10329877/how-to-properly-triangulate-gsm-cell-towers-to-get-a-location

And like I said error for the module in the office is 300m. Problem here is that signal strength can’t show exact distance of module from cell tower, because it values can be lower because of some obstacles in between. So I would like to also use Timing advance (timAdv). But this value is not in the response that AT^SMONI returns. Example of AT^SMONI response:

at^smonp=255

 

2G:

123,54,-57,293,41,7,4,54,54,0022,FFFF,0,0

664,54,-57,293,41,3,7,52,52,0022,1FBC,0,0

109,44,-67,293,41,3,3,44,44,0022,1FB9,0,0

115,36,-75,293,41,7,3,32,32,0022,2078,0,0

In Cinterion® BGS5 AT Command Set document on chapter 8.10 AT^SMONI it example of return with this values. How should I change my command to also get this value? Or is problem in the cell tower?

Also I noticed while using EHS6, that response there is different:

at^smonp=255

at^smonp=255

 

3G:

10814,328,-4.0,-95,---,---,AN,65528

10789,44,-8.5,-106,---,---,AN,65519

10789,328,-12.5,-121,---,---,AN,------

10789,321,-12.5,-121,---,---,AN,------

10789,22,-12.5,-121,---,---,AN,------

10789,381,-12.5,-121,---,---,AN,------

10789,95,-12.5,-121,---,---,AN,------

10789,151,-12.5,-121,---,---,AN,------

2G:

107,----,3,1,0,------

109,----,3,3,0,------

110,----,3,7,0,------

112,----,7,6,0,------

113,----,7,4,0,------

114,----,3,3,0,------

What is the reason for this?

Does anybody know any better solution for triangulation of modules?

Best regards,

Jure