Tagged: automatic identification system

Decentralizing AIS: Trustless Maritime Tracking with SDR

Recently, Owen Taylor, the CEO of WAKE (Worldwide AIS Network), wrote in to us asking if they could promote their project, which is a decentralized AIS aggregation network based on receivers like RTL-SDR. The twist compared to existing aggregators like marinetraffic.com is that WAKE aims to reward users via a crypto token and simultaneously solve the distributed verification problem to avoid problems like spoofing and poor transparency. 

The post below is their own words, and we note that we are not affiliated with WAKE.


Every second, ships transmit short bursts of data over VHF, broadcasting their position, speed, course, and identity. This is AIS (Automatic Identification System), an open, unencrypted protocol that lets vessels, ports, and coastal authorities maintain a shared picture of maritime traffic. Beyond collision avoidance, AIS feeds into port logistics, environmental monitoring, search and rescue operations, and even the financial analysis that drives global commodities trading.

For years, much of this coverage has been built on a mix of official receivers, satellites and a scattered network of volunteers, many of them SDR hobbyists streaming data from antennas on rooftops and coastal hills.

This model works, until it doesn’t. AIS has a well-known weakness: there’s no built-in authentication. Anyone can transmit a valid-looking AIS message. That opens the door to errors and deliberate spoofing, and right now there’s no universal method for verifying what’s real.

How AIS Works

AIS operates on two dedicated VHF channels, 161.975 MHz and 162.025 MHz, using 9600 bps Gaussian Minimum Shift Keying (GMSK) modulation. Transmissions follow a self-organizing time division multiple access (SOTDMA) scheme, where each station selects its own time slots to avoid collisions.

An AIS message can carry vessel identity (MMSI), position (latitude, longitude), speed over ground (SOG), course over ground (COG), navigational status, and other voyage data. Ships transmit at intervals from every few seconds (for fast-moving craft) to every few minutes (for anchored vessels).

For terrestrial reception, the chain looks familiar to any SDR operator:

Antenna → RTL-SDR (or similar) → AIS decoder software → Data feed.

Noise floor, antenna gain, and local RF environment all influence range, which for a coastal VHF station is typically 20–40 nautical miles. Higher elevations and directional antennas can stretch this significantly.

The Current Aggregation Model

Global AIS coverage today comes from a mix of satellite AIS for open-ocean tracking and terrestrial AIS for coastal areas, ports, and choke points. The terrestrial component is heavily dependent on a patchwork of volunteer-operated receivers, often nothing more than a VHF antenna, an RTL-SDR, and a small computer feeding data into a central platform.

Commercial services like MarineTraffic (now owned by Kpler), VesselFinder, and AISHub aggregate these feeds into global datasets that are then resold to shipping companies, commodity traders, insurers, and governments. The scale is impressive, but it comes at a cost to transparency.

In a recent video circulating on Reddit, the CEO of Kpler openly described their “monopoly” on maritime data, built on the volunteers giving up their data for free. While this may be good for their commercial positioning, it also highlights the underlying issue: a small number of companies effectively control access to AIS data, much of which was gathered for free from hobbyists.

From a technical perspective, the aggregation model has another weakness: it is built on trust. If a feed sends false data, whether through AIS spoofing, misconfigured hardware, or bad GPS input, that information can still enter the global record. Most platforms only filter out data that is obviously invalid, and there is no universal multi-source verification or cryptographic proof of authenticity in the AIS ecosystem.

The Data Integrity Problem

AIS is intentionally open and unencrypted to encourage wide adoption and interoperability. The downside is that nothing stops someone from transmitting a false position for a real ship or inventing an entirely fake vessel.

Spoofing incidents have been documented around the world. “Ghost ships” have appeared hundreds of miles inland. Vessel positions have been falsified to hide illegal fishing or smuggling. In some regions, ships broadcast fake locations to evade sanctions or mislead competitors.

Because AIS is used for everything from traffic management to environmental compliance, bad data has real consequences. It can mislead port authorities, disrupt logistics chains, and undermine safety systems that depend on knowing exactly who is nearby.

Distributed Verification

When we talk about “distributed” in this context, we mean a network of many independent AIS receivers,  owned and operated by different people in different locations, all working together to validate the same signals. No single entity has control over the data pipeline, and no single point of failure can compromise the entire dataset.

