simple AIS tuner and generic dual-frequency FM demodulator
 
 
 
 
Go to file
Bertold Van den Bergh efd05adf88 Add command line option to output packet timing information 2019-02-16 03:14:51 +01:00
aisdecoder Add command line option to output packet timing information 2019-02-16 03:14:51 +01:00
heatmap Merge branch 'master' of github.com:seandepagnier/rtl-sdr-misc 2016-06-02 15:58:07 -04:00
tcp_listener Fix missing includes 2017-03-27 16:49:53 +02:00
Makefile initial support for using rtl_ais as a library 2016-06-02 15:54:51 -04:00
README Update README 2016-05-10 19:08:01 -03:00
TODO Create TODO 2015-07-27 10:37:08 -03:00
convenience.c Clean tree 2015-07-12 00:46:30 +01:00
convenience.h initial support for using rtl_ais as a library 2016-06-02 15:54:51 -04:00
main.c Add command line option to output packet timing information 2019-02-16 03:14:51 +01:00
rtl_ais.c Add command line option to output packet timing information 2019-02-16 03:14:51 +01:00
rtl_ais.h Add command line option to output packet timing information 2019-02-16 03:14:51 +01:00

README

----------------------------------------------------------------------
rtl_ais, a simple AIS tuner  and generic dual-frequency FM demodulator
OS: Linux-Windows-OSX.
----------------------------------------------------------------------

------------
COMMAND LINE
------------
Use: rtl_ais [options] [outputfile]
        [-l left_frequency (default: 161.975M)]
        [-r right_frequency (default: 162.025M)]
            left freq < right freq
            frequencies must be within 1.2MHz
        [-s sample_rate (default: 24k)]
            maximum value, might be down to 12k
        [-o output_rate (default: 48k)]
            must be equal or greater than twice -s value
        [-E toggle edge tuning (default: off)]
        [-D toggle DC filter (default: on)]
        [-d device_index (default: 0)]
        [-g tuner_gain (default: automatic)]
        [-p ppm_error (default: 0)]
        [-R enable RTL chip AGC (default: off)]
        [-A turn off built-in AIS decoder (default: on)]
            use this option to output samples to file or stdout.
        Built-in AIS decoder options:
        [-h host (default: 127.0.0.1)]
        [-P port (default: 10110)]
        [-T use TCP communication as tcp listener ( -h is ignored)]
        [-t time to keep ais messages in sec, using tcp listener (default: 15)]
        [-n log NMEA sentences to console (stderr) (default off)]
        [-L log sound levels to console (stderr) (default off)]
        [-S seconds_for_decoder_stats (default 0=off)]
        When the built-in AIS decoder is disabled the samples are sent to
        to [outputfile] (a '-' dumps samples to stdout)
            omitting the filename also uses stdout
        Output is stereo 2x16 bit signed ints
        Examples:
        Receive AIS traffic,sent UDP NMEA sentences to 127.0.0.1 port 10110
             and log the senteces to console:
        rtl_ais -n
        Tune two fm stations and play one on each channel:
        rtl_ais -l233.15M  -r233.20M -A  | play -r48k -traw -es -b16 -c2 -V1 -

---------
COMPILING
--------- 
Make sure you have the following dependencies:
  - librtlsdr
  - libusb
  - libpthread

Get the source code:
    git clone https://github.com/dgiardini/rtl-ais 
Change to the source dir  
    cd rtl-ais
then type 
    make

Test running
    ./rtl_ais

For compiling a MS Windows executable you will need a working MSYS/MinGW environment.
Edit the Makefile, and modify these lines:

#### point this to your correct path ###
RTLSDR_PATH="/c/tmp/rtl-sdr/"
RTLSDR_LIB=$(RTLSDR_PATH)/build/src/
########################################
-------  
INSTALL
-------
On Linux, copy the rtl_ais file to a binary path, i.e.  /usr/bin, or /usr/local/bin. 
On Windows, put the librtlsdr.dll and libusb-1.0.dll files in the same directory
with rtl_ais.exe. You'll need the zadig driver installed too.

------------
KNOWN ISSUES
------------
The [-p ppm error] parameter is essential for rtl_ais to work.
The ppm error is the frequency deviation in parts per million from the desired tuning 
frequency, and the real tuned frequency due to the crystal oscillator deviation. This 
figure is different for each device, it's very important to know  this value and pass this parameter to rtl_ais.

Some instructions for get the ppm error are here:

http://www.rtl-sdr.com/how-to-calibrate-rtl-sdr-using-kalibrate-rtl-on-linux

and here (using SDR#):

http://www.atouk.com/SDRSharpQuickStart.html#adjusting

and here (using HDSDR ad AIS traffic)

http://www.cruisersforum.com/forums/f134/new-rtlsdr-plugin-102929-11.html#post1844966