Initial Release: October 2009
Latest version: 2.5.43, April 2016
If the app is installed on the device you are viewing this page on, launch RF Signal Tracker
Example of data exported from RFST to a KML file and imported into Google Earth.
Drive test through Seattle shows signal strength from green, to yellow, to red, and sector coverages
defined from that drive. Tower heights are all 100ft in the export and do not reflect actual heights.
THE BASIC IDEA
RF Signal Tracker is an engineering application for doing an impromptu hand-held *drive-test* with your Android phone. You can monitor and record the RSSI (received signal strength indication) for the phone as well as the serving cell locations, describe the cell site's zone of coverage, and save or playback that data. Some of the parameters displayed in the app are already provided on the phone (go to Settings -> About -> Status to see them). The advantage of this app is you can now save, map, replay, export and analyze that data. It's not TEMS, but it will do in a pinch.
The data is saved in a SQLite database on the phone and can be exported to a CSV, KML (Google Earth), or XML files. The CSV files can be imported back into the phone for review. In addition to signal strength, you also get the mobile's latitude, longitude, timestamp, and serving cell MCC, MNC, LAC, CellID, (or Base Station ID, Network and System ID for CDMA devices), the serving cell's latitude and longitude*, and network technology used (EDGE, HSPA+, LTE etc).
I have found that the serving cell location data from Google is a little spotty, at least for 3G. You can try locking your phone to 2G for better results (go to Settings -> Wireless controls -> Mobile networks, then check 'Use only 2G networks'). The OpenCellID.org service is not much better -- they actually have a terribly small database of cell sites -- but it's better than nothing.
PLEASE, Please, please, remember: this app is intended for engineers...engineers who read. So please do not email me (or leave comments on Google Play) saying things like, "The app says the tower is off the coast of Africa!" The purpose of this app is not to find cell sites, but to record data.
* Site locations are loaded separately.
would be the easy part since virtually every app out there has something to do with location services and mapping, but no. Actually getting the mapping info was easy, figuring out how to paint a trail onto 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 when the users will stop data collection? I thought I could just take a layer and 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. But enough bitching...
LIMITATIONS & KNOWN ISSUES
This application can be found in Google Play under "Tools".
The main tab displays administrative data for the app and is broken up into phone, network, location, and wifi
Status Bar: This bar, located at the top of the Main tab, contains the high level data parameters of signal strength, technology (EDGE, CDMA, UMTS, HSPA+, etc.), data activity, and the number of rssi records recorded. The status bar itself will change color from red to yellow to green with the change in signal strength.
RF/WiFi Toggle buttons: These buttons toggle the recording of RF cellular data and WiFi access points (green=on, grey=off). The number of data points recorded will appear in field between the buttons. The top line is the number of RF points collected, the bottom is the number of WiFi access points collected. The WiFi database records the mobile location and the signal strength recorded at that point, not the actual location of the access point.
DM button: Switch screen to the drive mode which displays an oversized signal strength, cellid, and technology readout. This will allow you mount the phone and easily view the essential parameters while driving.
Voice notification: With voice notification active, the app will periodically announce the signal strength, cell id, technology, battery level, the number of open hotspots in range, cell handoff, RF and WiFi data points collected, and if the phone has no service.
Number: The mobile's phone number.
Phone Type: The device phone type (None, GSM, CDMA)
IMEI/ESN: The unique device ID, for example, the IMEI for GSM and the MEID for CDMA phones.
Manufacturer: Maker of the device
Model: The actual model name used by the manufacturer.
Sim Serial#: The serial number of the SIM, if applicable.
Sim State: Returns a constant indicating the state of the device SIM card.
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.
Signal Strength: 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: Evolution-Data Optimized. A telecom standard for the wireless transmission of data through radio signals,
typically for broadband Internet access. It uses multiplexing techniques including CDMA as well as TDMA to
maximize both individual users' throughput and the overall system throughput.
Ec/Io: The ratio of received pilot energy, Ec, to total received energy or the total power spectral density, Io.
SNR: Signal-to-Noise Ratio. a measure used in science and engineering to quantify how much a signal has been
corrupted by noise. It is defined as the ratio of signal power to the noise power corrupting the signal.
Battery Level: Displays the current battery level. The app will shut down at a level set by the user in the preferences screen.
Operator: The alphabetic name of current registered carrier.
Network State: Current network connection state
Technology: The radio technology (network type) currently in use on the device.
MCC/System ID: The mobile country code / cdma system identification number, -1 if unknown.
MNC/Network ID: The mobile network code used by the carrier. / cdma network identification number, -1 if unknown.*
LAC/Base Station ID: Location area code and cell id. / cdma base station identification number, -1 if unknown.
Cell ID/Base Station ID: Android presents the cellid as a hexidecimal number. This is converted to decimal for the user.
Cdma base station identification number, -1 if unknown.
Cellname: Optional human readable cell name.
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 (still working on this).
Call State: The current call state (Idle, Ringing, Offhook)..
Country Code: The ISO country code equivalent for the SIM provider's country code.
Known neighbors: A list of neighbors the app has previously recorded. While the app is in the Main, Map, or Chart tabs
it is automatically recording the handoff sequence. It is this sequence which is displayed here.
Site database: Indicates whether you are using Google, OpenCellID, or your own Local site database to
determine site locations. This last state is intended for engineers employed by the carriers since site location
data is not generally available to the public.
Best Provider: The best provider for determining your location. This is usually network (coarse) or GPS (fine)
based on your environment. If the GPS is blocked (in a building for example) the app will default to the cell network
to determine your location. Network location is less accurate, but quicker than GPS. The provider is determined
by the app.
Mobile Latitude: Your cell's current latitude in DMS format.
Mobile Longitude: Your cell's current longitude in DMS format.
Mobile Heading: Returns the direction of travel in degrees East of true North.
Mobile Altitude: Height above sea leave as determined by the GPS sensor.
Site Bearing: Returns the direction to the site from the mobile 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 Latitude: Latitude of the serving cell.
Site Longitude: Longitude of the serving cell.
Distance to Site: Distance of mobile to the serving cell. Note ~ If a site shows a distance of hundreds or thousands
of kilometers (or miles) away then the location service you are using (Google or OpenCellID) cannot identify
the site. Try setting the phone to use only the 2G network. Best accuracy is attained by using a custom site
location list uploaded to the app from the SD card. (see 'Select and load site records' under Database Maintenance).
Data Activity: The current state of data traffic (IN, OUT, NONE, INOUT, DORMANT).
Data State: The current data connection state (cellular).
Mobile Rx bytes: The total number of bytes received through the mobile interface.
Mobile Tx bytes: The total number of bytes transmitted through the mobile interface.
Total Rx bytes: The total number of bytes received through all network interfaces.
Total Tx bytes: The total number of bytes sent through all network interfaces.
Mobile Rx packets: The total number of packets received through the mobile interface.
Mobile Tx packets: The total number of packets transmitted through the mobile interface.
Total Rx packets: The total number of packets received through all network interfaces.
Total Tx packets: The total number of packets sent through all network interfaces.
WiFi Enabled: Returns the WiFi state of the device
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.
WiFi Networks Found: WiFi access points within range of device.
trail of color coded signal strength data points. As you travel, the serving cell's coverage will be described. The Map
tab shows a map centered on your location, and any cell sites the device is now or has been attached to. A light blue
transparent wedge describing the coverage zone will expand and grow as long as the user is attached to that cell. Also,
if WiFi has been enabled, the strongest WiFi hotspot will be shown below the user's location.
Stats such as signal strength, measured horizontal beamwidth, heading, CGI, site bearing, and distance are displayed at the
Sites can be editted by long pressing the map. A dialog will appear and display options based on whether you press
an empty space or a site icon. The user will have the option to attach/detach cells to or from sites and relocate sites
(See 'Site Survey' for more details).
Note: there is a menu option (Menu -> More -> Erase cell coverage) unique to the Live Tab. If selected this will
temporarily erase the coverage zones generated by the app. This is useful if redefining site locations and old
coverage areas no longer apply (the feature is still being worked on).
by a vertical line extending from the handoff point to the label. The wifi signal strength line will show the strongest
hotspot signal received with that hotspot's name marking the moment of change over.
The legend is displayed in the upper left and shows the cell ID, technology, RF and wifi signal strengths. The timespan
(along the x-axis) of the chart is adjustable from 30 seconds to 5 minutes with 60 seconds being the default. You can
also take a snapshot of the chart at any time and share it with someone.
location (if "Show serving cell" display is selected in preferences). The pane at the bottom of the screen shows Signal
Strength, the time stamp of the record, the bearing of the site (in degrees east of north), the distance to the site in
kilometers or miles, the LAC, Cell ID, and technology.
The Seekbar lets you move to any point in the collected data.
Got to Menu > Stats to bring up the basic statistics. These stats include distance traveled over the
course of the recording, average 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, and signal
Go to Menu and 'Reply Speed' to set the speed of your recording.
To save this data to the SD card press the menu button and click Save. The default file name will be
export_yyMMDDHHmmss.txt -- where 'yyMMDDHHmmss' is the time stamp of the moment the file was saved
-- and saved to the 'rfsignaldata' directory.
Import Site Records
Let's the user import CSV formatted site data. This data will be added to any data already in the database.
This is where you load the data containing the site location info. This data must be in a CSV file located
in the 'rfsignaldata' directory of the SD card. Data must be in the order: MCC,MNC,LAC,CI,LATITUDE,LONGITUDE.
Leave no spaces. LAT/LON must be in decimal format (example: 47.512017,-122.608083).
Export Site Records
Let's the user export CSV formatted site data. This is useful for saving edited site location data.
List cell site records
List all the sites in the database. Selecting a site will display the site on the map and any surrounding sites up
to a distance selected by the user.
Delete site records
Remove all site records from the database. If you want to clean out the data and start over, or load a different set
this is what you use.
Import RF RSSI data
Reload previously saved signal strength data. This data will be added to any data already in the database.
Data that you export (in CSV format) can be reloaded, this is were you do that. The file must have a header with
data in the order: _id,latitude,longitude,rssi,logdate,mcc,mnc,lac,cellid,site_lat,site_lng,tech. Where _id is
the record index (an integer), latitude and longitude is the user position and multiplied by 1,000,000
(example 47576047,-122168140). This is necessary to eliminate rounding if a float or double is used. These numbers
are converted after import. 'logdate' can be in any standard format but try to have it to the second. site_lat
and site_lng are the site latitude and longitude of course. These numbers must also be multiplied by 1,000,000.
tech is the technology used and can be any string value.
Long pressing the file name launches an option screen to Rename or Delete the files.
Delete RF RSSI data
Deletes all signal strength records from the database.
Save RF RSSI data
Save recorded data to XML, Excel CSV, or Google KML file. Saves recorded signal strength data to a file under the 'rfsignaldata' directory.
Import WiFi data
Load recorded wifi data.
Delete WiFi data
Delete any recorded wifi data from the database.
Save WiFi data
Save collected wifi data. Shows the total number of records.
List WiFi Hotspots
List all WiFi hotspots recorded in the database. Hotspots can be filtered by SSID or by security settings. Selecting an item
will map the strongest received signal for that hotspot.
Known Neighbor List
This is NOT a list of neighbor cells from the base station, but the handoffs recorded by the device.
Export Neighbor List
Export the complete list of neighbors collected.
Clear Neighbor List
Delete the current list of neighbors in the neighbors database.
Review test notes
Review and edit the notes created during RF data collection.
Playback recorded data
Play back recorded data currently in memory. Loading new data into memory requires restarting the app
before playing back.
Share your data!
Send a site, signal strength, or wifi data file as an email attachment.
Show a map of all of the recorded RF data points.
Clear all data points
Delete all RF and WiFi data points from the database.
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.
The phone will vibrate every time it switches to a new serving cell.
The phone will play the default notification sound every time it switches to a new serving cell.
Show serving cell:
The application will attempt to identify the serving cell's location. If selected, the serving cell will appear as
a blue dot with a black line connecting it to your current position.
While in Live or Recorded Data a transparent blue sector coverage will be drawn around the point of furthest
coverage. The sector coverage will expand if the phone holds on to a given site beyond the previous max
coverage point. Please note that this is a rough coverage estimate for a site. Coverage in a given direction is
determined by buildings, hills, foliage, and other clutter between the cell and mobile unit.
Show Signal Strength:
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.
RSSI dot size:
Set the size of the rssi signal strength dot on the map.
Set the site database 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.
To load site data:
2. Slide down the notification bar at the top of the screen.
3. Select 'USB connected' under Ongoing events and mount the card. The phone will appear as a new drive
on your computer.
4. From your computer, copy the CSV file to the "rfsignaldata" directory on the SD card. Please note, earlier
versions of the app had users place their data in the root directory. Most of these files were automatically
moved after the v1.2.4 upgrade, but if you have any data still in the root you will need to move it.
5. Unmount the phone and load the data into memory by selecting Menu -> Records in the app. In the
Records screen select the items 'Load site records (csv)' or 'Load RSS data (csv)'.
NOTE: The site data must be saved in a CSV file where the first line is a header. The data must be in the
order: MCC, MNC, LAC, CELLID, LATITUDE, LONGITUDE. Latitude and longitude are in decimal format
(example: 47.512017,-122.608083) Be aware that 6,000 records can take about 3-minutes to load and
take up about 500kb of memory. Once loaded you should not need to reload except to correct data or
add another market.
Choose either the standard Map view or Satellite overlay map (just like in Google Maps).
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).
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.
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.
Center map on user:
The map will scroll to the users location. As you travel the map will constantly shift to display that user local.
If using the site survey feature you may want to uncheck this feature since it will make selecting a site icon
easier (the screen won\'t move under your finger).
Export file format:
Data collected through 'Log data points' or while in 'Record' mode can be saved to either an XML or CSV file
format. Files are saved to the root directory of the SD card under the name 'export_yyMMDDHHmmss.xml'
or 'export_yyMMDDHHmmss.csv', where 'yyMMDDHHmmss' is the year, month, day, hour, minute, and
second the file was saved. You can copy to your computer by following these steps:
1. Using your USB cable, plug the phone into your computer.
2. Slide down the notification bar at the top of the screen.
3. Select 'USB connected' under Ongoing events and mount the card.
4. At this point you should see the phone's SD card appear as a new drive on your computer.
Open it and you will see your exported file. Copy to your computer.
5. Make sure you unmount the card before removing USB cable.
Current battery level:
When the battery drops below the indicated level the app will shut down. You will
not be able to restart it until it is recharged above this level.
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.
Display minor error messages. For administrative use primarily.
Sticky cells (experimental):
Forces the phoneStateListener to reset if the mobile travels over 2.0km and the RSSI increases by 6dBm without
ever handing over to a new cell.
Fix the device orientation to portrait or landscape. Any change will take place after the app is restarted. This is
because, in Android, reorienting the screen causes the activity (current screen) to restart and was problematic
for the app.
WiFi Network Scan:
Display nearby WiFi access points along with signal strength. This is for information purposes only at this point.
Occasionally during recorded data playback, some data points will appear well outside of the main track of recorded points.
These outliers can spoil the coverage zones being drawn. By checking this option, these outlying data points will not appear
during playback. This app determines outliers by measuring the mobile speed. If the speed between two points exceeds 100mph,
then the new data point is flagged as an outlyer and skipped.
Using Androids built in Text-To-Speech (TTS) capability, the RFST can now speak to you, eliminating the need to watch the screen
for changes. Check the box to activate and signal strength changes, handoffs, technology changes, and no services announcements
can be heard over the phones speaker. You may be prompted for a one time install of the speech engine.
in preferences), key data points, and a graph of signal over time. The pane at the bottom of the screen shows RSSI, the
time stamp of the record, the bearing of the site (degrees east of north), the distance to the site in kilometers, and the
LAC and Cell ID.
The Seekbar lets you move forward or backward through the 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.
Click Filter to see technology, handoff points, data states and signal strength.
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.
This will take you to the preferences screen.
This will export the RF data (not Wifi, that has to be saved through the DB tab) collected to the SD card in the
format you have selected in the preferences screen.
Mapshot will take a screen shot of the Map (or whatever is on the screen when presented this option). The image
will be saved to the rfsignaldata directory on the device, and a popup window will appear giving you the chance
to share the image on Twitter, Facebook, by email, or whatever app you can share on the device.
The calculator tab gives the users a fast and dirty EIRP/ERP and free space loss calculator. No numbers need beentered. Simply slide the given bars for gain, loss, distance, etc., and the numbers are calculated immediately.
I originally put this in because I was doing a lot of power density analysis and it seemed related. I leave it
to the users to decide on its usefulness.
Recorded drive test data is displayed in its entirety showing Signal Strength, serving cells and sector
coverage. This is a static display of data and you must have recorded data in the database to show anything.
Let's you share your signal strength readings and location with Twitter, Facebook, email, or anything
your device is connected to. For the truely anal amoung you.
One Cell Tracking:
With 'One Cell Tracking' users can track the coverage of a single cell site. With single cell tracking RSSI turns red
if the serving cell is not the tracked cell. Standard colors show otherwise.
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.
Set map to satellite or standard map mode (default).
Fix the screen orientation to portrait or landscape. You may have to restart the app before this takes effect.
Display nearby sites
Select this item to display sites within 2km of your position. This works best with your own Local data.
Erase cell coverage:
Erase coverage zones painted on the map (this feature is a work in progress).
have access to a complete and accurate site location database. Therefore, I have added a feature which will allow
a user to insert a site on the map, and in turn the site database, by simply pressing a spot on the map. Not perfect, but
it does minimize the short comings of the open source location services on the web. Instructions are below.
Long pressing (2 seconds or more) an empty spot on the map will launch a dialog which will give the user the
option of inserting the current serving cell into that spot on the map. This will allow users to define site locations
even if they do not have access to specific site location data.
Long pressing a site icon on the map will launch a dialog giving the user these options:
Move XXXXX to selected site - This will attach the current serving cell to the site
represented by the selected icon. Often, Google will show two sites as separated by a few dozen meters when, in fact,
they are sectors on the same site. This option lets you bundle these cells together on the one site.
Move selected site to cell XXXXX - This will move all the sectors on the selected site
to the same site as the serving cell. Like the first option but in reverse.
on the selected site from the database. If you are using the Google or OpenCellID location services then the cell
will appear in its original position (If you handove to that cell, the app will first search its database for the cell
and then go online to find it. If it is successful it will store that cell location back in its database). If using
Local location then the site is deleted from the database, but can be reloaded from the original data file.
Remove XXXXX from selected site - This option removes the specific cell from the selected
site. All other cells remain unchanged. This is used if you attach a cell to the wrong site.
The app may take several seconds to show any update made by the user in this way.
Note: A black line will always extend from the user location to the serving cell.
v2.5.41 Snapshot function removed -- screen shots can be taken by pressing Power + Volumn Down.
v2.5.40 Increased the RSSI dot size. Returned coverage bubbles to the map. Set the main map to appear above the data display rather than behind it.
v2.5.38 Restored the display of RF coverage zones. This was needed due to Google's removal of drawArc method on the Android map. This is a work in progress.
v2.5.37 Using the new Android Permissions process. Basically, most permissions are being granted automatically, but a handful of permissions, (ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, READ_PHONE_STATE, WRITE_EXTERNAL_STORAGE), must be granted in the code. Found source of fatal error in the Chart activity that was crashing app: mNotificationManager was being initialized inside an IF statement and later set. Was turning on a variable that was not always initialized. Fixed map error caused by referencing RF and WiFi record buttons before they were initialized.
v2.5.36 Added the Cell ID bit-mask, 0xffff, to LAC in GSM. Validating that handoffs are captured.
v2.5.35 Corrected more errors causing maps to not display. Added a 'Previous CID' parameter to show the last serving cell -- this is in addition to the current serving cell. Added 'Arbitrary Strength Unit' to main screen. App now compatible with Android 5.1.1 and 6.0.
v2.5.11 Major reworking and bug fix of the Map.
v2.5.9 Since Android's neighbor cell information is problematic, the app now creates its own database of cell handoff data as you travel. This data is collected automatically in the background. As you travel, the app will note the current and previous cells when a handoff occures, and save that data to a database for later retrieval.
v2.5.8 More bug fixes caused by use of the cellname feature.
v2.5.7 Fixed crash on startup while in Map or Chart tabs.
v2.5.6 An optional cell name may be included in the site location data loaded into the database. Simply add the cell name after the longitude and change the header to: mcc, mnc, lac, ci, latitude, longitude, cellname. Again, this is optional, you can continue to use your current site files (See About the App or visit the app's website for instructions). Trying new neighbor display algorithm. Long press a cell in the site list (DB tab) to get directions to that site.
v2.5.5 Corrected the \'View not attached to window manager' error. This error caused the app to crash if the orientation changed while a progress dialog was displayed. Fixed the text box sizing problem on the SlidingDrawer on the Map tab.
v2.5.4 Found a bug in Chart with caused it to run at double normal speed. Bug fixes.
v2.5.3 In order to better understand crashes, exceptions, and force closes, RF Signal Tracker now uses Google Analytics
to collect anonymous usage statistics for the app. These counters will help determine exactly how the app is used and
were problems may exist. No identifying information about the device or user is collected or sent. To Opt-Out of the collection
go to Preferences and check the box next to Google Analytics Opt-Out.
v2.5.2 Increased the minimum OS level needed for the app from Android 2.1.x to Android 2.2.x. Traffic stats now included
in Main tab under Traffic group. Transmitted and Received traffic bytes now included in recorded data. Testing a new method
for pulling LTE signal strength.
v2.5.1 Changed the application\'s sleep settings. The application will now remain on at full brightness all the time. In the
chart, open hotspot names will be bracketted by asterisks. Example: *NAME*. Removed timescaling for the chart, but
expanded and made the chart scrollable.
v2.5.0 App now includes the ability to record data at specific timed intervals. Warning: this can produce very large files,
use with caution! Go to Preferences > Recording interval to set. Signal strength can now be viewed over time in a XY line
chart. RF signal strength will appear in green. The magenta curve indicates the strongest wifi signal in range. The time
scale for the chart is adjustable.
v2.4.6 Update of the Spanish localization text. Thanks Augusto! Moved the data panel, at the bottom of the Map screen,
to a sliding drawer. Fixed site selection bug. Added function to take snapshot of maps, save to sd card and share.
v2.4.5 Bug fix for activity that lists files on the SD card. Added new drive mode screens.
v2.4.4 Darkened the sector coverage color. Minor adjustments to the voice notification timing. The map will not update
below -102 dBm. This will improve performance when viewing the map by not demanding map tile updates when signal
strength is at its worse. Fixed bug calling the last Tab used.
v2.4.3 Big Picture display can now be filtered for handoffs, technology, and data activity as well as rssi. This allows the
user view these changes graphically. Fixed a screen orientation bug that causes a force close if device was not oriented
correctly. To turn off coverage zones in Google Earth KML file exports, uncheck 'Sector coverage' in Preferences.
v2.4.2 Text To Speech (TTS) incorporated into 'Main' and 'Map' tabs. Voice notification of handoffs, technology change,
battery level, etc. (see Preferences to activate and select language). Record notes can now be added while collecting
data. Add observations, take note of dropped calls, service outages, etc. New \'Drive Mode\' view added to Map and Main
tabs. Press the 'DM' button and show signal strength, cell id, and technology in large font, good for drive tests where
viewing details is difficult.
v2.4.1 Corrected bug in KML file export that caused exports to fail if the recorded signal was -200 dBm.
Outlying data points can now be eliminated from playback (see preferences).
v2.4.0 Moved calculator from the tab to the Menu group and switched the database activity to the Calc tab. RFST
now includes a war driving feature which lets users collect, search and map WiFi data. Changed 'Device Type' to
'IMEI/ESN'. Changed nearby site display (Menu > Display nearby sites) to show sites within 2km of user location rather
than serving cell. Moved the record button to address a bug caused by having it in the menu. Transparency of the data
fields on Map screen is adjustable (Menu > More > Data field trancparency).
v2.3.4 Signal strength, technology, data activity, and data points recorded now in top status bar of Main tab.
Recorded data now includes device manufacturer and model. Any RSSI data will be saved as 'v2_3_3_rssi_database.csv'
in the rfsignaldata folder on the sd card. The Main screen now includes the ISO country code equivalent for the SIM
provider's country code. Created a cleaner display of data fields on maps.
v2.3.3 Corrected bug in the recorded data screen. Corrected signal strength reading when no service detected.
Background recording will start automatically if user exits while recording. Added median RSSI to statistics
calculated in recorded data stats. Network type now includes iDen, EVDO B, LTE, eHRPD, and HSPA+. Data files
can be shared as email attachments.
v2.3.2 Application now localized for French, Spanish, Portuguese, and German! Please let me know of any odd
translations (I used Google Translate...that's my excuse).
v2.3.1 Users can populate known cells within 2km of serving cell (Menu -> Load nearby sites).
Cell site location optimization searches for sequential cell IDs within a given distance of each other and aligns
their LAT/LONs. See (Menu -> List cell site records -> Menu -> Optimize site locations) in the Live tab. Cell IDs
no longer overlap. Serving cell ID shown in red. Fixed display bug when viewing Big Picture from recorded data
playback. Fixed list focus in preferences screen.
v2.3.0 Clarified and improved cell site redefinition including messages returned - serving cell can be attached to
a selected site or vise versa and sites can be removed. Google and OpenCellID site locations are now saved to the
app database for faster retrieval and data modification. Site list can be exported. Individual sites in the list
can be mapped along with neighbor sites within a specified radius. Included list of WiFi access points detected
along with signal strength in main screen. Updated the Help and About screens for the app. Fixed vibration and sound
v2.2.10 Corrected error caused by user performing an Add/Remove when no site exist in database. Fixed
screen orientation bug. Added Free Space Loss to calculator. Mobile heading now determined by device compass.
Compass overlayed on Live data map.
v2.2.9 Improved method for importing data (site or signal strength measurements) into the database. If the
GPS provider has not been available for more than 45 seconds the GPS is re-initialized. Can now import site
data from Celltrack 3.0. Users can define or remove site locations by long pressing the map (at least 2 sec)
and following dialog commands. Long pressing an icon will launch a dialog asking if you want to remove that
site. This will let the user define site locations if all other meathods fail.
v2.2.8 Corrected a bug in identifying the CDMA network operator. Improved initial Site location determination
allowing automatic cellular network or GPS location acquisition (you\'ll find yourself on the map quicker).
Removed GPS and network selection from preferences. Reduced max gain and loss in ERP calculator to 30dB.
Fixed minor bug in site bearing (was showing bearings from 180° to 360° as -180° to 0°).
v2.2.7 Updated the layout of the Main screen -- cleaner, easier to read. Can now share basic stats
with the world! Post current signal strength, carrier and location to Twitter, Facebook, email or whatever
communications app your device has. Better GPS initialization. Serving cell neighbor list is more persistent.
v2.2.6 Tabbed screens introduced. Had to rework the relation between the activities involved.
Added an informal ERP calculator. Use a slide bar to do a fast ERP/EIRP calculation using power, gain and line loss.
Better GPS and phoneStateListener shut down -- no more hanging GPS!. Fast scroll bar added to file list screen.
v2.2.5 User can now manually set screen orientation (Menu > More > Screen orientation). Adjusted
sticky cell reset routine (still experimental). Found bug in the sector coverage paint routine
(mixup between degrees and radians). Several little bug fixes.
v2.2.4 Screen orientation fixed to portrait. This is done to eliminate app restarts which happen
whenever the orientation changes. Added switch in preferences to turn off sticky cell reset -- this
feature is for testing only. Playback speed of recorded data adjustable by going to the menu button.
v2.2.3 Added condition to prevent display of bogus site data such as Lat=0.0 and Lon=0.0 or a
site more than 50 km from mobile. Improved coverage radius calculation. Removed the sector
coverage offset option under preferences since this is no longer needed. Also added a feature to
break the connection from a "sticky" cell connection. If the app holes a connection for more than
2.5km from the initial handover point and the power has increased by 6dBm then the phoneStateListener
is disconnected and restarted.
v2.2.2 After an extended re-introduction to trigonometry I was able to develop a slightly better
bearing method in my code which, in turn, improves the sector coverage.
v2.2.1 Included ability to add a sector orientation offset (See Preferences). This will patch the
bug reported showing sector azimuth being 90 degrees off while I investigate a solution. The default
offset is 0 deg.
v2.2.0 Changed coverage bubbles to sector bubbles. Each cell\'s coverage is painted as you travel
showing sector orientation and distance. Altered the database to save data state and data activity.
Modified the Recorded Data screen with a slightly updated interface using a SeekBar and Stop/Play
button. Data plays continuously on a loop. Fixed map mode bug and other fun things.
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.10 Fixed map update bug.
v2.1.9 Added option to select a location provider. User can choose to have their location provided
GPS or the cellular network. Worked on several other tiny bugs. I think the Google people
tightened up SQLite because doing things like not closing Cursors is a big no-no now.
v2.1.8 This update effects only Android 2.2 (Froyo) and higher users. App can now be moved to the sd card.
v2.1.7 Fixed error message checkbox bug. If the app cannot find a site\'s location it zeros out the
Since 0.0N, 0.0W is a point off east Africa, this was causing much confusion with users,
so I made a small
fix to the display of site location info. Corrected some typos.
v2.1.6 Added check verify that SD card is present.
v2.1.5 Added option to export data to a Keyhole Markup Language (KML) file format which can be
imported into Google Earth. Users can now edit output filenames. Moved the Live Data and Recorded
Data buttons on the main screen to the bottom of the screen for easier access.
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
v2.1.3 Added neighbor site display to Live Data map. User toggles display in preferences. This
works best in 2G.
v2.1.2 Added check for international roaming. This checks if the MCC of the Sim operator equals the
MCC Network operator. A non-match would mean the phone is roaming internationally. For now, this
indicator has only been added to the main screen. Roaming state is now one of the parameters saved to
v2.1.1 Application will no longer shut down if it is below the users minimum battery level setting,
but on AC power. Also fixed a bug in the minimum battery level fail-safe routine. Included battery
level in phone stats on main screen.
v2.1.0 Remodeled preferences screen. Created a service to allow for data collection in the background.
This new service includes a minimum power level fail-safe to keep from depleting the battery.
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.
v1.2.9 Incorporating the new onSignalStrengthsChanged method for Android v2.1 which includes Bit Error
Rate (BER) and Ec/Io. Corrected text sizing issue seen between myTouch and Nexus One. Added user adjustable
rssi signal strength dot sizes. This version does not support CDMA and is intended for the Android Donut OS.
v1.2.8 Button formatting fix for Droid phones. Sim SN displays 'n/a' for non-GSM phones.
v1.2.7 Bug in the file delete and rename method fixed. Corrected wording in Help section.
v1.2.6 Bumped the minimum Android version required to v1.6 (Donut) after discovering the cdma libraries
I was pulling do not exist in v1.5, and was crashing the app for those users still on Donut.
v1.2.5 Added more graceful cdma error handling.
v1.2.4 Improved record count query to eliminate duplicates; Fixed bug in menu Record button.
Showing cellID on map. Moved data files to new subdirectory. Users can delete or rename data files from app by
'Long Pressing' a listed file. Adding initial parameters for CDMA phones (experimental).
v1.2.3 WAKE_LOCK added to prevent app from sleeping during use. Tweaked the Google location service and discovered
better results by using the 2G network only.
v1.2.2 Re-ordered selections in the preferences screen and added english-metric distance display in pref as well.
App will not exit if RF signal not found, it just won\'t be able to ID cell towers.
v1.2.1 User can select map centering on current position or a point between the users position
and the site; File import verification; MNC fix for T-Mobile CGIs; Coverage bubble
around cell sites (see preferences screen); Basic statistics through the menu on the Recorded Data screen.
v1.2.0 Recorded signal-level data playback.
v1.1.1 Graceful exit if user has no wireless or GPS service.
v1.1.0 Users can load custom site locations from their SD cards for more accurate tracking.
v1.0.3 Converted displayed CellID from Hex format to decimal format; User can choose location service
used to determine the serving cell location; modified data storage to take complete LAT/LON.
v1.0.2 Included network technology in database export. Filtering out erroneous serving site data.
v1.0.1 Fixed database delete from menu. Adjusted default preferences.
v1.0.0 Initial build