Wednesday, 12 February 2014

Mapping signal strengths

One very useful feature of SL4A is the readSignalStrengths() function.  This exposes the current cell signal strength as value between 0 - 31, representing an RSSI of between -113 and -51 dBm as defined in GSM standard TS 27.007.  This is useful in that it can be used not only to trigger (or more specifically, not trigger) events based on signal strength, but can also be logged to give an indication of what level of coverage is achieved at certain locations and elevations.

Given that the script was already capturing this data, I had the idea of combing this with the KML output to give a visual map of location-based signal strengths:


There's a couple of issues that I've discovered with this, however:
  • The signal scale is logarithmic, however the colour scale is linear.  Most devices will show 16 and above as 'full bars' - which is represented as yellow in the above pictures; so anything yellow and above can be considered a strong signal.
  • I've tested this on a handful of different devices, and found that many (though fortunately not the Galaxy Y)  will only report signal strengths that correspond to the number of 'bars' displayed to the user (for example, 1, 4, 8 and 16), which makes for a much less detailed map.
At the moment, I've incorporated this functionality as a basic proof-of-concept, though when the time comes I'm hoping to use it for assessing suitability of both potential launch and landing sites.

No comments:

Post a Comment