Tagged: AIS

Ships: New RTL-SDR Compatible Android App for AIS Reception and Plotting

Today an Android app programmer sent a message to let us know about his new open source RTL-SDR compatible AIS app called Ships.  This is a free app that allows you to decode AIS signals, and plot them directly onto an OpenStreetMap/OpenSeaMap or output the data via UDP to another mapping program.

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.

The app can be downloaded for free on Google Play, and the open source code is available on GitHub.

Ships RTL-SDR Android App Screenshot
Ships RTL-SDR Android App Screenshot

An AIS Decoder for MATLAB and the RTL-SDR

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

  1. Software to connect MATLAB to the RTL-SDR and bring IQ data directly into the MATLAB workspace (http://www.mathworks.com/hardware-support/rtl-sdr.html)
  2. Demodulation and decoding algorithms to convert the IQ samples into bits and decode the AIS data (http://www.mathworks.com/products/communications/)
  3. A user interface to configure the RTL-SDR, launch the capture and decoding process, and display the decoded messages (http://www.mathworks.com/matlabcentral/fileexchange/57600-ais-decoder)

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.

Using Aisdecoder to decode both AIS channels simultaneously

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.

On his blog SV3EXP shows how he uses Linux and the “demod” and “csdr” tools to demodulate multiple channels at the same time from IQ data generated by rtl_fm. The demodulated data is then fed to the aisdecoder software for decoding, and then fed to aisdispatcher for feeding the AISHub.net AIS data aggregation website.

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.

SV3EXP also wanted to point out that he is selling a bias tee powered PSA4-5043+ based LNA on eBay which is compatible with the bias tee on our RTL-SDR Blog SDR units.

AISHub Coverage Areas
AISHub Coverage Areas

Setting up a Raspberry Pi Based AIS Receiver with an RTL-SDR

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.

AISRec Updated to Version 2.1

AISRec is an RTL-SDR (and now Airspy) compatible AIS (automatic identification system) dual channel decoder. 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.

Last time we tried AISRec we found its performance to be very good, with it decoding more messages than other software we tried. The new version includes the following updates:

  • Added auto detection of devices when devices are plugged in.
  • Added the support for airspy. Allow selection of devices by serial number for rtlsdr dongles.
  • Added AISRec core 3.0. The new core is 2x faster than AISRec core 2.0.
  • Added one embedded multi-user TCP server. Any client works with AISRec should implement auto reconnection.
  • Added auto display of local IP for the TCP server.
  • Added one output to one serial port.
  • Added interactive changes of gain parameters for devices.
  • A few changes on GUI.
  • Added an icon for GUI. Users should reset the windows icon buffer to allow the display of the new icon.

In addition, while AISRec hopes to be commercial software one day, at the moment they are currently offering free registration. See their FAQ for information on registering for free.

AISRec running with OpenCPN.
AISRec running with OpenCPN.

Using AIS Share, OpenCPN and an RTL-SDR on a Sailboat

AIS Share is an app for Android that allows you to turn an Android device into an AIS receiver by using an RTL-SDR. 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.

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.

Recently the author of the app received word from a user called Harmen who has successfully been using his AIS Share app on his sailboat. Harmen uses the app on an Android tablet which is enclosed in a waterproof box. For an antenna he uses a coax collinear.

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.

AIS Share Receiver on the sailboat in a waterproof case.
AIS Share Receiver on the sailboat in a waterproof case.
The back of the Android Tablet, showing the RTL-SDR and the antenna connection.
The back of the Android Tablet, showing the RTL-SDR and the antenna connection.
The AIS Share main screen GUI.
The AIS Share main screen GUI.

https://www.youtube.com/watch?v=ApGk8P82THs (Unfortunately the video has been removed)

AISRec: Windows and Android AIS Decoder

Back in 2015 we posted about the free trial version of AISRec a few times, but we never really saw a full completed version get released. So far this year the full version is still not released, but the programmer Jane Feverlay has created a website and uploaded the latest Windows version of their trial version software

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.

AISRec Running with OpenCPN
AISRec Running with OpenCPN

 

A new AIS Decoder for the RTL-SDR on Android

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.