DIY Raspberry Pi AIS Receiver for Ship Tracking: Build an SDR-Based Maritime Tracking Station
- Dr. Owen Taylor
- 16 hours ago
- 7 min read
Updated: 3 hours ago
This guide is part of the Worldwide AIS Network, a Web3 data layer that incentivizes the global capture of ship-tracking data through the WAKE token. Traditional AIS platforms rely on unpaid volunteers and centralized infrastructure. WAKE flips the model: by running your own AIS station (like the one in this guide), you can contribute to a decentralized maritime intelligence network and earn crypto rewards for validated data. It’s about transparency, fairness, and bringing open ocean visibility into the Web3 era.
In this step-by-step tutorial, you’ll learn how to turn a Raspberry Pi into a live AIS receiver, and become part of the network powering the future of maritime data.

Why AIS Tracking Matters in 2025
The world’s economy literally sails on ships, an estimated 90% of global goods move by sea. AIS (Automatic Identification System) is the digital backbone of this trade, as vessels broadcast their identity, position and course to improve safety and coordination. In 2025, AIS data is more valuable than ever: it’s used for traffic management, environmental monitoring, and even search-and-rescue. Hobbyists can tap into this open data stream with a Raspberry Pi and a cheap SDR dongle. The School Amateur Radio Club Network highlights that anyone can set up a home AIS receiver and share their vessel data freely to boost safety. By building your own Raspberry Pi AIS receiver, you not only get a window into global shipping traffic, but you also join a worldwide community making the seas safer and more transparent.
What is AIS? An Introduction
AIS is a VHF radio system used by ships to “talk” to each other and to shore stations. Large vessels are legally required to broadcast AIS messages (on two maritime frequencies around 161.975 and 162.025 MHz). Each AIS transmission includes static data (like the vessel’s name and MMSI ID) and dynamic data (latitude, longitude, speed, course, etc.). These broadcasts are picked up by coastal receivers and even satellites to build a live picture of maritime traffic. When a ship turns off its AIS, it often rings alarm bells (it could be hiding illicit activity), which shows how critical AIS is for transparency and safety. Learn more in our most recent blog post.
Essential Hardware for a Raspberry Pi AIS Receiver
To build a Raspberry Pi AIS receiver, you’ll need three main components:
Raspberry Pi (any model with USB will work; Pi 4 is recommended for performance). Load it with Raspberry Pi OS (Lite is fine) and connect it to your network (Ethernet or Wi-Fi).
SDR Dongle. A USB RTL-SDR dongle with a 162 MHz-capable tuner (like R820T2) serves as the radio receiver. Plug it into the Pi’s USB port.
VHF Antenna. A good 162 MHz antenna is crucial for reception. This can be a standard marine VHF/AIS whip or a DIY dipole. The antenna should cover 156–163 MHz Place it as high and clear as possible (e.g. on a roof or mast) for best line-of-sight range (typically 20–40 nautical miles). Use quality 50Ω coax (SMA connector to match most dongles), and consider a VHF band-pass filter if interference is an issue.
Weatherproof Enclosure (Recommended for Outdoor Installs). To protect your gear from moisture and UV damage, place your Pi, SDR, and power wiring inside a sealed IP65+ rated plastic enclosure. Use waterproof cable glands for SDR and power cables, and add desiccant or a small vent to prevent condensation buildup. Mount securely in a shaded or protected location.
Passive Cooling: Heatsinks or Fan. AIS decoding runs the Pi’s CPU consistently. Add basic heatsinks to the Pi’s SoC and USB controller, or use a quiet fan (especially in sealed boxes or hot climates). This reduces thermal throttling and extends lifespan.
High-Endurance SD Card. Use at least a 16GB Class 10 card, ideally rated as “High Endurance” to withstand continuous write cycles. This is especially important if you plan to log AIS messages locally.
USB Extension Cable (Optional). Helps reduce RF interference from the Pi’s USB ports and allows for better SDR dongle placement, especially useful if the Pi is mounted inside a sealed box.
Coaxial Antenna Cable. You’ll need a high-quality 50Ω coaxial cable to connect your antenna to the SDR dongle.
- Most SDRs use SMA male connectors
- Marine antennas typically output via PL-259 (UHF) or BNCUse an appropriate SMA adapter or pigtail cable to bridge the two. Poor-quality or mismatched cable will kill reception range — don’t skimp here.
For power, a 5V/3A supply is recommended for the Pi. If you’re installing on a boat or vehicle, a 12V→5V DC/DC converterensures safe power. That’s it for hardware, the antenna, SDR dongle, and Pi form a complete AIS receiving station.
Installing and Configuring the Software
On the software side, we’ll install an AIS decoder that works with RTL-SDR. The most common tool is rtl_ais, which demodulates VHF AIS signals and outputs NMEA sentences.
To install and run the AIS decoder software on your Raspberry Pi, open the Terminal (or connect via SSH) and paste the following commands step by step. This script will update your system, install dependencies, set up rtl_ais, and verify that your SDR dongle is working properly
Update the system:
Install dependencies: rtl_ais requires librtlsdr and USB libraries. On Raspberry Pi OS (armhf) you can run:
Install rtl_ais: Download and install the latest rtl_ais ARM package (0.4.3 or newer). For example:
Verify dongle connection: Plug in the SDR and run rtl_test. You should see output like “Found 1 device...” confirming the dongle is detected.
Run rtl_ais: Try a test run in the foreground:
The -n flag prints NMEA sentences. You should see lines like $AI... flood the console, indicating ships being picked up. For example:
By default, rtl_ais tunes to 162.000 MHz. Use -f if you need to specify 161.975 or 162.025 MHz explicitly. Once it runs, any received AIS frames will be decoded into NMEA TCP/UDP packets.
Create a service (optional): To run rtl_ais at boot and auto-restart, create a systemd service. For example, create /etc/systemd/system/ais-feed.service with:
Then enable and start it:
This gets rtl_ais decoding continuous ship data in the background. Next, we need to forward or use that AIS feed.
Decoding and Forwarding AIS Data
With rtl_ais running, you have a stream of NMEA AIS packets at 127.0.0.1:10110 (UDP by default). You can feed this data to visualization software or to multiple internet services. Common options include:
OpenCPN or SignalK: Run OpenCPN on the Pi or another device to plot received ships on nautical charts. It can connect to the local UDP feed and display live traffic. This is great for a local view of vessels in range.
AISdispatcher / aiscontrol: An alternative is the open-source AISdispatcher suite. It listens on your rtl_ais feed and has a web UI (aiscontrol) to configure multiple targets. If you prefer web-based setup, aisdispatcher is an option. It can broadcast to MarineTraffic (UDP mode), AISHub, or any custom receiver. Note: aisdispatcher usually expects AIS serial input, so it uses a virtual serial or network feed from rtl_ais.

