RTL-SDR AIS Ship Tracking: Difference between revisions
Line 193: | Line 193: | ||
Driven element is a dipole element [or actually a half-dipole], thus the length should be <math>\ell = \tfrac12 \lambda = \tfrac12 \frac{c}{f}= \frac12 \frac{299792458}{160 \times 10^6} = \tfrac12 \times 1.85 = 0.925 </math> (m). A slightly different number for speed of light (speed of radio waves in the antenna; <math>v \approx 0.97 c</math>) makes the <math>\ell</math> to be <math>\ell = 0.8975</math> m. Furthermore, the driven element is called ''folded dipole'' as it has an additional parallel wire connecting its two ends. Thus two nearly identical radiating currents are generated. See [https://en.wikipedia.org/wiki/Loop_antenna loop antenna]. | Driven element is a dipole element [or actually a half-dipole], thus the length should be <math>\ell = \tfrac12 \lambda = \tfrac12 \frac{c}{f}= \frac12 \frac{299792458}{160 \times 10^6} = \tfrac12 \times 1.85 = 0.925 </math> (m). A slightly different number for speed of light (speed of radio waves in the antenna; <math>v \approx 0.97 c</math>) makes the <math>\ell</math> to be <math>\ell = 0.8975</math> m. Furthermore, the driven element is called ''folded dipole'' as it has an additional parallel wire connecting its two ends. Thus two nearly identical radiating currents are generated. See [https://en.wikipedia.org/wiki/Loop_antenna loop antenna]. | ||
There are three (3) common mounting types of driven elements. | [[File:Antenna DE positioning.png|thumb|Positioning of the driven element.]] | ||
There are three (3) common mounting types of driven elements: below, top or middle (see the image). Actually the mounting point do not matter. | |||
Revision as of 11:38, 6 July 2024
Introduction
- AIS: Automatic Identification System.
- RTL
- SDR: Software Defined Radio
- Also: ADS-B (Automatic Dependent Surveillance-Broadcast) for aircraft surveillance. 1090 MHz
Need a radio dongle, antenna. Use Arduino and RPi.
RTL-SDR V3
My dongle seems to be original, according to https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/
V3 Datasheet is at https://www.rtl-sdr.com/wp-content/uploads/2018/02/RTL-SDR-Blog-V3-Datasheet.pdf
- Install the custom drivers in order to make the V4 work
- RTL-SDR Blog driver fork from https://github.com/rtlsdrblog/rtl-sdr-blog.
- Release.zip file from the Releases page. For SDR# extract the rtlsdr.dll file from the x86 folder to the SDR#. For most other x64 programs, use the rtlsdr.dll file in the x64 folder.
Software
Frequencies 161.975 MHz and 162.025 MHz, thus by adjusting the frequency to 162.000MHz we can listen to both frequencies. Marine VHF is narrow band (NFM) Ch16 is on 156.8MHz.
SDRSharp, SDR#
SDR#, brief tutorial:
- set your audio piping method in the Audio output drop down box
- tune to an AIS frequency (161.975 MHz or 162.025 MHz). the signals may not appear exactly on the AIS frequencies (the RTL-SDR is not frequency accurate (unless you have a RTL-SDR with TCXO)). Tune manually until the signals are properly centered, or set the PPM offset correctly.
- adjust the RF gain such that the signal is strong, but the noise floor is low.
- use a program for decoding:
- AISdeco2 not working anymore (2024)
- SDRangel: https://github.com/f4exb/sdrangel/blob/master/plugins/feature/ais/readme.md and Wiki Home
- AIS Catcher: https://github.com/jvde-github/AIS-catcher?tab=readme-ov-file
AISCatcher
https://www.youtube.com/watch?v=8wRIYuFXOqE
- In built-web server:
AIS-catcher -v 10 127.0.0.1 -M DT -N 8100
- Use external data from https://airspy.com/directory/:
AIS-catcher -v 10 127.0.0.1 -M DT -N 8100 y 37.136.93.253 5000
AirSpy
OpenCPN is a plotter.
AISmon
SDRangel
- Wiki https://github.com/f4exb/sdrangel/wiki
- More than only a AIS decoder.
- See https://www.youtube.com/watch?v=zugH-7yn-Mc for more information, and Jeremy Clark's web page https://jeremyclark.ca/wp/telecom/rf-signal-propagation-calculations_splat/
AIS Data received
- Date. Eg: Tue Jun 18 2024
- Time. Eg: 12:07:49
- MMSI: Maritime Mobile Service Identity. Eg: 230011000
- Country. Eg:
- Type. Eg: Static data report // Standard Class B equipment position report // Ship static and voyage related data // Position report (Scheduled) // Position report (Interrogated) // Data link management message // Base station report //
- Id. Eg:
- Data. Eg: Type: Vessel - Sailing Vendor ID: SRTH%GM Callsign: OH8682 // Type: Vessel - Pleasure craft Vendor ID: AMC@ANM Callsign: OH6573 // Name: MAIJU // Lat: 91° Lon: 181° Speed: 102.3 knts Course: 360° Status: Moored // Lat: 59.5295° Lon: 24.7398° Speed: 24.2 knts Course: 339.7° Status: Under way using engine // Lat: 59.5168° Lon: 24.8398° Tue Jun 18 09:37:29 2024 GMT // IMO: N/A Callsign: ES2735 Name: AHTO-28 Type: Pilot vessel Destination: MUUGA //
- NMEA 0183(?) (National Marine Electronics Association). See https://pypi.org/project/pyais/ Eg: !AIVDM,1,1,,,13KIo6P000QiV=:R2p;u2Db@2H59,0*4b // !AIVDM,1,1,,,13KtJ`04PaQiHGJR0w6j2GWT0D2I,0*08
// !AIVDM,1,1,,,347eHF50P0QiIBRR0qsWLFgN2000,0*2e // !AIVDM,2,1,1,,54cac6429V2GQ1=2221LTi<tr20QDl8E:22222169p;975SV091AE33888888,0*73
!AIVDM,2,2,1,,8888888880,2*5c
- Hex. Eg: 14420221e2025bcd4854cc4800003594d40520000000000000000000003d0baf92485a497914515604ef2df8624814c00000000000 // 0441fbd883e0000871275fa2059611b9ffac008364
- Slot. Eg:
NMEA
NMEA 0183(?) (National Marine Electronics Association). See https://pypi.org/project/pyais/ or https://gpsd.gitlab.io/gpsd/AIVDM.html
- Comma-separated fields, eg !AIVDM,1,1,,B,15MwkT1P37G?fl0EJbR0OwT0@MS,0*4E
- !AIVDM: the sentence is an AIS message in the "VDM" (VDO Message) format.
- 1,1: the total number of sentences in the message and the current sentence number, respectively.
- Blank
- B: the communication channel. In this case, the channel is "B".
- 15MwkT1P37G?fl0EJbR0OwT0@MS: the message in Six-bit ASCII.
- 0*4E: a checksum.
- Eg, Position Report" message: position, course, and speed.
Eg: !AIVDM,1,1,,,13KIo6P000QiV=:R2p;u2Db@2H59,0*4b // !AIVDM,1,1,,,13KtJ`04PaQiHGJR0w6j2GWT0D2I,0*08 // !AIVDM,1,1,,,347eHF50P0QiIBRR0qsWLFgN2000,0*2e // !AIVDM,2,1,1,,54cac6429V2GQ1=2221LTi<tr20QDl8E:22222169p;975SV091AE33888888,0*73
!AIVDM,2,2,1,,8888888880,2*5c
Theory -- AIS decoding
https://www.rtl-sdr.com/rtl-sdr-tutorial-cheap-ais-ship-tracking/
Radio Dongle
https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/
https://www.ebay.com/str/rtlsdrblog
Antenna
The frequency of AIS signal is 161.975 MHz and 162.025 MHz, and have the max range of about 70 km. Is is a line of sight signal. I wish to have 180 degrees view.
I decided to make two different Yagi antennas both working at 162.0 MHz. Both antennas have the reflecting and driven (dipole) elements, and two (2) or three (3) directional elements. The dimensions (given by k7mem, using non-metallic boom, boom diameter 20mm and element diameters 2.5 mm) are following:
Gain | Hor beam width | Refl pos | DE pos | D1 pos | D2 pos | D3 pos | |
---|---|---|---|---|---|---|---|
2 Element Lengths |
4.007 dBd | Nan deg | 0 | 370.11 | |||
907.55 | 901.08 | ||||||
3 Element Lengths |
5.382 dBd | 75.9 deg | 0 | 370.11 | 508.91 | ||
907.55 | 901.08 | 840.99 | |||||
4 Elements Lengths |
6.756 dBd | 59 deg | 0 | 370.11 | 508.91 | 842.01 | |
907.55 | 901.08 | 840.99 | 835.12 | ||||
5 Elements Lengths |
8.003 dBd | 52.0 deg | 0 | 370.11 | 508.91 | 842.01 | 1239.88 |
907.55 | 901.08 | 840.99 | 835.12 | 827.89 |
Driven element is a dipole element [or actually a half-dipole], thus the length should be (m). A slightly different number for speed of light (speed of radio waves in the antenna; ) makes the to be m. Furthermore, the driven element is called folded dipole as it has an additional parallel wire connecting its two ends. Thus two nearly identical radiating currents are generated. See loop antenna.
There are three (3) common mounting types of driven elements: below, top or middle (see the image). Actually the mounting point do not matter.
https://www.k7mem.com/Ant_Yagi_VHF_Feed.html
Material: Common 1/4" copper tubing is often a good choice, or aluminum tubing
Other antenna types I considered:
- Quarter wave / dipole. One vertical 1/4 wave element connected to the center of the coax cable and 4 (or more) more grounding elements pointing towards the the ground at 45 deg. A quarter wave antenna calculator: https://jeroen.steeman.org/Antenna/Quarter-Wave-Antenna-Calculator
- Coax collinear antenna. Very high omnidirectional gain. Multiple short coax cables where the outer conductor is connected to the inner conductor in an alternating fashion.
- Slim Jim.
https://arundaleais.github.io/docs/ais/aerial.html
Refs:
Programming
Raspberry Pi AIS
Aim: To listen the data and to send it to a MySQL database for further usage. Also, take some photos.
- https://ranous.wordpress.com/wp-content/uploads/2018/02/rtl-sdr4linux_quickstartv2-18.pdf
- https://github.com/jvde-github/AIS-catcher
- https://www.klofas.com/blog/2021/ais-decoding-with-rtl-sdr-dongle/
- https://www.satsignal.eu/raspberry-pi/AIS-receiver.html
- https://github.com/mcqn/shpi-ais
- https://github.com/dgiardini/rtl-ais
- https://www.sarcnet.org/ais-receiver.html
- https://forums.raspberrypi.com/viewtopic.php?t=115380
- https://www.stripydog.com/kplex/