AIS receiver for RTL SDR dongles, Airspy R2, Airspy Mini, Airspy HF+, HackRF, SDRplay and SoapySDR
GPL-3.0 License
Bot releases are hidden (Show)
Published by jvde-github almost 2 years ago
-M M
.-m 5
, e.g.:echo '!AIVDM,1,1,,B,3776k`5000a3SLPEKnDQQWpH0000,0*78' | AIS-catcher -m 5 -r . -o 5
which produces
{"class":"AIS","device":"AIS-catcher","scaled":true,"channel":"B","nmea":["!AIVDM,1,1,,B,3776k`5000a3SLPEKnDQQWpH0000,0*78"],"type":3,"repeat":0,"mmsi":477213600,"status":5,"status_text":"Moored","turn":0,"speed":0.000000,"accuracy":true,"lon":126.605469,"lat":37.460617,"course":39.000000,"heading":252,"second":12,"maneuver":0,"raim":false,"radio":0}
Which can be compared for example against the output of gpsdecode
:
echo '!AIVDM,1,1,,B,3776k`5000a3SLPEKnDQQWpH0000,0*78' | gpsdecode
which produces:
{"class":"AIS","device":"stdin","type":3,"repeat":0,"mmsi":477213600,"scaled":true,"status":5,"status_text":"Moored","turn":0,"speed":0.0,"accuracy":true,"lon":126.605467,"lat":37.460617,"course":39.0,"heading":252,"second":12,"maneuver":0,"raim":false,"radio":0}
Published by jvde-github almost 2 years ago
-o 4
is now -o 5
and -o 4
is a new intermediate level that shows a subset of the AIS message fields that are relevant for map plotting.-go AFC_WIDE on
to make the decoder more robust for thermal drift in cheaper RTL-SDR dongles following this discussion. Don't use this unless you have to because of a dongle suffering from thermal drift hampering reception. It will come at a cost of sensitivity. My test database shows 50% improvement in message rate of the default decoder over a standard FM-based decoder, which reduces to 30% with this switch activated. See also the section on Frequency Correction for RTL-SDR dongles.-go DROOP off
. More information can be found here
Published by jvde-github about 2 years ago
-o
to -c
(option to select AIS channels)-M D
-M T
. To activate both timestamp and above meta data use -M DT
or -M TD
.-o 3
shows NMEA lines and additional information including signal power and timestamp (with -M DT
) in JSON format so it can be easily processed in 3rd party software.-o 4
-T
switch that stops the program after a specified number of seconds to facilitate experiments.start.bat
added to Windows binaries to make it easier to set up parameters for less experienced command-line users..Published by jvde-github over 2 years ago
-go DROOP_COMPENSATION on
.-o CD
. This follows ideas from a post on the Shipplotter forum and at request of a user. The conventional decoder is available with the switch -o AB
which is also the default if nothing is specified. Note that gpsdecode
cannot handle channel designations C and D in NMEA lines. You can provide an optional argument to use channel A and B in the NMEA line with the command -o CD AB
.Published by jvde-github over 2 years ago
Small bug fix for AIS-catcher connecting to SpyServers running on Windows.
Published by jvde-github over 2 years ago
For executables, please download v0.36a
Version 0.36:
-a
which unlocks the bandwidth functionality on some devices including the RTL dongles.libsoxr
library if available (and libsamplerate
). Early experiments do not show an improvement in reception and system load but it allows for more flexibility on input sample rates. E.g.:AIS-catcher -v -go SOXR on
-gt TIMEOUT
option.make soapysdr-only
or with cmake .. -DSOAPYSDR=ON
.Published by jvde-github over 2 years ago
Version 0.35:
AIS-catcher -r CS8 moscow-12.288M.raw -s 12288000 -b -v -q
...
[AIS engine v0.34]: 212 msgs at 16.8 msg/s
[AIS engine v0.34]: 6001.74 ms
Hence, AIS-catcher identifies 212 messages with a decoding time of 6 seconds. Using the -F
switch reduces the computation time to 3.1 seconds without an impact to the number of found messages in this case:
AIS-catcher -r CS8 moscow-12.288M.raw -s 12288000 -b -v -q -F
...
[AIS engine v0.34]: 212 msgs at 31.2 msg/s
[AIS engine v0.34]: 3131.34 ms
-m 2 -go PS_EMA on
)Published by jvde-github over 2 years ago
Published by jvde-github almost 3 years ago
make
will only build for installed SDR librariesPublished by jvde-github almost 3 years ago
Support for early versions of the Raspberry Pi, e.g. the Raspberry Pi Model B Rev 2, via performance enhancements at the cost of a small tradeoff in sensitivity.
I implemented a trick to speed up fixed point downsampling for RTLSDR input at 1536K samples/second. Furthermore a new model (-m 5
) is introduced which uses exponential moving averages in the determination of the phase instead of a standard moving average as for the default model.
Both features can be activated with the -F
switch.
To give an idea of the performance improvement on a Raspberry PI (700 MHz), I used the following command to decode from a file on the aforementioned Raspberry Pi:
AIS-catcher -r posterholt.raw -s 1536000 -b -q -v
Resulting in 38 messages and the -b
switch prints the timing used for decoding:
[AIS engine v0.31] : 17312.1 ms
Adding the -F
switch yielded the same number of messages but timing is now:
[AIS engine (speed optimized) v0.31] : 7722.32 ms
This and other performance updates make the full version of AIS-catcher run on an early version of the Raspberry Pi with very limited drops.
Published by jvde-github almost 3 years ago
read from stdin and minor speed and performance improvements
Published by jvde-github almost 3 years ago
Addition of Airspy R2 support (via enabling sampling at 2.5 and 10 MHZ). Thanks to user for bringing this up.
Published by jvde-github almost 3 years ago
Addition of HackRF support at 6MHz sampling rate.
Published by jvde-github about 3 years ago
Addition of rtl_tcp support
Published by jvde-github about 3 years ago
At request of a user added ability to send UDP messages to multiple destinations, e.g.
AIS-catcher -u 127.0.0.1 12345 -u 127.0.0.1 23456
Fix bug with negative frequency correction (e.g. using -p -1)
Published by jvde-github about 3 years ago
added -n and -L switches
-n displays NMEA messages to screen without additional information
-L shows the SDR devices supported in the present executable and terminates
Published by jvde-github about 3 years ago
Initial support for SDRPLAY RSP1A
Published by jvde-github about 3 years ago
Added support for advanced Airspy HF+ gain support (pre-amp setting and treshold) (resolve compilation error rtl-only)
Published by jvde-github about 3 years ago
Added support for 6MHz sample rate for Airspy mini
Published by jvde-github about 3 years ago
Addition of more advanced gain and bias tee support and clean up