AIS receiver for RTL SDR dongles, Airspy R2, Airspy Mini, Airspy HF+, HackRF, SDRplay and SoapySDR
GPL-3.0 License
Option to send fully decoded AIS messages in JSON format via UDP and TCP (similar to screen output with -o 5
). Add JSON_FULL on
to ~P/S/u
.
Bug fix for connecting serial devices in macOS
Option to select columns in the table (and many more options added):
Option to use text description in tables for ship type
Overlay in AIS-catcher webviewer that shows possibility of atmospheric ducting conditions enable long range AIS reception
Added debian packages and installation script
Published by jvde-github 5 months ago
-f
-switch to either append NMEA lines to file (-f filename MODE APP
for appending - default) or starting fresh with -f filename MODE OUT
-N IP_BIND localhost
. By default the webviewer is visible by other machines on the network.-F
(turbo boost mode and no webviewer) or when overwritten with -MPublished by jvde-github 8 months ago
Published by jvde-github 8 months ago
Main change is the introduction of a community feed. See vessels received by nearby stations in your webviewer. Feed the aiscatcher.org server by running with -X and enable a map layer in the webviewer with nearby vessels from a return feed.
Other changes:
f
that writes the NMEA lines to a specified file-T 600 nomsg_ony
. This will help cure network connections for input or devices going stale without an errorPublished by jvde-github 9 months ago
/geojson
and for KML output, please navigate to /kml
(enable with the-N geojson on
and -N kml on
). The KML feature facilitates the visualization of ship positions in Google Earth Pro. Be sure to add a network link and configure the auto-refresh rate in GE. A demonstration of the use of GeoJSON is plotting the vessels on the tar1090 map.
Published by jvde-github 11 months ago
v0.55 is the latest version and introduces the following:
-N CONTEXT yyyy
which will store the settings in the web browser in yyyy
. This will allow to separate setting storage when running multiple web clients.-e ...
or gpsd -t gpsd ...
) is now included in HTTP client push-u x.x.x.x y UUID u
. For future versions we are exploring adding HMAC authentication.Published by jvde-github 12 months ago
v0.54 is the latest version and adds:
A "Settings Menu" providing access to additional (styling) options for the webclient:
Option to change the displayed units in the settings menu (metric system, imperial system and AIS native units)
Functionality to plot a list of all vessels on top of the map. This will only be visible for larger screens (click on ship icon on top right map)
retires the Curl library for HTTP message sending and directly uses a built-in TCP client leveraging openssl where needed for secure servers. This means that if you want to send data to a secure server, you have to build with the ssl development libraries:
sudo apt install libssl-dev
Published by jvde-github about 1 year ago
New:
-N REALTIME on
.-N REALTIME on
and selecting the option in the context menu-o x
). GPS output can be filtered out using FILTER ON GPS OFF
directly after the -o x
switch where x is the output mode. Also works for TCP and UDP output.Published by jvde-github about 1 year ago
Windows binaries support the RTL_SDR Blog V4 dongle
Published by jvde-github about 1 year ago
/home/jasper
) and clone the necessary web assets:git clone https://github.com/jvde-github/webassets.git
Next run AIS-catcher with the CDN argument to point the webserver to the created directory with web content:
AIS-catcher -x 192.168.1.120 4002 -N 8100 CDN /home/jasper/webassets
-F
.-ge print on
to dump raw input from serial device to screen-go VDO on/off
)-N use_gps on/off
and -N own_mmsi xxxxx
added. The former toggles the use of GPS NMEA input as location for the receiver station (default is on). The latter sets the station's location as the location of the vessel with the specified MMSI. The own mmsi will be highlighted.-S 5011
. AIS-catcher can read from this TCP server at address raspberrypi
, e.g. like:AIS-catcher -t txt raspberrypi 5011
or use the tcp_listener
keyword in the JSON configuration.
Published by jvde-github about 1 year ago
Edge version, home for the Windows Binaries for the latest build.
Published by jvde-github about 1 year ago
-u
has option BROADCAST on
to enable sending to UDP broadcast addresses, e.g.AIS-catcher -u 192.168.1.255 BROADCAST on
ais_vessel
) that for each mmsi captures the last broadcasted data.MAX_FAILS
option for database writesPublished by jvde-github over 1 year ago
Option to read from serial devices with the switch -e
. Trialed succesfully with the dAISy hat but more testing needed:
AIS-catcher -e 38400 /dev/serial0
Furthermore:
-go ID xxx
that sets the station_id which will automatically feed into the database-c X
, see here for an example.Published by jvde-github over 1 year ago
New additions in v0.48:
-go AFC_WIDE on
(which is now the default as well). Running the new model setting and the previous default model on a file with ~410 messages and artifically shifting the frequency to simulate dongle frequency instability, shows the following:Initial observation is that the new model (orange) has a similar message count if the dongle has no frequency offset compared to the current default model (blue), i.e. for the case of zero shift. The new model hears a similar number of ships but, as hoped, seems less affected if the dongle is off by +/- 5 ppm and not corrected by the -p
switch.
Published by jvde-github over 1 year ago
-t
allows setting protocol directly instead of via -gt
: AIS-catcher -t txt 153.44.253.27 5631
AIS-catcher -t gpsd localhost 2947 -N 8100 share_loc on
Published by jvde-github over 1 year ago
The most recent update presents a modest reconfiguration of the menu items, introducing additional functionalities through the use of context-sensitive menus, accessible through a right-click or long press on iOS. These new options include a theme for dark mode, the display of the station range on the map, simplified adjustment of the map's center, the availability of text-only labels, and the optional decluttering of shiplabels, showing details on the last received messsage from a vessel, among others.
Additionally a new feature has been added that sends messages to (e.g.) MarineTraffic as a TCP client (with auto-reconnect) using the -P
switch. For example:
AIS-catcher -P 5.9.207.224 6767 -P 192.168.1.239 2947
Published by jvde-github over 1 year ago
About page
the user can make a page in markdown format. The content will be shown in the About tab of the webserver:
AIS-catcher -N 8100 ABOUT about.md
Prometheus/Grafana interface
First functionality to output some metrics from AIS-catcher to Prometheus, see here.
JSON UDP input/output
JSON over UDP output: functionality to send NMEA messages packaged in a JSON object, e.g.:
AIS-catcher -u 192.168.1.235 4002 JSON on
JSON over UDP input: AIS-catcher accepts and parses this input when running as a UDP server, e.g.:
AIS-catcher -x 192.168.1.235 4002
Most external programs will not be able to accept this JSON packaged NMEA strings. It is a way to transfer received messages between AIS-catcher instances without losing meta data like the timestamp, ppm correction and signal level. These are not captured in the standard NMEA strings.
Writing AIS to PostgreSQL
The setup is fairly flexible and can be tailored to the particular needs. See READMEfor more details.
GPS, multiple receivers and plot station location on map
The latest version can run with multiple receivers in parallel. For example, one dongle for channel A+B and one dongle for channel C+D. To run with two receivers in parallel you can use a command like:
AIS-catcher -d serial1 -v -d serial2 -c CD -v -N 8100
There are a few other options that together can provide some interesting new functionality. Firstly, the webserver can share the location of the station with the front-end so it will be displayed on the map:
AIS-catcher -N 8100 share_loc on
This option is switched off by default for privacy reasons in case the webclient is shared externally. And secondly, the NMEA decoder accepts NMEA lines from a GPS device (NMEA lines GPRMC, GPGLL and GPGGA):
echo '$GPGGA, 161229.487, 3723.2475, N, 12158.3416, W, 1, 07, 1.0, 9.0, M, , , , 0000*18' | ./AIS-catcher -r txt .
These GPS coordinates will be used to set the location of the station. In this way the station can be visualized and tracked while on the move. This is useful if you use AIS-catcher to read from a hardware AIS receiver that has a built-in GPS.
All these new functions combined enables a command line like this:
AIS-catcher -r txt /dev/serial/by-id/usb-u-blox_AG_-_www.u-blox.com_u-blox_7_-_GPS_GNSS_Receiver-if00 -x 192.168.1.235 4002 -N 8100 share_loc on
The first receiver (-r txt ...) reads from a GPS device that is connected and emits NMEA lines. The second receiver (-x) reads AIS NMEA lines at port 4002 coming from another instance of AIS-catcher. The station is now plotted on the map with the location as provided by the GPS coordinates. The web-page has the ability to fix the center of the map on the location of the receiving station.
This functionality is new so reporting of bugs is appreciated.
Published by jvde-github over 1 year ago
Improvements to the web-client and ability to read NMEA over TCP and UDP.
Functionally equivalent to v0.43 which has been removed as it was consuming too many CPU cycles. This has been fixed.
Published by jvde-github almost 2 years ago
Simple webserver to view statistics of the system in action. Start the webserver as follows:
AIS-catcher -N 8100
where 8100
is the port number. If you go in your browser to the IP address of the machine running AIS-catcher and specify the port (e.g. if your machine is raspberrypi, enter raspberrypi:8100
) you will see a few tabs providing insights into the reception of your station, including signal levels, ships seen, a simple map and message rate.
There are a few additional options. For example, you can use -N PORT_MIN 8100 PORT_MAX 8200
which will cause AIS-catcher to find an available port in the range 8100 to 8200. A further option is to provide the station name and a link to an external website which will be displayed on the Statistics page and :
AIS-catcher -N STATION Southwood STATION_LINK http://example.com
To display the distance to your station you need to provide the coordinates as follows:
AIS-catcher -N LAT 50 LON 3.141592
All these options can be captured in the configuration file (in a section with name server
).
Please note that there was a problem with UDP output for the Windows version with this release. Recommendation is to use an earlier version or the Bleeding Edge.
Published by jvde-github almost 2 years ago
TXT
, see this section which should make it easy to use AIS-catcher to process and forward data from a DaisyHat.AIS-catcher -u 127.0.0.1 10110 FILTER on ALLOW_TYPE 1,2,3,5,18,19,24,27
or remove message type 6 and 8:
AIS-catcher -u 127.0.0.1 10110 FILTER on BLOCK_TYPE 6,8
Do not use spaces in the comma separated message type list. Filtering will only take effect with the filter switched to ON
(default OFF
) and the filter needs to be defined per -u
switch (or -H
and -o
).
And some smaller updates:
-M M
.-gr BLOCK_COUNT
for RTL-SDR to increase size of buffer.