ADS-B Range Testing

Maximizing Range

1. Line of sight

If you can't see the horizon in all directions from your antenna, your results will be more limited. With the stock RTL-SDR antenna and a horizon facing window, I was able to get near complete coverage beyond 400km.

2. Build a collinear coax antenna

Starting with this indoors, I would regularly see planes on certain corridors to 250km.

3. Add low noise amplifier

Flightaware started making their own RTL-SDR with a LNA marketed as a prostick. This increased my range to 350km.

4. Add a 1090 MHz bandpass filter

Also from flightaware, my own attempt at a stub resonator had considerably more insertion loss. Range reaches 380-400km.

Resutls below are inconsistent

These tests were mostly performed without a strongly fixed antenna position. Later I discovered a movement left or right on the window by 2cm can change my range from 270km to 240km.


With some logging, I can semi-automate GPS logs with `grep` and display the results with `gnuplot`!
nc dump1090host 30003 | grep ^MSG,3 > overnight.log
# read the overnight.log and output a text file with colums 'lon lat alt'  then sanitize them for local longitudes
grep MSG,3 gps-coax2-ppm-west.log |  awk -F , '{ print $5, $8, $16, $15, $12}' |sort -k 1,2 > movements.log


Since the antenna is between two major airports, I expected quite a bit of traffic, even indoors.

Firstly, the number of flights with full ADS-B transmitting locations is very low. During the daytime in 2014, less than 20% of the ICAO addresses received transmit MSG,3 with a valid GPS location. Couple this with there not being scores of high altitude planes in my area at all times and there are relatively few planes to watch.

Secondly, ADS-B works best with a line of sight to the aircraft. Operating indoors with any obstructions on the horizon (trees, buildings, mountains) will not be favourable.

My first guesstimates of range from inside of a westward viewing window seemed limited to less than 20NM with the stock antenna. From hearing other accounts of people getting more than 200NM of range, this was somewhat disappointing.

Fortunately, there are antenna designs, low noise amplifiers, and R820T gain settings which can help. The FAA has mandated most airspace to have ADS-B out capability by 2020.


In my antenna tests, I can't see a clear horizon in any direction. The antenna is also positioned in an eastward facing window which is relatively close to a number of trees and other structures.

Flight patterns also vary considerably day to day due to weather conditions. This makes repeatibilty over a number of hours necessary. Days or weeks would be better if you can wait that long.

Antennas tuned to 1090MHz

Tests related to the antennas are summarised on the separate page.

Software Tests

PPM corrections

Calibrating the RTL-SDR in my case gave a -160KHz shift to tune to the true 1090MHz signal. This increased the range and number of received gps locations considerably.

./dump1090 --gain 48 --net --net-beast --fix --aggressive --ppm 147 > 1090-coax2-eastppm.log 

Histogram comparing PPM

dump1090 --enable-agc

While I had audibly heard an improvement listening to FM radio with AGC, dump1090 is remarkably worse with agc. The maximum range detected was longer at 270km but this was a single point. The minimum range was reduced subtantially to more than a kilometer.

./dump1090 --gain 48 --net --net-beast --fix --aggressive --ppm 147 --enable-agc > 1090-coax2-ppm-agc.log

Histogram comparing AGC and PPM
Map comparing AGC range

1090 MHz Doppler Shift implications

With a plane heading towards or away (+/-) from the antenna at 926km/h ground speed would give a shift of (+/-) 945 Hz. This is a relief as I was concerned that it might lower my range for outbound flights. The PPM gives a -160KHz shift which is much larger than the -945 Hz doppler shift for a plane flying away.

(1090MHz - ( 1 (+/-) vel(m/s) / c(m/s) ) * 1090MHz ) = Doppler Shift (Hz)