Creating a Signal Strength Heatmap with an RTL-SDR

Over on Reddit, user tautology2 has linked to his project which is software that can create a heatmap of signal strengths. His software uses the data that is output from RTLSDR Scanner which is a program that will collect signal strength data over any desired bandwidth and at the same time also record GPS coordinates using an external GPS receiver. RTLSDR Scanner can also create a heatmap by itself, but tautology2’s heatmap is much clearer and has good web controls for choosing the heatmap signal frequency.

Tautology2 writes about his program:

Eartoearoak’s rtl-sdr scanner can save GPS location data along with spectrum samples, I had put USB GPS unit and SDR’s antenna on the top of my car, put my notebook with running scanner on the front seat and driven it around.

Then I saved results both as an image sequence (which you can see at the bottom of the map) and as the raw data in json format. My script (scan2web.rb[3] ) parses raw data, filters out redundant samples (which were captured standing at the traffic lights etc) and computes normalized spectrum power for eight 300-KHz bands for each spatial sample. Results are saved in heatmap.json[4] , which is rendered using Google maps v.3 heatmap API.

The Reddit thread discussing his project can be found here.

Tools used for making the heatmap: Laptop, RTL-SDR with stock antenna and a GPS.
Tools used for making the heatmap: Laptop, RTL-SDR with stock antenna and a GPS.
Heatmap of GSM Signal Strengths
Heatmap of GSM Signal Strengths
Notify of

Inline Feedbacks
View all comments
Kevin Bentler


This question will surely show my ignorance… Does the software create a file with coordinates and signal strengths that can be accessed and used direct an autonomous vehicle? Thanks.


If you do not mind your autonomous vehicle crashing into people and buildings, because one or more people moved a piece RF equipment that they own, or if it was raining, or snowing, then maybe..ish ?

In may ways it would be like trying drive a car while blindfolded just listening to sounds around you, for where you should be pointing the searing wheel, and how far down your foot should be on the accelerator. It might work once, or it might never work.

Maybe the RF information could be given a low priority and cross correlated with LiDAR and image pattern recognition. Like how many billions of CAPTIAS (click on all the signs, click on all the cars, click on the houses, click on all the vans, click on …) has google harvested over the last few years to build training data sets for their AI’s.


Reworded: Does the software create a file with coordinates and signal strengths?


You mean like a file containing GPS locations and RSSI at a few frequencies. The kind of file that was mentioned and linked to in the above article


I’m actually doing a semester project, which is very similar to yours.
I made an Android app that collects all available WiFi RSSI together with the GPS coordinates in a JSON-file. The app uses the smartphone WiFi and GPS sensors for that and save the file in the phone internal storage. When the measuring is finished the app helps the user to upload the JSON-file to Dropbox.
From PC side, the user uses a webpage (JavaScript) to fetch that JSON-file from Dropbox, read it, and uses its content to draw a heatmap image on Google Maps.
I would appreciate it if you could help me programming the heatmap colors according to the RSSI levels, so I can show only one color (Green, Yellow, Red) instead of gradient.


Its called Wigle…..

Download the apk, decompile, copy-pasta code.


Love it! Well done!! Have you ironed out all the bugs?