/rtl-ais

A simple AIS tuner and generic dual-frequency FM demodulator

Primary LanguageC

----------------------------------------------------------------------
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 on E4000 rtl SDR:
    ./run_rtl_ais_deb_test.sh
 
-------  
INSTALL
-------
On Linux, copy the rtl_ais file to a binary path, i.e.  /usr/bin, or /usr/local/bin.  

------------
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