Professional Documents
Culture Documents
RF Signal Tracker
RF Signal Tracker
Highlights:
Map and record color coded RSSI as you travel.
Play back recorded data.
Sector coverage describing orientation and beamwidth.
new!
One Cell Tracking to examine coverage of a single cell site.
new!
Sound and Vibe notification on handover.
Serving cell located through Google, OpenCellID, or the
users own custom site list.
Export recorded data to .XML or .CSV files. Import older
recorded data for playback.
App to SD card
The RF Signal Tracker is an engineering application for doing
impromptu hand-held *drive-test* with your Android phone.
You can drive or walk a particular area and see the RSSI
(received signal strength indication) for the phone as well as
the serving cell location, and save that data to a CSV or XML
file on your SD card. That saved data can be replayed, or you
can import previously saved data for replay as well. A new
feature added in version 2.2.0 is sectorized coverage bubbles.
As you travel a sectorized cone is draw out from the cell
describing the extent of the measured signal from that cell.
This effectively draws the cells orientation, beamwidth and
range. This feature ONLY works if the site location is know.
Some of the phone stats in the app are already displayed on the
phone (go to Settings -> About -> Status to see them). The
advantage with this app is you can then map those stats in a
meaningful way (at least signal strength). My goal in
developing this app was to learn how to interact with the
phones settings as well as notifications and maps. I still have a
good ways to go but I think this has turned out reasonably
well.
mcc,mnc,lac,ci,latitude,longitude
310,260,3601,981,48.9929,-122.7473
310,260,3601,982,48.99287,-122.74726
310,260,3601,983,48.99287,-122.74728
...
310,260,5509,7123,47.684035,-122.647912
310,260,5509,7211,47.550236,-122.583084
where the first line is the header, and each row after that is a
location record. The order of the data in each row must be:
My biggest headache while building this app was the GPS and
the maps. Actually just the maps. I thought this would be the
easy part since virtually every app out there has something to
do with location services and mapping, but nooooo. Actually
getting the mapping info *was* easy, figuring out how to paint
a trail on said map was like pulling teeth. My problem was
painting those signal strength dots on the map. You see, I can
place markers on a map by using transparent layers and
painting whatever I want on that. Problem is, it seems like
everything out there is geared toward painting a fixed number
of markers on the overlay layer. I want to paint (potentially) an
infinite amount of marks -- who knows went the users will
stop? I thought I could just take a layer and just keep adding
marks to it and putting it back over the map, but it doesn't
work that way and finding out how it does work is like
searching for the Holy Grail.
Main Screen
PHONE
Number: This cell phone's number.
Phone Type: The device phone type (None or GSM)
Device Type: The unique device ID, for example, the IMEI for
GSM and the MEID for CDMA phones.
Sim Serial#: The serial number of the SIM, if applicable.
Software Version: The software version number for the device,
for example, the IMEI/SV for GSM phones.
Sub ID: The unique subscriber ID, for example, the IMSI for a
GSM phone.
Roaming: Returns YES if the device is considered roaming on
the current network, for GSM purposes.
International: Returns YES if the Sim Operator does not
match the Network Operator which will happen if
internationally roaming.
RSSI: Current signal strength the phone is receiving in dBm.
Bit Error Rate: The GSM bit error rate (0-7, 99) (or the CDMA
Ec/Io value in dB*10 depending on the technology).
EVDO (dBm, Ec/Io, SNR): As of this writing these parameter
do not appear to be implemented in the OS yet.
NETWORK
Operator: The alphabetic name of current registered operator.
Network State: Current network connection state
RF Network Type: The radio technology (network type)
currently in use on the device.
MCC/MNC: The mobile country code and mobile network code
used by the carrier.
LAC/Cell ID: Location area code and cell id (note - these are
not the carrier\'s actual ID numbers).
Data Activity: The current state of data traffic (IN, OUT,
NONE, INOUT).
Data State: The current data connection state (cellular).
Reselection Neighbors: The number of neighbors being
considered for selection as well as their individual RSSIs.
LOCATION
Lat: Your current latitude in DMS format.
Long: Your current longitude in DMS format.
Bearing: Returns the direction of travel in degrees East of true
North.
Speed: Returns the speed of the device over ground in
meters/second.
GPS Accuracy: Returns the accuracy of the fix in meters.
Site LAT: Latitude of the serving cell.
Site LONG: Longitude of the serving cell.
Dist to Cell: Distance to the serving cell. Note ~ If a site shows
a
distance of hundreds or thousands of kilometers (or miles)
away then the open source database you are
using cannot identify the site. This is beyond the control of the
app. Best accuracy is attained by
using a custom site location list uploaded to the phone from the
SD card.
WIFI
SSID: Returns the service set identifier (SSID) of the current
802.11 network.
BSSID: The basic service set identifier (BSSID) of the current
access point.
MAC: The phones MAC address.
Supplicant state: Return the detailed state of the supplicant's
negotiation with an access point
RSSI: Returns the received signal strength indicator of the
current 802.11 network.
Link Speed: Link speed in Mbps
Net ID: Each configured network has a unique small integer
ID, used to identify the network when
performing operations on the supplicant. This method returns
the ID for the currently connected network.
Preferences
Toggle 2G/3G
This button will open the Settings activity allowing the user to
set the phone to use only
the 2G network. This can save battery life and provide for
more accurate cell location (using the Google
or OpenCellID location services) since the 2G GSM network is
older and more established.
Vibrate alert:
The phone will vibrate every time it switches to a new serving
cell.
Sound alert:
The phone will play the default notification sound every time it
switches to a new serving cell.
Sector bubbles:
While in Live or Recorded Data a transparent blue coverage
bubble will be drawn around
the point of furthest coverage. The coverage bubble will
expand if the phone holds on
to a given site beyond the previous max coverage point.
Remember this is a rough coverage
estimate for a site. Remember: coverage in a given direction is
determined by buildings,
hills, foliage, and other clutter between the cell and mobile
unit.
Show RSSI:
This selection will leave a trail of signal strength dot markers
as you travel.
The marker color will indicate your signal strength at that
point. Solid red (no signal)
is about -113 dBm, yellow (moderate signal) about -84 dBm,
and green (strong signal)
about -59 dBm. Leaving this box unchecked will display a
single dot (with color coding
based on RSSI as well), but no trail will be left as you move.
Unit of measure:
Choose to display distances using the english or metric
(default) mode.
Screen color:
Choose either white text on a black background (Dark), black
text on a white background (Light), or white
text on a blue background (Blue).
Location service:
Set the location service used to determine your serving cell
location. Note ~ Google\'s location services
(the default) is increasingly becoming hit-or-miss, and
OpenCellID.org still has a relatively small
database of cell sites. If either of these options are not working
for you, and you have access
to site location data, you can place that data in a CSV file and
load those records into
the application.
1. Using your USB cable, plug the phone into your computer.
GPS refresh:
This is the time interval the phone\'s GPS will wait before
updating.
Try to balance this with the update distance to minimize power
consumption. NOTE ~
regardless of the refresh-time setting, the update will only
occur if you move
during that time period (see GPS update distance).
GPS update:
This is the minimum distance you must travel before the GPS
will send an update.
Try to balance this with the update time to minimize power
consumption. If you are
taking measurements while in a car you may want to use the
longer update interval
or else the GPS may run continuously. Remember, if you do
not move, the GPS will not
update even after the minimum refresh time has elapsed.
GPS power:
This sets the power consumption of the GPS while in use.
There is not
a lot of documentation on what these levels mean beyond the
obvious.
I leave it to the user to make that choice.
1. Using your USB cable, plug the phone into your computer.
Map Neighbors:
If selected, during Live Data display neighbor sites are shown
while the mobile is reselecting.
Neighbor sites are shown as gray squares with gray lines
running from the mobile's position to
the site. This preference works best while the phone is in 2G
mode. NOTE ~ If you see a neighbor Cell ID
of 65535 then this is a non-existent or unknown cell and it will
not be displayed.
Error messages:
Display minor error messages. For administrative use
primarily.
Recorded Data
Click Stats from the Menu options screen to bring up the basic
statistics. These stats
include distance traveled over the course of the recording,
average, minimum and maximum handover distance,
as well as the handover sequence. The handover sequence
shows the handover cell ID, the distance from
that cell, and the timestamp at the point of handover.
To save this data to the SD card press the menu button and
click Save. The file will be named
rfsignalstats_yyMMDDHHmmss.txt, where
'yyMMDDHHmmss' is the time stamp of the moment the file
was saved.
Records
Site records
Total number of sites in database. This table contains the CGI
and LAT/LON of sites you load into the phone.
RSSI records
Total number of data points you have collected.
Menu Options
Save Rec:
This will export the data collected to the SD card in the format
you have selected in the preferences screen.
Records:
The datadase maintenance screen is where you will load site
data into the app from the SD card.
You can also save or delete tracking data. It also provides a
count of the number of records
in the two database tables used in the app.
Pref:
This will take you to the preferences screen.
About:
This will take you here.
Go to Menu > More > One Cell Tracking, and enter the Cell
ID of the cell you wish to track and press the
'Start' button. Pressing 'Stop' cancels single cell tracking.
Version History
v2.1.11 Fixed and tested the map display update (was not
properly refreshing while in Live Data). Added 'One Cell
Tracking' that lets user track coverage of a single cell site.
With single cell tracking RSSI turns red if the serving cell is
not the tracked cell.
v2.1.4 If using Local site location data and the site is not in the
user database of sites,
then app will default to the Google location service. Fixed
Force Close bug caused by a wake lock being
released incorrectly.
v2.0.1 Fixed the data import to accept data collected with the
Donut version of this app. Put in a couple
safety dialogs when deleting site or rssi data. Using
NetworkOperator rather than subscriber id to identify the
MCC.
v2.0.0 This is the first version built for the Android Eclair OS.
It incorporates the new onSignalStrengthsChanged method in
Android v2.1 which includes Bit Error
Rate (BER) and Ec/Io. Renamed the app to reflect this change
and called it RF Signal Tracker (Eclair). Pre 2.x
versions will be known as RF Signal Tracker (Donut).
Corrected text sizing issue seen between myTouch and Nexus
One.
Added user adjustable rssi signal strength dot sizes. Added
complete drive test display feature.