Ships – Android application


VIDEGRO’s Ships is a free Android application which allows you to receive AIS information directly from ships in your neighbourhood using a cheap DVB-T-DAB-FM / RTL-SDR receiver.

IMPORTANT: You need to have an OTG capable Android device and a DVB-T-DAB-FM / RTL-SDR receiver, otherwise this application is useless.

It is an all in one application. This means that these 3 features are combined in VIDEGRO’s Ships:

  1. Find the parts per million offset (PPM) of your DVB-T-DAB-FM / RTL-SDR receiver using the build-in utility;
  2. Receive the AIS data directly from air;
  3. Plot ships data and traces without delay onto a map (or send it to another application like OpenCPN).

Please report any bugs before giving negative feedback so we can fix them as soon as possible.

Minimal requirements

You can use this app on a device with OTG-support and a so called RTL-SDR dongle connected, in an area where AIS data is available in the air. You must be allowed by local law to receive and process AIS signals.

The Ships development team (VIDEGRO) will not be held responsible for any legal issues that might be caused by usage or possession of the app. It is your responsibility to comply with your local law(s) before using Ships. Besides of that we are also not responsible for any issues like financial, raised by using this app and receiving faulty, incomplete and/or delayed information.

Where could I buy a compatible RTL-SDR dongle?

Please search at eBay for ‘RTL2832U‘ price should be less than 10 euro. Besides of that you also need an OTG cable which is also not expensive at all.

Also tested with the ‘RTL-SDR Blog V3 R820T2 RTL2832U 1PPM TCXO SMA Software Defined Radio‘ and guess what… it WORKS! You don’t need to use the calibrate functionality, just enter 1 as PPM-value and it works out-of-the-box! Buy it here: RTL-SDR Blog shop.

Why should I use the Ships-app and not another Android-app which is displaying the ships data on a map?

Of course you are free to select your app, this app is however unique because:

  • It does not need an Internet/data connection to receive ships data, it is receiving live / real data from air;
  • It is not limited in number of ships;
  • There is no extra delay added;
  • No in app purchases: It is free of charge!

Can I use this app in my area/country? /
Is it allowed to use this app in my area/country?

This app works everywhere where you are able to receive AIS data. To show the maps you need to have a working data connection or cache the map data in advance. To receive the AIS data from air could be regulated by your local authorities.

Preparation

Before receiving ship data, you have to fill the dongle specific PPM value. In this app a calibrate utility is build in. You can use this utility only in an area with ships because the utility is using actual AIS data from ships. It is possible that this PPM value will change when your dongle is warming up. There is no clean solution build in this app to solve this problem, when you know the new value, you have to change the PPM by hand from the settings.

You can use this app without Internet/data connection. In this case maps are not loaded/refreshed. To use the app without Internet/data connection but with maps, prepare/cache your maps. To do so:

  1. Make sure you have an Internet/data connection;
  2. Navigate the map to the desired area and zoom manually all zoom-levels;

Your map-data should be cached now at your device.

How to use

