Ships also has another interesting feature which is that it will automatically determine the PPM offset of a dongle, meaning that generic dongles without TCXO’s can be easily used for AIS. It appears to do this by using the AIS signals themselves, so you will need sufficient AIS traffic in your area for the calibration to work.
AIS stands for Automatic Identification System, and is a system used to track the locations of marine vessels. It is similar to ADS-B in that nearby ships can be plotted and tracked on a map by using an RTL-SDR as the receiver. We have a tutorial for PC available here.
RTL-SDR.com reader Mike wrote in to us today to let us know that he has released his AIS decoder for MATLAB and the RTL-SDR. MATLAB is a technical computing language used by many scientists and engineers in the world. Mike writes the following about his work:
Automatic Identification System (AIS) is a communication standard that is used by commercial and recreational maritime vessels to report a ship’s ID, position, course and other information. This data is used for collision avoidance, search and rescue and many other applications. AIS has the following characteristics:
Access protocol: Self-organizing Time Division Multiple Access (SOTDMA)
Transmission frequencies: 161.975 MHz and 162.025 MHz
Transmit Power: 2 W or 12.5 W
Modulation: Gaussian Minimum Shift Keying (GMSK)
Data Rate: 9600 bits per second
An AIS decoder that uses the RTL-SDR and MATLAB to capture AIS transmissions is posted on MATLAB Central, the MathWorks file sharing exchange. The decoder has three main components
The MATLAB Central post includes MATLAB source code for the AIS decoder, captured data files from Boston and San Francisco, an app for easy configuration and operation of the decoder, and instructions for installing the RTL-SDR Hardware Support Package and AIS Decoder app.
If you want to learn how AIS works, and how to write a decoder, then a MATLAB example like this is an excellent resource.
Recently SV3EXP wrote in to let us know that he has been documenting his experiences with trying to get aisdecoder to decode both AIS channels simultaneously. AIS stands for Automatic Identification System, and is a system used to track the locations of marine vessels. With an RTL-SDR or other SDR radio, and appropriate decoder software you can plot ship positions on a map. As the AIS system uses two separate channels for redundancy, you can get a faster and more reliable update rate if you monitor and decode both channels.
Of course the easier solution to decode both AIS channels at once is to use decoding software that already supports this, such as AISdeco2 or AISrec which can be downloaded at http://xdeco.org, and https://sites.google.com/site/feverlaysoft respectively. But regardless SV3EXP’s method does show an interesting way to demodulate multiple streams using only command line tools.
Over on YouTube user Tobias Härling has uploaded a video showing how he used a Raspberry Pi and RTL-SDR dongle to set up an AIS receiver. AIS stands for Automatic Identification System and is a radio system similar to ADS-B which allows you to create a radar-like system for boats. For Windows we have a tutorial on AIS reception here.
In his setup he uses rtl_ais and the kplex software and shows how to install everything from scratch. He also shows how to set the system up so that decoding automatically starts up and begins outputing NMEA data through the network when the Raspberry Pi is powered on. This way an a device like an iPad could be used to run OpenCPN to view the plotted ships.
AIS Share is a dual channel decoder that outputs decoded NMEA messages via UDP, so that plotting software like OpenCPN can be used to display the ships on a map. AIS Share had been around before in another form known as rtl_ais_android which we posted before, but this version of AIS Share is a newly updated and improved version that now includes a very nice GUI. The app costs about $2 and is available on the Google Play store, but there is a demo available that will work up until 1000 messages are received. You will need an RTL-SDR and a USB OTG cable to run the app.
In the future the author writes that he’d like to update the app to support things like the ability to change more dongle settings like bandwidth/sample rate and add the possibility of using the internal phone/tablet GPS. He is also open to any community suggestions.
https://www.youtube.com/watch?v=ApGk8P82THs (Unfortunately the video has been removed)
AISRec is an RTL-SDR compatible AIS decoder that is made for Windows and Android. AIS is an acronym for Automatic Identification System and is a system used by ships to broadcast position and vessel information. By monitoring AIS transmissions with the RTL-SDR we can build a boat radar system. We have a tutorial on this here (using other software).
The last time we tried AISRec we found that it had very good ability at decoding AIS messages, especially very weak ones and was by far the easiest AIS decoder to set up and use on Windows. The features include:
1. Work with all rtlsdr dongles. Allow future support for other SDR devices. 2. Stable reception of AIS signals at as low as SNR 7 dB. 3. Tolerance to frequency drifts > 30 ppm. 4. Dual-channel reception at 161.975 MHz and 162.025 MHz. 5. Channel selectivity > 56 dB. 6. Low CPU usage. No problem for Atom CPU and above. 7. Output all types of AIS messages (including Class A and Class B) in NMEA formats to UDP ports. 8. Convertion of AIVDM to AIVDO messages for your own ship. 9. Display of the received NMEA messages and the statistics.
The author of AISRec writes in an email to us an explains that the trial version has a time limit and an RX message count limit for each run, whereas the registered lite version will not. The pro version will have some additional features. Currently the author has no method for taking in paid registrations, but plans to have this ready in the future. We will post again once registration is available.
AISRecWinFull (rtlsdr, AIS)
AIS box: AISRec for the raspberry pi 2. (rtlsdr, AIS)
A reader of our blog, EBC81, has written in to let us know about a new RTL-SDR based AIS decoder that he has written for the Android OS. AIS stands for Automatic Identification System and is used by ships to broadcast their GPS locations, to help avoid collisions and aid 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.
EBC81’s program is called rtl_ais_android and can be downloaded from this GitHub link. It decodes the AIS data into NMEA messages, which can then be sent via UDP to mapping programs in Android or a program like OpenCPN on your PC. To use the app you will need a USB OTG cable to connect your Android device to the RTL-SDR.
In the future EBC81 hopes to create a second app which will display the ship positions on a map.