Track aircraft near you

You need a USB radio stick. A V3-style RTL-SDR receiver (RTL2832U chip, 0.1 MHz–1.7 GHz, TCXO, SMA antenna socket) plugs into a computer or an Android phone.

RTL-SDR V3 receiver on AliExpress →

Affiliate link: if you buy through it, Max Intel may earn a commission at no extra cost to you. The radar supports sticks with the R820T, R820T2, R860 or R828D tuner, which covers RTL-SDR Blog V3 and V4 style sticks. Sticks with other tuners, such as the FC0013, will not work here.

First-time setup is a little technical, but manageable. Pick your system:

Windows (one-time driver swap with Zadig)
  1. Plug in the stick and wait for Windows to finish setting it up.
  2. Download Zadig from zadig.akeo.ie and run it as administrator.
  3. Open Options › List All Devices. On Windows 10 or 11 you may also need to untick “Ignore Hubs or Composite Parents”.
  4. Pick Bulk-In, Interface (Interface 0). The USB ID should read 0BDA 2838 00. Do not pick Interface 1.
  5. Check that the target driver says WinUSB, then press Replace Driver.

Take care in Zadig: picking the wrong device can replace the driver for your keyboard or mouse. These are RTL-SDR.com’s steps. Other radio programs such as SDR# use the same driver, so you only do this once.

Mac, ChromeOS and Android (usually no setup)
  • Mac and Chromebook: plug in the stick and press Start. These systems usually work without extra drivers.
  • Android: use Chrome and a USB-C or OTG adapter. Android asks whether Chrome may use the device; tap OK. The stick draws power, so the battery drains faster.
Linux (stop the TV driver, allow access)
  1. Linux loads a TV-tuner driver that grabs the stick. Unload it for now with sudo rmmod dvb_usb_rtl28xxu, or block it permanently:
    echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf
  2. Let your user account open the stick by adding a udev rule, then unplug and replug it:
    echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE="0660", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/60-rtl-sdr-webusb.rules
    sudo udevadm control --reload-rules
  3. Avoid Snap or Flatpak versions of Chrome, which can block USB access.
Antenna tips for 1090 MHz
  • Put the antenna as high as you can, ideally at a window with a clear view of the sky. Height matters more than anything else.
  • The small whip that comes with most sticks works for a first test. A simple antenna cut for 1090 MHz picks up planes much farther away.
  • Indoors, walls cut the range a lot. Near an airport or under a flight path you will see more planes.

Everything runs in your browser. Nothing you receive is uploaded. The map is optional, and only it contacts another server.

How does it work?

The stick turns radio into numbers, and the page finds the aircraft messages in them. The browser talks to the stick over WebUSB using the open-source webrtlsdr driver webrtlsdr by Jacobo Tarrio, Apache-2.0 (read 23 Oct 2026). It tunes to 1090 MHz, reads two million samples a second, and a JavaScript port of dump1090’s decoder picks out Mode S messages and checks each one’s checksum mode-s-demodulator by Thomas Watson, MIT.

Positions are sent in two halves, called even and odd. The page pairs them to work out latitude and longitude without needing your own location. The idea of doing this in a browser is not new: a WebUSB ADS-B demo was published in 2022 RTL-SDR.com: a WebUSB-based ADS-B decoder (30 Sep 2022).

Why is setup a little technical?

Because Windows and Linux hand the stick to the wrong driver by default. The fix is a one-time change.

Which RTL-SDR sticks work?

Sticks with an R820T, R820T2, R860 or R828D tuner. The webrtlsdr driver supports R820/828/860-family tuners webrtlsdr by Jacobo Tarrio, Apache-2.0 (read 23 Oct 2026). Older FC0013 sticks tune only to about 1100 MHz, and RTL-SDR.com reported that stock FC0013 sticks were poor for ADS-B RTL-SDR.com: FC0013 tuner posts (read 23 Oct 2026). If the page says your tuner is unsupported, the stick is the issue, not your setup.

What can I do with the data?

  • Identify an aircraft. Click the ICAO hex code to open our ICAO hex decoder, which shows the country block and links to registries.
  • Keep a record. Download the CSV log of positions with UTC timestamps for your notes or evidence file.
  • Spot emergencies. Squawk codes 7500, 7600 and 7700 mean hijack, radio failure and general emergency.
  • Remember the gaps. Planes that do not broadcast ADS-B will not appear, and a receiver indoors hears far less than one on a roof.

Sources

  1. webrtlsdr by Jacobo Tarrio, Apache-2.0 (read 23 Oct 2026)
  2. mode-s-demodulator by Thomas Watson, MIT
  3. RTL-SDR.com: a WebUSB-based ADS-B decoder (30 Sep 2022)
  4. RTL-SDR.com Quick Start Guide (read 23 Oct 2026)
  5. Zadig USB driver tool
  6. SDR setup docs: RTL-SDR on Linux (read 23 Oct 2026)
  7. jrmora: using an RTL-SDR in a web browser (1 May 2025)
  8. RTL-SDR.com: FC0013 tuner posts (read 23 Oct 2026)
  9. caniuse: WebUSB browser support (read 23 Oct 2026)
  10. Software notices: third-party licenses.

Frequently Asked Questions

What is ADS-B?

ADS-B is a radio message most aircraft broadcast on 1090 MHz about twice a second. It carries the aircraft’s 24-bit ICAO address and, depending on the message, its callsign, altitude, position, speed and heading. Anyone with a suitable receiver can pick it up, which is how flight-tracking sites build their maps.

What hardware do I need?

An RTL-SDR USB stick with an RTL2832U chip and an R820T, R820T2, R860 or R828D tuner, such as RTL-SDR Blog V3 or V4 style sticks, plus its antenna. Sticks with other tuners, such as the FC0013, are not supported here.

Which browsers and systems work?

It uses WebUSB, so it needs Chrome, Edge or Opera on Windows, Mac, Linux or ChromeOS, or Chrome on Android. Firefox, Safari and iPhones do not support WebUSB. Windows needs a one-time WinUSB driver swap with Zadig, and Linux needs the TV-tuner driver unloaded.

Is any of my data uploaded?

No. Decoding runs in your browser, and the table and log stay on your device. Only the optional map contacts other servers: cdnjs for the Leaflet library and OpenStreetMap for tiles, which reveals the area being shown.

Why do some planes have no position?

Older transponders and many military and government aircraft send only an identity and altitude, not a position. A position also needs both halves of a position report, so it appears a few seconds after the first message.

How does this help an investigation?

You can log which aircraft were overhead and when, from your own receiver, and look each ICAO address up in our ICAO hex decoder or a public tracker. Repeated circling by the same aircraft over one area is a pattern worth recording with times and positions.

Next step

Got an ICAO address? Decode it with the ICAO hex decoder. Interested in drones too? Read the drone Remote ID guide.