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

One comment

  1. Akram

    Hi,
    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.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>