Blogger OZ9AEC has written a post on his blog showing how he made a 2-channel AIS receiver using the RTL-SDR, GNU Radio and GNUAis. AIS is a radio protocol used by boats to broadcast their position and speed which is then used to create a type of radar system to help avoid collisions. AIS signals are transmitted periodically on one of two channels. Two channels are used to improve capacity and help avoid interference if two signals from different boats are broadcast at the same time.
Before this, most AIS receiver implementations we’d seen that used the RTL-SDR received only on a single channel. OZ9AEC’s GNU Radio program receives on both channels simultaneously like a commercial AIS receiver does and is thus a better receiver. He eventually plans to get this receiver to run on a Beaglebone.
See his post for instructions and to download the GRC files.
Large ships and passenger boats are required to broadcast an identification signal containing position, course, speed, destination, and vessel dimension information to help prevent sea collisions. This system is known as the “Automatic Identification System” or AIS for short. There are dedicated AIS receivers intended to be used on boats, or by hobbyists, but they can be expensive. A radio scanner, or the cheap RTL-SDR software defined radio (or a more advanced SDR such an Airspy) can be used to receive these signals, and with the help of decoding software, ship positions can be plotted on a map.
This tutorial will show you how to set up an AIS receiver with the RTL-SDR. Most parts of this tutorial are also applicable to other software radios, such as the Funcube dongle, Airspy and HackRF, or even regular hardware scanners if a discriminator tap is used, but the RTL-SDR is the cheapest option.
Safety Warning: This probably should not be used a navigational aid on a boat as the field reliability of the RTL-SDR or other software radios is not proven. This guide is intended for land based scanner hobbyists.