Posts Tagged “gps”

Today we are going to speak about GPS, or rather GNSS. A few days ago a very explanatory document fell into my hands, made by my colleague Jesús Santos, as a result of a new product launched by the company Fastrax which many of you know. I think that it could be quite interesting for a lot of you, especially those of you who are dedicated to the issue of positioning. So I included it in the article.

What is GNSS?

GNSS stands for Global Navigation Satellite System. “GNSS modules” are satellite receivers whatever brand they are or whatever country they come from. What happens is that we use the word GPS receivers for everything related to positioning. It’s suitable but this American system is not the only one that exists, there are many others:

Russian GLONASS system
Chinese Beiuou-2/Compass
Japanese QZSS
Indian Gagan

And we are waiting for the European Galileo system expected in 2014…

Fastrax has a GNSS module. The IT6000 is based on an ST chipset. The great thing about this GPS module is that it works with the American GPS system as well as the Russian GLONASS system simultaneously.

Some would think…would this benefit me?

The answer is that the receiver will work in the most extreme conditions. Imagine a street with tall buildings (what we call the urban canyon). The receiver will not only be able to see the few GPS satellites, but it will also be able use the GLONASS satellites.

Let’s look at an example. Pay attention to the following chart. GPS satellites are light blue. GLONASS satellites are dark blue. There you have the IT600 module working with 22 satellites simultaneously.


To make it clearer, here it is on a map. Here you have a test drive in Dallas. In yellow you have GPS only module traces, the “best” working all the time with 4-6 satellites. In blue you have the same route working with an IT600 module and with 8-12 satellites simultaneously (as many GPS as GLONASS). The result? Amazing, the picture says it all.


Can I make use of the same antenna that I use with my GPS module now with the IT600?

Not really. The GPS and GLONASS frequencies differ slightly. For these GNSS receivers to work well, you need an antenna that is ready to receive the 2 signals. Do these antennas exist? Yes, they do.

That’s very interesting. What other stand out features does this module have?

It has a many but here are a few:

  • The IT600 module can be assisted (AGPS) which is what we know as Autonomous AGPS or predictive AGPS. The first one is the most interesting. We can simply say that it collects the ephemerides, it works out a 5 day prediction of them and stores then in an SQI flash memory (fast bus) which is inside. For the other possibility you need the classic AGPS server in order to collect them periodically using GPRS/HSPA.
  • DR support (Odometro/Gyro or CAN DWP).
  • So what is this?
  • Dead reckoning. Receiver’s capacity to continue giving its position without satellite visibility thanks to external sensors (nearly always Gyro and Odometer). Note that this feature is not implemented yet.
  • CAN. CAN bus.
  • DWP: Differential Wheel Pulse info. (something like the odometer)
  • I2C  for MEMS sensors

Most important of all are the sensors that we can connect to the IT600. An accelerometer gives an idea of the acceleration that the module undergoes. There has to be a change in the speed for it to work. An e-compass or magnetometer measures the earth’s magnetic field, like a compass. That’s what it really is, an electronic compass that helps the accelerometer to find the way at low speeds or if it has stopped. Many mobiles and PDAs incorporate the compass to help positioning. Sensor summary: speed (odometer o even DWP), acceleration (accelerometer), turns (gyroscope) and magnetometer (electronic compass).

These sensors are put close together in the I2C bus carrying the IT600 and it will use and it will get information by itself from the same UART serial port. Furthermore, it can be connected to the vehicle’s CAN bus.


Wow this module has some mind-blowing features…

Well there’s more. It’s a programmable device; you can make your own application and embed it inside. This means that the module is used as a microprocessor as it has an ARM946 processor with programmable GPIOs, 3 UART, SPI, I2C, CAN, 2ADC… a 208MHz micro with 8MB flash memory capacity and 128KB of SRAM.

I hope that it has been interesting talking about GNSS for those who did not know of any other systems. I’ll take this opportunity to wish you all a Merry Christmas and a Happy New Year for 2012 (and of course, good luck with the Christmas lottery tomorrow) what a pipe dream… ;)


Comments 1 Comment »

Today 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…

…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 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:


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:

GSM Positioning Test


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: , ,

Comments 21 Comments »