Visualizing Ships and Contributing to Open Data
Running a Raspberry Pi AIS receiver is just the beginning. You can visualize live ship positions on desktop or mobile. Free tools like OpenCPN allow you to view your station’s output alongside global traffic.
Keep in mind:
Antenna height matters. AIS is line-of-sight. Even a cheap dipole at 10m altitude can pick up vessels 20+ NM away. Raise the antenna higher or closer to open water for best range.
Filtering and shielding: VHF is relatively quiet, but local radio or cell signals can leak into the 162 MHz band. Use a small band-pass filter (~160–165 MHz) if you have interference.
Power management: If placing outdoors, consider putting the Pi and dongle in a weatherproof box, powered via the DC/DC converter pictured above.
By now you have a working Raspberry Pi AIS receiver: the Pi decodes AIS signals via RTL-SDR and shares data with any service you choose. You’re capturing real ship movements from your neighborhood!
The WAKE Network: A Decentralized Future for AIS Data
Congratulations, your DIY AIS station is live! But what’s next? In 2025, a visionary movement is emerging to link hobbyist receivers into a decentralized, blockchain-backed network. The Worldwide AIS Network’s WAKE project is one such initiative. WAKE aims to transform each AIS node into a crypto-powered data contributor. In WAKE’s vision, every valid AIS message your station produces can earn you tokens, and contributions are verified on-chain to build a fraud-resistant, global ship registry
Imagine your Raspberry Pi not only plots local vessel traffic, but also powers a blockchain-based AIS layer. WAKE describes it as creating “the world’s most accurate AIS dataset” by combining thousands of hobbyist nodes into a decentralized source of truth. If you live near the water, you can passively earn crypto by simply running your receiver – no special expertise needed. This aligns DIY enthusiasm with a mission-driven cause: securing open supply-chain data on Web3 rails.
Set up your AIS receiver as described above and explore WAKE’s alpha program. Share your AIS stream with traditional aggregators, but also consider registering your node in WAKE’s network. Together, we can turn Raspberry Pis into a mesh of data-keeping sentinels, earning rewards and strengthening global vessel tracking. In doing so, you help future-proof maritime monitoring and keep the world’s supply chain on course – one AIS packet at a time.
Learn more about WAKE and its mission at worldwideais.org. Your next ship sighting could make you a data pioneer in a Web3-enabled ocean of information.