Skip to content

Releases: jvde-github/AIS-catcher

v0.40

08 Nov 19:47
Compare
Choose a tag to compare
  • Smaller bug fixes (mainly on HTTP posting) and compilation issues with older GCC versions
  • Addition of country field to JSON output (mapped from MMSI code), switch on with -M M.
  • AIS-catcher can decode NMEA lines. Not very useful but it provides a way to move the JSON analysis to the server side (send over NMEA and minimal meta data) or unit test the JSON decoder which is the prime reason for the feature. Use the model -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}

v0.39

03 Nov 17:49
Compare
Choose a tag to compare
  • -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.
  • Experimental switch -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.
  • The default downsampler uses a simple but efficient CIC5 filter. To mitigate some of the drawbacks of this method, this version now uses by default a simple droop compensator in the form of a fast 3 tap filter which can be switched off with the switch -go DROOP off. More information can be found here
  • Includes a first implementation that allows received messages to be posted using the HTTP protocol periodically. Please see this section for more details. This could be an interesting option if you want to submit data to APRS.fi or develop a cloud service for collecting data.

v0.38

29 Jul 19:39
9b6b4f3
Compare
Choose a tag to compare
  • Renamed option -o to -c (option to select AIS channels)
  • Calculation of Signal power (in dB) and applied frequency correction (in ppm) calculated with option -M D
  • NMEA messages are timestamped with option -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.
  • More extensive JSON output is provided with the switch -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..
  • ...

v0.37

12 Jul 19:09
Compare
Choose a tag to compare
  • Enable RTLSDR biastee switch in pre-build Windows binaries
  • Experimental feature to compensate some of the droop when using CIC5 for downsampling, activated with -go DROOP_COMPENSATION on.
  • Point the decoder to 156.8 Mhz to receive Channel 3/C and 4/D (vs A and B around 162 MHz) with the switch -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.
  • SDRplay support included in Windows pre-build binaries

v0.36a

01 Jul 15:52
Compare
Choose a tag to compare

Small bug fix for AIS-catcher connecting to SpyServers running on Windows.

v0.36

29 Jun 17:43
Compare
Choose a tag to compare

For executables, please download v0.36a

Version 0.36:

  • new switch -a which unlocks the bandwidth functionality on some devices including the RTL dongles.
  • extension of functionality to read WAV-files with more data types (8 and 16 bit PCM) and increasing flexibility on data layout (FACT chunk recognized).
  • removal of sampling rate restriction, experimental option to downsample using the 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
  • Non-blocking implementation for the RTL-TCP client (shorter timeout when port not reachable). Added -gt TIMEOUT option.
  • Several fixes to cmake-file
  • Dockerfile moved to Debian-slim from Alpine to resolve workflow and compatibility issues
  • SoapySDR support. Only available when build with make soapysdr-only or with cmake .. -DSOAPYSDR=ON.
  • We have set up a Github workflow to automatically build windows binaries for AIS-catcher (with full functionality), see the Actions menu. The built includes recent versions of the SDR libraries which contain improvement in stability for Windows systems (instead of relying on VCPKG builds), see also these commits.
  • SpyServer support is now included. For an example, see the README.

v0.35

19 Feb 10:44
Compare
Choose a tag to compare

Version 0.35:

  • Fast fixed point downsampling extended to CS8 datatype (signed bytes) and more sample rates (i.e. support for HackRF). We illustrate on an Ubuntu laptop with an IQ sampled file at a rate of 12.288 MHz in 8-bit signed integers. The results without fixed point downsampling:
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
  • Fine tuning of EMA model, EMA model seems to perform now at least as good and is faster.
  • Fix CMAKE file for hackrf support on Raspberry Pi
  • Fix CMAKE file for issue with compilation including ZeroMQ support on MacOS.
  • Exponential Moving Average (EMA) model is now defaullt (e.g. -m 2 -go PS_EMA on)
  • SDRPlay RSP1 and SDRPlay RSPDX support (only DX tested on Antenna A)

v0.34

29 Jan 12:58
6366960
Compare
Choose a tag to compare
  • cmake support to resolve some earlier build annoyances.
  • enhancement of reset conditions of decoder to improve reception
  • slightly faster close of program for RTL-SDR, RTL-TCP and ZMQ streams
  • Model support for a sample rate of 912K samples/second
  • RTLTCP: protocol setting (option RTLTCP and NONE for connection to GnuRadio TCP sink).

v0.33

14 Jan 18:07
becde56
Compare
Choose a tag to compare
  • restructuring of the directory layout
  • Makefile now autodetects library locations: make will only build for installed SDR libraries
  • recalibration of decoding parameters resulting in a small improvement in sensitivity
  • added instructions and a solution file for building AIS-catcher with RTL-SDR support on Windows using Visual Studio 2019 and above (at a few requests)
  • proper call to close devices at the end of the program and automatic termination if device is disconnected. For Windows please use the latest version of the rtl-sdr library with this fix.
  • ZMQ support: ability to easily transfer data from GNU Radio to AIS-catcher

v0.32

28 Dec 20:21
31df4fd
Compare
Choose a tag to compare

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.