This repository presents the AIS-catcher software, a versatile dual-channel AIS receiver that is compatible with a wide range of Software Defined Radios (SDRs). These include RTL-SDR dongles (such as the ShipXplorer AIS dongle and RTL SDR Blog v4), AirSpy (Mini/R2/HF+), HackRF, HydraSDR, SDRPlay, SoapySDR, and file/network input (ZMQ/RTL-TCP/SpyServer). AIS-catcher delivers output in the form of NMEA messages, which can be conveniently displayed on screen or forwarded via UDP/HTTP/TCP. Designed as a lightweight command line utility, AIS-catcher also incorporates a built-in web server for internal use within secure networks. The project home page including several realtime examples can be found at www.aiscatcher.org.
The purpose of AIS-catcher is to serve as a platform that encourages the perpetual enhancement of receiver models. We greatly value and appreciate any suggestions, observations, or shared recordings, particularly from setups where the existing models encounter difficulties.
Copyright (C) 2021 - 2026 jvde.github at gmail.com. All rights reserved. Licensed under GNU General Public License v3.0.
AIS-catcher is created for research and educational purposes under the GNU GPL v3 license. It is a hobby project and has not been tested and designed for reliability and correctness.
You can play with the software but it is the user's responsibility to use it prudently. So, DO NOT rely upon this software in any way including for navigation
and/or safety of life or property purposes.
There are variations in the legislation concerning radio reception in the different administrations around the world.
It is your responsibility to determine whether or not your local administration permits the reception and handling of AIS messages from ships.
It is specifically forbidden to use this software for any illegal purpose whatsoever.
Only use this software in regions where such use is permitted.
Prefer a traditional AIS receiver over an SDR but want the same advantages? We recommend the dAISy-catcher, a dual-channel receiver developed with Wegmatt that combines the benefits of SDR receivers with a dedicated hardware solution: plug-and-play operation, low power consumption, and precise signal processing. It connects directly to AIS-catcher over serial, as a USB device or Raspberry Pi HAT. See the product page and manual (PDF).
To join, ensure you're on the latest version, visit www.aiscatcher.org, and add your station. Upon registration, you'll receive a personal sharing key. Simply run AIS-catcher on the command line with "-X" followed by your sharing key to share your station's raw AIS data with the community hub. This activates a "Community Feed" in your station's web viewer, accessible under map layers and some other features.
Add -N ports ports.json to the viewer options (for example,
-N 8100 ports ports.json). The file is a JSON array:
[
{"code": "NLRTM", "name": "Rotterdam", "country": "NL", "lat": 51.95, "lon": 4.14, "size": 3}
]Each entry needs a unique uppercase code of up to eight characters, a name, a two-letter uppercase country code, and numeric latitude/longitude. Invalid records or duplicate codes stop configuration with an error. The file is read at configuration time; no ports are added when the option is omitted.
Ports appear as dark blue circles with a white border and anchor on the existing map-object
layer. Hover shows the name and country. Hub uses the same option and its
existing map-object tile placement, prioritising larger ports. Optional size
sets the earliest website zoom: 3 (large) at 7, 2 (medium) at 9, 1 (small)
at 11, and 0 (very small/unknown, the default) at 12. Crowded ports can appear
later; all become eligible at zoom 12. The standalone viewer shows all supplied
ports regardless of size. These are static landmarks, independent of
vessel destination matching.
