AIS ship tracking is one of the best RTL-SDR projects after ADS-B aircraft tracking. With a low-cost receive-only SDR, a suitable VHF marine antenna, and free decoder software, you can receive Automatic Identification System broadcasts from nearby ships and display vessel positions, MMSI numbers, course, speed, and related maritime data.
AIS is used by ships and shore stations for vessel awareness and maritime safety. It operates in the VHF marine band on two main channels: AIS 1 at 161.975 MHz and AIS 2 at 162.025 MHz. These frequencies are close enough that a single RTL-SDR can normally receive both channels at the same time using software such as AIS-catcher or rtl_ais.
This guide explains how to build an AIS ship-tracking receiver with RTL-SDR, what antenna to use, which software to install, how to send AIS NMEA data to OpenCPN, and how to fix the most common reception problems.
Browse current hardware in the RTL-SDR receivers, kits, antennas, and accessories category. For broader Raspberry Pi SDR projects, read Best SDR for Raspberry Pi: RTL-SDR, ADS-B, AIS, Satellites, and Remote Monitoring.
Yes. RTL-SDR can receive AIS ship-tracking signals on 161.975 MHz and 162.025 MHz when paired with a suitable VHF marine antenna and AIS decoder software. For most beginners, the easiest modern software choice is AIS-catcher. The classic lightweight option is rtl_ais.
| Setup part | Recommended choice | Why it matters |
|---|---|---|
| Receiver | RTL-SDR Blog V3 USB-C or RTL-SDR Blog V3 Kit | Affordable receive-only SDR with stable TCXO and support for Windows, Linux, Raspberry Pi, and Android |
| Antenna | VHF marine antenna or adjustable dipole tuned around 162 MHz | AIS is in the VHF maritime band, not at 1090 MHz like ADS-B |
| Beginner decoder | AIS-catcher | Modern dual-channel AIS receiver with NMEA, web, UDP, HTTP, and TCP output options |
| Classic decoder | rtl_ais | Lightweight dual-frequency AIS decoder that outputs AIVDM/AIVDO NMEA sentences |
| Map display | OpenCPN or AIS-catcher web viewer | Displays decoded vessel information visually |
| Permanent station | Raspberry Pi | Low-power always-on AIS receiver for home, marina, coastal, or educational use |
AIS stands for Automatic Identification System. It is a VHF maritime data system used by ships, base stations, aids to navigation, and related maritime equipment to broadcast identification and navigation information.
Depending on the vessel and message type, AIS data can include:
For an RTL-SDR user, AIS is a receive-only learning project. It can show nearby maritime traffic, but it should not be treated as a certified navigation or safety system.
The two main AIS frequencies are:
| AIS channel | Marine channel | Frequency | Common name |
|---|---|---|---|
| AIS 1 | Channel 87B | 161.975 MHz | Channel A |
| AIS 2 | Channel 88B | 162.025 MHz | Channel B |
Because the two channels are only 50 kHz apart, a single RTL-SDR has enough bandwidth to receive both at once. This is different from some multi-frequency projects where the signals are too far apart for one RTL-SDR.
AIS and ADS-B are conceptually similar because both broadcast position and identity information, but they use different frequencies, antennas, software, and applications.
| Feature | AIS | ADS-B |
|---|---|---|
| Main use | Ship and maritime traffic tracking | Aircraft tracking |
| Main frequency | 161.975 MHz and 162.025 MHz | 1090 MHz |
| Antenna type | VHF marine antenna around 162 MHz | 1090 MHz ADS-B antenna |
| Beginner software | AIS-catcher or rtl_ais | dump1090, readsb, tar1090, PiAware |
| Output | AIS NMEA messages and ship positions | Aircraft positions and flight data |
| Best location | Near coast, river, port, marina, canal, or lake traffic | With clear sky view toward aircraft |
Do not use a dedicated 1090 MHz ADS-B antenna for AIS if you want best results. AIS needs a VHF antenna closer to 162 MHz.
The RTL-SDR Blog V3 USB-C dongle is a strong current choice if you already have or plan to buy a suitable AIS antenna. It includes a 1PPM TCXO for frequency stability, SMA connector, aluminum case, USB-C interface, and support for Windows, Linux, Raspberry Pi, and Android.
The RTL-SDR Blog V3 Kit is better for beginners who want everything needed for first tests in one box. The included multipurpose dipole can be adjusted for VHF reception and is useful for learning antenna placement before buying a dedicated outdoor marine antenna.
No. AIS is around 162 MHz, where the RTL-SDR Blog V3 already works well. If you already own an RTL-SDR Blog V4, it can also be used, but V3 or V3 USB-C is normally a safe and practical buying direction for AIS.
AIS reception depends heavily on antenna placement. A better antenna location can improve results more than changing the SDR dongle.
A quarter-wave element for 162 MHz is approximately 46 cm. For a simple vertical dipole-style test, extend each element to around 46 cm as a starting point, then adjust placement and orientation for best reception.
The exact result depends on the antenna design, cable, mount, nearby objects, and indoor or outdoor placement. If you use the RTL-SDR Blog multipurpose dipole, treat this as a practical starting length rather than a laboratory-calibrated antenna.
AIS range is mainly limited by VHF line-of-sight. A low indoor antenna may only receive nearby vessels. A high outdoor antenna near the coast can receive much farther.
| Setup | Typical result |
|---|---|
| Indoor antenna far from water | Very limited or no AIS messages |
| Indoor window antenna near a river or marina | Nearby vessels may decode |
| Outdoor antenna near coast or port | Good local ship tracking |
| High outdoor antenna with clear sea view | Best range for a low-cost RTL-SDR station |
AIS is not a satellite-tracking project for normal RTL-SDR stations. You are mostly receiving local terrestrial VHF signals from ships and shore stations within radio range.
| Software | Best for | Output | Beginner recommendation |
|---|---|---|---|
| AIS-catcher | Modern dual-channel AIS reception, web viewing, and network output | NMEA, UDP, TCP, HTTP, web interface, and other options | Best first choice for most users |
| rtl_ais | Lightweight classic command-line decoding | AIVDM and AIVDO NMEA sentences | Good for simple Linux or Raspberry Pi setups |
| OpenCPN | Chart display and AIS target visualization | NMEA input from AIS decoder | Best when you want a chart-plotter-style display |
| SDR++ or SDR# | Visual signal checking | Waterfall and spectrum view | Useful before debugging decoder commands |
On Windows, AIS-catcher is usually the easiest decoder to start with because pre-built binaries are available and the software can output decoded data without requiring a full Linux build environment.
Install the RTL-SDR driver with Zadig, then test the dongle in SDR# or SDR++ first. If the receiver is not visible in normal SDR software, AIS-catcher will not fix the driver issue.
Read the full Windows driver guide: RTL-SDR Setup Guide for Windows: SDR#, SDR++, Zadig, Drivers, and First Signal.
Download the current AIS-catcher Windows release from the official project page, unpack the ZIP file into a folder, and open Command Prompt in that folder.
AIS-catcher If your RTL-SDR is detected and the antenna can hear AIS traffic, messages should begin appearing. If nothing appears, keep the software simple and improve antenna placement first.
AIS-catcher -gr tuner 33.3 rtlagc ON This sets the tuner gain and enables RTL AGC as a starting test. The best gain depends on your signal environment. Too much gain can overload the receiver, while too little gain can miss weak vessels.
Linux and Raspberry Pi are good choices for permanent AIS stations. Start manually before creating services or automatic startup scripts.
sudo apt update
sudo apt install rtl-sdr
rtl_test If rtl_test cannot see the receiver, fix RTL-SDR drivers or permissions before installing AIS software.
Use the official AIS-catcher installation instructions for your distribution. Package availability and build steps can change, so follow the current project documentation when building a production station.
AIS-catcher AIS-catcher -gr tuner 33.3 rtlagc ON Genuine RTL-SDR Blog receivers include a stable TCXO, so correction is usually small. If needed, AIS-catcher supports frequency correction through its RTL-SDR settings.
AIS-catcher -gr freqoffset 1 tuner 33.3 Use a measured correction value rather than guessing.
rtl_ais is a lightweight command-line AIS decoder. It defaults to the two normal AIS frequencies and outputs AIVDM/AIVDO NMEA sentences.
sudo apt update
sudo apt install git build-essential librtlsdr-dev libusb-1.0-0-dev
git clone https://github.com/dgiardini/rtl-ais.git
cd rtl-ais
make
sudo make install rtl_ais -n By default, rtl_ais uses 161.975 MHz and 162.025 MHz. These are the two normal AIS channels, so most users do not need to set frequencies manually.
rtl_ais -g 38.6 -p 1 -n Adjust gain and PPM correction for your receiver and local signal conditions. If messages are noisy or rare, check the antenna and gain before changing many software options at once.
rtl_ais -h 127.0.0.1 -P 10110 -n This sends AIS NMEA sentences to UDP port 10110 on the same computer. You can then configure OpenCPN to listen for incoming NMEA data.
OpenCPN is a free and open-source chart-plotter application. It can receive AIS NMEA data from software such as AIS-catcher or rtl_ais and display vessel targets on a chart.
An RTL-SDR plus AIS-catcher or rtl_ais is a hobby and learning setup. It is not a certified AIS receiver, AIS transponder, collision-avoidance system, or primary navigation tool. Do not rely on it for safety of life, navigation, or vessel-operation decisions.
AIS-catcher can provide a convenient built-in viewer for local station monitoring. This is useful if you want a quick browser-based display without configuring a full chart plotter immediately.
For a beginner station, the workflow is:
Keep any web viewer limited to your trusted local network unless you understand the security implications of exposing it externally.
Some communities allow users to share AIS receiver data. Before feeding or forwarding decoded data, check your local laws and the terms of the receiving platform.
Responsible sharing checklist:
AIS decoding is sensitive to signal quality. The goal is not maximum gain. The goal is clean decoding.
RTL-SDR Blog receivers use a 1PPM TCXO, so correction is usually small. If decoding is unreliable, check PPM correction with RTL-SDR tools and apply a measured value.
rtl_test -p Let the test run long enough to estimate correction, then apply the result in AIS-catcher or rtl_ais if needed.
AIS is close to the marine VHF band, so strong local transmitters, pagers, FM broadcast stations, or other nearby RF sources can affect reception.
A broadcast FM block filter can help in some overloaded VHF environments. View the Broadcast FM Block Filter.
An LNA may help if the antenna is outdoors, the signal is weak, and the coax cable run is long. It can also make reception worse if the receiver is already overloaded.
Read Do You Need an LNA for SDR?
A Raspberry Pi is ideal for a permanent AIS station because it can run continuously with low power consumption. Build the station only after manual decoding works.
rtl_test.| Problem | Likely cause | Fix |
|---|---|---|
| No vessels appear | No nearby AIS traffic, poor antenna location, or wrong setup | Move closer to water, raise the antenna, and test with a known active area. |
| RTL-SDR not found | Driver or permissions issue | Run rtl_test, fix Zadig on Windows, or fix Linux udev permissions. |
| Messages appear rarely | Weak signal or low vessel traffic | Improve antenna height, placement, and view toward the water. |
| Decoder shows errors | Overload, poor SNR, wrong gain, or frequency offset | Adjust gain, check PPM correction, and inspect the signal in SDR++. |
| OpenCPN shows no targets | NMEA output is not connected correctly | Confirm AIS NMEA messages first, then check UDP/TCP address and port. |
| Good reception indoors, poor reception after moving outdoors | Cable loss, bad connector, or water ingress | Check cable, adapters, connector sealing, and antenna mount. |
| Strong signals but bad decoding | Receiver overload | Reduce gain, remove unnecessary LNA, or add filtering. |
| Item | Recommended choice | Reason |
|---|---|---|
| Receiver | RTL-SDR Blog V3 USB-C or RTL-SDR Blog V3 Kit | Stable, affordable, receive-only, and suitable for 162 MHz AIS reception |
| Antenna | VHF marine antenna or adjustable dipole | AIS needs a VHF antenna, not a 1090 MHz ADS-B antenna |
| Software | AIS-catcher | Modern dual-channel decoder with flexible output options |
| Alternative software | rtl_ais | Simple classic decoder for AIVDM/AIVDO NMEA output |
| Display | AIS-catcher web viewer or OpenCPN | Shows decoded vessel data visually |
| Permanent receiver | Raspberry Pi | Low-power always-on station |
Radio-monitoring laws vary by country. Check your local rules before receiving, decoding, logging, forwarding, or publishing AIS data.
For most beginners, the best AIS ship-tracking setup is an RTL-SDR Blog V3 USB-C or RTL-SDR Blog V3 Kit, a VHF marine antenna or adjustable dipole, and AIS-catcher. Start by confirming that the RTL-SDR works, place the antenna near a window or outdoors with a clear view toward the water, then run AIS-catcher and verify decoded messages.
If you prefer a simple classic command-line decoder, use rtl_ais. If you want a chart-style display, forward NMEA output to OpenCPN. If you want an always-on receiver, move the working command to a Raspberry Pi only after manual testing is stable.
The biggest performance upgrade for AIS is usually not a more expensive receiver. It is a better antenna, higher placement, cleaner VHF signal environment, and correct gain setting.
Yes. RTL-SDR can receive AIS signals on 161.975 MHz and 162.025 MHz when paired with a suitable VHF marine antenna and AIS decoder software such as AIS-catcher or rtl_ais.
The two main AIS frequencies are 161.975 MHz for AIS 1, channel 87B, and 162.025 MHz for AIS 2, channel 88B.
AIS-catcher is the best modern beginner recommendation because it supports dual-channel AIS reception, RTL-SDR devices, NMEA output, network forwarding, and a web viewer. rtl_ais is a lightweight classic alternative.
Yes. AIS 1 and AIS 2 are only 50 kHz apart, so one RTL-SDR can normally receive both channels at the same time using software such as AIS-catcher or rtl_ais.
A dedicated 1090 MHz ADS-B antenna is not ideal for AIS. Use a VHF marine antenna, VHF discone, or adjustable dipole tuned around 162 MHz.
AIS range depends on VHF line-of-sight, antenna height, location, and nearby vessel traffic. A high outdoor antenna near the coast or a port will perform much better than a small indoor antenna far from water.
Yes. Raspberry Pi is a good platform for a permanent AIS receiver. First test manually with rtl_test and AIS-catcher or rtl_ais, then create an automatic service only after decoding is stable.
Yes. AIS-catcher or rtl_ais can output AIS NMEA sentences, which can be sent to OpenCPN over UDP or TCP for chart-style vessel display.
The most common reasons are no nearby vessel traffic, poor antenna placement, wrong antenna type, RTL-SDR driver problems, excessive gain, receiver overload, or being too far inland.
No. An RTL-SDR AIS setup is for learning, monitoring, and experimentation. Do not use it as a certified navigation, collision-avoidance, or safety-of-life system.
No posts found
Write a review