This approach aligns with what’s known as DePIN (Decentralized Physical Infrastructure Networks). In a DePIN, real-world hardware, in this case, AIS receiving stations powered by RTL-SDR dongles, is deployed by a distributed community, and the data it produces is aggregated, validated, and made available on a blockchain. Contributors are often incentivized for their role in maintaining the physical infrastructure and supplying high-quality data.

Applied to AIS, DePIN solves the monopoly and trust problem by creating:

  • Redundancy — multiple stations cover the same area, making spoofing and errors easier to detect.

  • Transparency — all verification events can be independently audited.

  • Resilience — coverage doesn’t vanish if one provider shuts down or changes terms.

From a technical perspective, defeating AIS spoofing requires proving that a received message is both authentic and physically plausible. A distributed verification system can achieve this by:

  1. Time of Arrival (TOA) Checks
    Comparing reception timestamps across geographically separated receivers. A false signal transmitted from shore will produce a different TOA pattern than one from a vessel at sea.

  2. Motion Consistency
    Checking positions against realistic limits for speed, acceleration, and turn rate. If a ship appears to jump 50 nautical miles in a minute, it fails.

  3. Cross-Coverage Triangulation
    Using relative signal strength and geometry between receivers to estimate origin and compare it to the reported position.

  4. Peer Agreement
    Looking for identical messages confirmed by several uncorrelated receivers. Messages verified by multiple independent nodes have a much higher trust score.

Once these checks are complete, the verification results, not necessarily the raw AIS payload, can be recorded on a tamper-proof, public ledger (such as a blockchain). This creates a permanent, auditable history of which AIS messages passed validation and when, allowing anyone to verify the integrity of past data without relying on a single company’s database.

Incentivizing a Trustless AIS Network

WAKE (Worldwide AIS Network) applies distributed verification principles to AIS in a way that directly involves and rewards the SDR community. At its core, WAKE is a decentralized network of independently operated AIS receivers, often built around RTL-SDRs or similar hardware,  working together to validate and record maritime data in a public, tamper-proof ledger.

In the WAKE model, contributors run AIS stations that submit decoded messages to the network. These messages are cross-checked against others received in the same geographic area. A message is only accepted if it passes both multi-receiver consensus and physics-based checks such as motion consistency and TOA analysis. This ensures that false or spoofed data is rejected before it ever reaches the historical record.

For the SDR community, this represents an evolution of an existing role. Many hobbyists already contribute AIS feeds without recognition or compensation. In WAKE, you’re not just relaying what you receive, you’re part of a validation mesh that makes AIS data more secure and tamper-resistant.

Because WAKE is built on a trustless model, no single operator, including WAKE itself can alter or suppress verified data. The integrity of the maritime picture is maintained collectively, with every contributor helping to keep it honest.

For SDR operators, the incentive is clear: you can keep doing what you already do best, running reliable receivers with clean reception and precise timing, but now with direct rewards for your contribution and the satisfaction of helping build a more open, diverse, and verifiable AIS data ecosystem.

You can learn more about WAKE Here.

Closing Thoughts

AIS has transformed maritime safety and logistics, but it was designed for trust, not for security. That’s fine when all players are honest, but as spoofing incidents have shown, trust alone isn’t enough.

A verification layer built on distributed SDR receivers is one of the most promising paths toward a tamper-proof global AIS dataset. It’s not about replacing the existing AIS ecosystem, but strengthening it.

The SDR community is uniquely positioned to lead that shift. By participating in networks that focus on data integrity, you can help ensure the maritime picture is as accurate tomorrow as it was yesterday, and maybe even fill in the parts of the map no one else can see.

DragonOS: Setting up AISMon with WINE and Virtual Audio Sink for HackRF and RTL-SDR

Over on his YouTube channel Aaron, creator of the DragonOS image (a Linux image with many built-in SDR compatible programs) has uploaded a new video showing how it is possible to run the Windows only AISMon software on Linux, using WINE. WINE is a Windows emulator for Linux which allows users to run some Windows software on Linux.

