Cell tower triangulation | Telit Cinterion IoT Developer Community
March 30, 2016 - 2:44pm, 4036 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
Hello Jure,
The timAdv parameter is only displayed by SMONI command for 2G and during an active call. So it is probably not good for position calculation.
In your example there are SMONP outputs. And you probably need a parameter that is available for serving cell (SMONI or CSQ commands) and neighbouring cells (SMONP command). So signal strength seems not bad here.
Regards,
Bartłomiej
Hello Bartłomiej,
you are right. I have missread the datasheet. Then I will probably not be able to get better accuaracy.
Regards,
Jure