In the chapter we will learn you how to use this application in order to maximize the fun you have with observing the boats.

  1. Buy DVB-T-DAB-FM receiver

    Example of a DVB-T-DAB-FM / RTL-SDR receiver

    Buy a cheap RTL2832U / RTL2838UHIDIR based DVB-T-DAB-FM receiver USB stick at i.e. eBay, DealExtreme etc. I bought mine for < 10 euro. Take a delivery time of several weeks into account. You also need to buy a USB-OTG cable.

  2. Connect DVB-T-DAB-FM receiver

    Insert the DVB-T-DAB-FM receiver into your tablet, smartphone or other Android device using the USB-OTG cable.

  3. Install VIDEGRO’s Ships from Google Play

    Install the application from: https://play.google.com/store/apps/details?id=net.videgro.ships.

    Get it on Google Play
  4. Start VIDEGRO’s Ships

    The first time you start the application, you have to enter the specific PPM value for your receiver. Remember: First insert receiver and secondly start the application!

  5. Set PPM

    No PPM value was set. Use the build in utility to find the PPM or set in manually in the Settings.
    Allow the app to access the USB device.
    Congratulations: A PPM value has been found using the build in utility. The app will start receiving AIS data.

    Each DVB-T-DAB-FM receiver has it’s unique parts per million offset (PPM). In case you know this value already, enter it using the settings otherwise you could use a build in utility to find the PPM of your device. Be sure you are in an area with multiple ships and go outside. You can make a choice reflecting the density of ships in your area. Allow the app to access the USB device. Average calibration time is between 5 and 10 minutes. Please be patient. You only have to do this once for each DVB-T-DAB-FM receiver. Make sure to make a note of this PPM value for future use. Typical values PPM are between -100 and +100.

  6. Receive AIS data

    When the correct PPM value has been set, the application will start receiving AIS data from ships nearby. To improve reception, go outside! When ship data has been received, it will be plotted on the map. Click a ship to show a pop-up with ship details.

  7. Show Ship details

    By clicking on a ship, a pop-up will open, showing ship details like call sign, ship type and status. The direction, speed and size of the ship are also reflected graphically in the map by respectively the angle of the icon, a green line in front of the icon and the size of the icon.

  8. Settings

    By entering the settings you can: Select the level of logging, disable zoom to extend (don’t automatically zoom), manually enter the PPM value, invalidate the PPM value (so you can use another receiver) and finally log the NMEA decoded messages to another computer which is running AIS displaying software such as OpenCPN.

  9. Hiding layers

    By clicking the plus (+) sign on the map, you can select which map layers you are interested in. You can en/disable your own position on the map, OpenSeaMap symbols, Ships and Ship traces.

Secondary features

  • Possibility to send the received NMEA data via UDP to other applications like OpenCPN.

Explanation about requested permissions

Location

The application needs the ‘precise location (GPS and network-based) / approximate location (network-based)’-rights to show your position at the map.

Network

Allows the application to get ‘information about network state’ / ‘network access’ which is needed to retrieve OpenStreet-maps from the Internet. Besides of that it is used for retrieving ads (AdMob) and for some anonymous usage logging (Google Analytics).

Write external storage

Reflected in the permissions ‘modify or delete the contents of your USB storage’ and ‘test access to protected storage’.  The map tiles are cached at your disk to reduce network usage and speedup viewing the maps.

Third party apps / OpenCPN

It is not the intention to rebuild an application like OpenCPN. The app is not so sophisticated as OpenCPN, instead this Android-app has a unique combination of three functionalities:

  1. Calibration tool for the RTL-SDR dongle (determine dongle specific PPM value);
  2. Receive AIS data directly from air on your Android device;
  3. Plot the AIS data on a map at your Android device. Without delay, without extra paid options. All free of charge!

When you would like to use the full functionality of OpenCPN, this app is capable to relay the data to OpenCPN. In case you would like to run this Ships app and OpenCPN at the same device, just leave the settings in Ships-app untouched and create in OpenCPN an incoming connection at IP address 127.0.0.1 and UDP port 10110.

When you would like to run OpenCPN at another computer (desktop/laptop), change via the Settings the ‘AIS messages destination host’ to the IP address of the computer which is running OpenCPN. Make sure the firewall at the computer which is running OpenCPN is accepting incoming UDP data at port 10110. In OpenCPN create an incoming connection at the IP address of the computer running OpenCPN and UDP port 10110. Caution: This IP address is NOT the IP address of your Android device when you are running OpenCPN on another device. Afterwards restart Ship-app to use the new settings. Of course UDP traffic should be routable from the Android-device to the computer running OpenCPN (wifi-network/Internet).

More information

Use your Raspberry Pi as a cheap Automatic Identification System (AIS) receiver

Bugs / Comments

In case you experience bugs or when you have some other comments, please drop them below in the comments box, instead of posting negative feedback at the Google Play store. We will try to fix the problems as soon as possible.

When you see this pop-up, your DVB-T-DAB-FM / RTL-SDR receiver is maybe not compatible or it is still running. You can try to fix the second problem by removing the receiver and restart the application.

Known issue:
At the moment it is not possible to stop the DVB-T-DAB-FM receiver in a clean way. So when we (re)connect the receiver, we have to restart the complete application.

Open source
It is an Open Source project, please contribute your improvements at: VIDEGRO’s Ships at GitHub.