GSM Positioning
Posted by blogElectronica in 2.DISPOSITIVOS (práctico), Comunic. GSM/GPRSToday we are going to do GSM positioning experiment, I’m sure that you’ll find it interesting. Find a Cinterion modem (a TC65, XT65, HC25 etc. or a terminal (MTX65, MTXH25 etc.)… Let’s get started.
As Im sure you know, Google has a service (that is powered by Android, its new Operating System for mobiles) for GSM cell positioning. This means for example, using a mobile application, it will allow you to know which friends are around you. How does it do this? By detecting if any of your friends is in the same (or the next) GSM cell as you.
How does Google know if one cell is next to another?
Well it’s because it’s Google and Google knows everything. Really it’s because it has a large database that has the GPS coordinates of all phone antenna.
If you take a look at the website…
http://www.codeproject.com/KB/mobile/DeepCast.aspx
…You will see that these guys explain very well how this Google service works and that have already been working on researching which data has to pass through Google’s API (specifically http://www.google.com/glm/mmap) and most importantly, how to do it so it returns coordinates (latitude and longitude) of a particular phone antenna.
If you read the article carefully you will see that you need to get the following data from a GSM antenna to get the position:
Cell Tower ID
Location Area Code (LAC)
Mobile Network Code (MNC)
Mobile Country Code (MCC)
And how is the data obtained with our modems? The article talks about Windows Mobile RIL…
It’s because the article is aimed at mobile phones. We are going to think about our Cinterion modems. Fortunately these wonderful modems come with AT commands which allow us to obtain such data. For example one of them is:
AT^MONI
Have you executed the command?
If you have executed it you will see that you get some data, in my case:
chann rs dBm MCC MNC LAC cell NCC BCC PWR RXLev C1 I chann TS timAdv PWR dBm Q ChMod
18 21 -89 214 07 0335 5A0C 1 0 33 -103 13 I No connection
This is what we can extract from that:
Cell Tower ID = 5A0C
Location Area Code (LAC) = 0335
Mobile Network Code (MNC) = 07
Mobile Country Code (MCC) = 214
Very good, we can call the next page with this data and see the result. Click on the Test link and then substitute the values in the URL parameter (mcc, mnc, lac, cid) for those that I posted that I got from home and then reload this page:
Cool, is that true?
Obviously it’s only an approximate position, this isn’t a GPS, but it gives a decent approximation within the large territory where our modem is placed. Applications? This is what is already in everyone’s imagination.
And speaking of applications, this means that within a certain amount of time I will be talking about the MTX-Tunnel-Advanced at great length again, well it has a lot of new features added, including the one that we have just seen.
Can you improve the position of GSM positioning?
Yes but that’s a different post for next year or for when I have time. Cinterion modems have another command (AT^SMONC) that can return information to up to 7 cells close to the GSM modem. The RSSI is returned in this information; so that the position (longitude/latitude) of these phone antennas are triangulating according to the RSSI, therefore we should be able to obtain more precise information. As I say for now this is deviating away from what I am trying to tell you.
Finally, I will leave you a link to the PHP source code which I have based it on. Use it to consult Google’s API and blogElectronica’s final PHP where I have added the earlier code, the code which is needed in order to be able to use Google maps, and to have a more visual demonstration. I am leaving it for you in a box with ribbon, so don’t complain…
I hope that you liked the post, I like it at least.
Well, now I’m going to fix the buggy,I have to change the entire front right axle; it’s going to take a long time… ciao
Tags: cinterion, gps, gsm