Etikettarkiv: signal strength

Using your Android for network monitoring

Using a small software called RF Signal Tracker it is possible to create a log file detailing the coverage parameters your phone has at every point a long a route. This is something that other software like TEMS charge you thousands of € in order to facilitate and now you can do it for free using nothing but a bit of computer skills and an Android phone.

The RF Signal Tracker is a little buggy so in order to use it properly you should turn of auto-rotation of your screen and avoid running too many other applications at the time. When the phone is in idle mode you will get less accurate readings but usually good enough in order to make well reasoned assumptions about the network.

Starting the RF Signal Tracker software you have an option to record your data. It will use the built-in GPS receiver in the phone to find out where you are and then log together with the signal strength (in dBm) and other parameters such as the base station Cell ID, the LAC and many other important parameters as well as the base station position (if it is known).

This can then be exported to the Micro SD-card in the phone as a CSV file which is the easiest format to use. Once you have it as a CSV file you may tether the phone to your computer and transfer this file to your working directory.

If you are running some flavour of Linux, BSD or other Unix you are set but if you are running Windows you need to install a package called Cygwin. Standard settings should do, you need a command line that works and a tool called ”awk” which is awesome. Tutorial for AWK can be found here.

Open a shell, navigate to your working directory and find the CSV file. Then issue a command like this:

awk <export_091130170020.csv ’BEGIN {FS=”,”}; {print $3/1000000 “,” $2/1000000 “,” 130+$4}’ >coord.txt

This should export a file called ”coord.txt” in your working directory with coordinates in WGS84 decimal format (ddd.ddddd, dd.ddddd) with the easting/westing and the northing/southing in that order.

The next step is to take the following KML file and open it in a text editor, just copy it straight to the editor of your choice.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Paths</name>
    <description>Examples of paths. Note that the tessellate tag is by default
      set to 0. If you want to create tessellated lines, they must be authored
      (or edited) directly in KML.</description>
    <Style id="yellowLineGreenPoly">
      <LineStyle>
        <color>7f00ffff</color>
        <width>4</width>
      </LineStyle>
      <PolyStyle>
        <color>7f00ff00</color>
      </PolyStyle>
    </Style>
    <Placemark>
      <name>Signal Strength Test Run</name>
      <description>Some description here</description>
      <styleUrl>#yellowLineGreenPoly</styleUrl>
      <LineString>
        <extrude>1</extrude>
        <tessellate>1</tessellate>
        <altitudeMode>relativeToGround</altitudeMode>
        <coordinates>
<!-- YOUR COORDINATES GOES HERE -->
        </coordinates>
      </LineString>
    </Placemark>
  </Document>
</kml>

Find the section that says<coordinates> </coordinates>  in the above and then cut and paste the coordinates from the coordinates.txt file in between the two tags.

If you have google earth you can now double-click on the KML file you created and view the result. The height over ground is the signal strength calculated such as that a strength of -130 dBm is flat on the ground and for every dBm above the measurement point is placed 1 m/dBm above ground. This means that a signal strength of -90 dBm will place the point at 130-90 = 40 m above ground.

Happy hacking!