In the video Aaron shows how to set up WINE on the DragonOS Linux image, how to run AISMon with it, and how to set up the Virtual Audio Cable sink which is required to pass the audio from SDR++ to AISMon. He also shows how he tests his setup using the AIS-Simulator software with a HackRF, and an RTL-SDR for receiving.

DragonOS FocalX Setup AISMon with WINE + Virtual Audio Sink (HackRF, RTLSDR, SDR++, AIS-Simulator)

ESAR – Extraordinarily Simple AIS Receiver written in C

Thank you to Richard Gosiorovsky for submitting his latest SDR project called ESAR (Extraordinarily Simple AIS Receiver). AIS stands for Automatic Identification System and is used by marine vessels to broadcast their GPS locations in order to help avoid collisions and aide with rescues. An RTL-SDR with the right software can be used to receive and decode these signals, and plot ship positions on a map.

Richards code comes as raw C code, so you will need some knowledge on C code compiling to use it. Being so simple, the code is also a great resource for learning how to access data from an RTL-SDR, and write a decoder. Richard writes:

[ESAR] takes less then 300 lines of programming code and no additional software is necessary (like SDR# or audio piping).

It was intended mainly as exercise in digital signal processing.

All you need is RTL-SDR dongle with driver and rtl_tcp command. Simple dipole antenna is sufficient. If all this you have just compile C code (in the attachment) using MS Visual Studio.

Before running ESAR run rtl_tcp command with this parameters:

rtl_tcp.exe -f 162e6 -s 300000 -a 127.0.0.1 -p 2345 -g 48.0

It comes with GNU licence so converting output to NMEA format or any graphical output is free choice of other SDR enthusiasts.

Richard has shared the C code file directly with us, and it can be downloaded from our server here.

ESAR Code Screenshot

Demonstrating the New 3D Maps in SDRAngel

In December of last year we posted about a video demonstrating the many features that the SDRAngel software comes standard with. Recently they've added a new feature which are 3D maps that can be used to visualize signal data.

In the latest video demonstration they show these 3D maps projecting NOAA weather satellite images onto a 3D globe and at the same time tracking the NOAA satellites over the globe as it produces imagery. They also show the software visualizing a 3D model of aircraft on the globe, using live ADS-B data to show aircraft maneuvers when taking off, cruising and landing. With multiple SDRs they also show how the visualization can be combined with air traffic voice. Finally they also show marine vessels being visualized via live AIS data. There appear to be a wide range of vessel 3D models implemented.

AIS-Catcher: A Dual Band Multiplatform AIS Receiver for RTL-SDR and Airspy HF+ with Multiple Decoding Models

Thank you to Jasper for writing in and letting us know about the release of his new open source software called "AIS-Catcher". AIS-Catcher is a MIT licensed dual band AIS receiver for Linux, Windows and Raspberry Pi. It is compatible with RTL-SDR dongles and the Airspy HF+.

AIS stands for Automatic Identification System and is used by marine vessels to broadcast their GPS locations in order to help avoid collisions and aide with rescues. An RTL-SDR with the right software can be used to receive and decode these signals, and plot ship positions on a map.

Jasper notes that his software was intended to be a platform for him to experiment with different receiving model algorithms. On the GitHub readme he explains how he's experimented with a coherent demodulation model that estimates the phase offset, a non-coherent model which is similar to what most existing decoders use, a modified non-coherent model with aggressive PLL, and an FM discriminator model which assumes the input is the output of an FM discriminator.

The readme goes on to show some comparison results indicating that the coherent model is the best although it uses 20% more computation time. He also compares AIS-Catcher against some other AIS decoders like AISRec and rtl-ais, showing that AIS-Catcher appears to be comparable or better than AISRec, which is one of the most sensitive decoders available for SDR dongles.

A Windows binary is provided on the releases page and compilation instructions for Linux are provided on the Github Readme.

Some results from AIS-Catcher. Different algorithms and different software compared.

A Dual Aircraft and Ship Tracking System with RTL-SDR

Over on his blog Ian Renton has posted about his dual plane and ship tracker project that he's titled "Plane/Sailing". The project consists of several elements including one FlightAware Pro Stick and Pimoroni ADS-B antenna for the aircraft tracking, and an RTL-SDR Blog V3 dongle and Diamond X-50 AIS antenna for the ship tracker.

Ian runs each dongle on a seperate Raspberry Pi. For aircraft the dump1090 software is used to decode the data, and it passes that data to multiple aggregator feeders such as FlightAware, FlightRadar24, ADS-B Exchange and OpenSky. For ships he uses rtl_ais which feeds into AIS Dispatcher which in turn feeds multiple marine aggregators such as Marine Traffic, VesselFinder, AIS Hub, Pocket Mariner and Ship Finder.

His system also feeds a personally hosted web front end based on his umid1090 software. umid1090 is a replacement for dump1090's web interface, the main difference being that the map is presented using military symbology. For the "Plane/Sailing" project he also extended umid1090 to be able to read the AIS ship position data from AIS Dispatcher's KML output file, and created a clean dark interface. The result is a slick looking map displaying both the tracked aircraft and ships. Ian's web interface for his system is public, and can be viewed at planesailing.ianrenton.com.

The Plane/Sailing Web Interface (Based of UMID1090)

 

Building a Raspberry Pi Based AIS Receiver with an RTL-SDR, Preamp and Collinear Antenna

Thank you to SARCNET (School Amateur Radio Club Network) for submitting news about their tutorial on building a Raspberry Pi and RTL-SDR based AIS receiver. In their tutorial they show what equipment is required and provide access to a ready to use SD Card image for the Pi that has the AIS software pre-installed and ready go. They also show how to upload data to various online AIS data aggregators like AISHub and MarineTraffic.

AIS stands for Automatic Identification System and is used by ships to broadcast their GPS locations in order to help avoid collisions and aide with rescues. An RTL-SDR with the right software can be used to receive and decode these signals, and plot ship positions on a map.

The School Amateur Radio Club Network publishes a simple project aimed at promoting the deployment of maritime Automatic Information System (AIS) receiving stations around the world using cheap RTL-SDR dongles and Raspberry Pi computers. The purpose of the project is to improve the existing terrestrial AIS receiving network by encouraging enthusiasts to setup their own AIS receiving stations and to disseminate their local vessel traffic data freely to AIS Servers. This data can then be used by many organisations involved in monitoring and improving the safety and security of shipping.

The SARCNET project, which works on all models of Raspberry Pi, makes building the AIS receiving station simple by providing pictorial construction details with a pre-packaged Raspberry Pi image to download. The free project uses open-source software and a bootable Raspberry Pi image which has been updated to use the latest Raspbian Lite operating system.

One of the attractions of building your own AIS receiving station is that some AIS servers reward you when you freely upload your local vessel tracking data. They publish your station information, showing your station position on a map and your receiving statistics like messages per hour and coverage in nautical miles. Some give you free, premium access to their AIS data, which can be viewed on their mobile apps. Even so, by operating one of these AIS receiving stations, you will have the satisfaction of making the world a safer place.

AIS Received with a Raspberry Pi and RTL-SDR Dongle.
AIS Received with a Raspberry Pi and RTL-SDR Dongle.

A Homemade Boat Computer with RTL-SDR for Weather Fax, NavTex and more

Over on Hackaday we've seen a post about [mgrouch]'s "boat computer" which consists of a Raspberry Pi 4, HDMI display, and a whole slew of sensors and receivers useful for a marine environment including an RTL-SDR.

The built in equipment includes a GNSS receiver, orientation sensors, AIS receiver, 4G and WiFi, lightning EMI sensor and alarm, optional autopilot integration, rudder angle sensor, connections to boat instruments like wind, depth, speed, temperature, barometric and humidity sensors, an Iridium receiver, and finally an RTL-SDR for receiving weather fax, NavTex, satellite weather, AIS, RTL 433, morse code and more. It really is an "all-in-one" device.

His blog post explains in detail how each of the components work in the system, and in particular for the RTL-SDR he shows how you can use the boat computer to receive FM via GQRX, and NavTex via the Java based Frisnit Navtex decoder. Navtex is a marine radio service that transmits at 518 kHz or 490 kHz. It provides text data regarding weather forecasts, weather warnings, navigational information, and urgent maritime safety messages. For his antenna he writes that he uses a 10 kHz - 30 MHz Mini Whip antenna that he purchased on Aliexpress.

mgrouch's Boat Computer with RTL-SDR
mgrouch's Boat Computer with RTL-SDR