RTL-SDR for AIS

Introduction

AIS Automatic Identification System for Ships is a traffic system that uses VHF transponders on vessels to periodically send out location information. It was developed by Swedish inventor Hakan Lans and is similar in concept to the ADS-B transponder system used on aircraft for position reporting.

AIS uses two VHF marine channels 87B (161.975 MHz) and 88B (162.025 MHz). Transmission is by 9.6Kbps GMSK modulation using HDLC packet protocol. VHF channel access is by SOTDMA Self Organized Time Division Multiplexing. AIS uses navigational information from external on board GPS, Inertial Navigation and Ship Control systems. AIS has several different classes of equipment such as Class A, Class B, Base Station and Aids to Navigation. Depending on the Class, different types of information are transmitted when the ship is in port, or underway.

Reception

In a previous post (Ref.1) I looked at decoding AIS using Multipsk and showing the results on Google Earth. In this post, I will use aisdeco2 for decoding and OpenCPN for chart display. OpenCPN can be used independently without internet access. Ref.2 is an excellent article on how to use the RTL-SDR for AIS reception. In order to use aisdeco2 software (Ref.3), we need to determine several parameters for the RTL-SDR. The first parameter is the RF Gain and the second parameter is the Frequency Correction to be used. I used Toronto Marine Weather at 162.400MHz to make my adjustments.

For my particular unit the Frequency Correction is +27ppm and the best gain is +40.2dB. I determined this using SDR#1732 (Ref.4). Once these parameters are known, we can use aisdeco2. I downloaded the zip file, extracted it, and placed the folder in C:\ for easy command line access. Open the readme file to see the various parameters. I modified the command in the readme file for a gain of 40.2dB, frequency correction of +27ppm and UDP port access of 127.0.0.1:4159. This command can be copied and pasted from the readme file into the cmd line and executed. At this point the decoder should be decoding both AIS channels and output seen under the executed command.

Fig.1 SDR# Frequency Calibration & Gain Adjustment
Fig.2 aisdeco2 Readme File
FIg.3 aisdeco2 Command Entry
FIg.4 aisdeco2 Decoded Output

Once the aisdeco2 decoder is working properly and producing output, it can be viewed on OpenCPN (Ref.5). I use Canadian Charts RM-CEN03. OpenCPN needs to be setup to receive UDP information from aisdeco2. The same port setting must be used. Once the connection is setup, the AIS decodes should show up. Start zoomed out so that the symbols are very clear, then you can zoom in.

Fig.5 OpenCPN Connection Setup for aiddeco2 UDP packets
Fig.6 OpenCPN Zoom Out Showing 3 AIS Signals
Fig. 7 OpenCPN Zoom In Showing 3 AIS Signals
Fig.8 YouTube Video RTL-SDR for AIS

Please send your comments, questions and suggestions to:
contact:

YouTube Channel
YouTube Channel

References

#1 – RTL-SDR for AIS
https://jeremyclark.ca/wp/nav/rtl-sdr-for-ais/

#2. – “RTL-SDR Tutorial: Cheap AIS Ship Tracking”
https://www.rtl-sdr.com/rtl-sdr-tutorial-cheap-ais-ship-tracking/

#3. – “aisdeco2 AIS Decoding Software”
http://xdeco.org/

#4. – “SDR# 1732”
https://airspy.com/download/

#5. – “OpenCPN”
https://www.opencpn.org