I am getting more and more interested. Following this thread for some time now.
So finally got my DIY flowerpot antenna on the roof at the same height as the adsb antenna & this is the most I have received at once up to now. Its amazing how much more vessels I can get at night when the RF noise reduces
I received max 35 vessels at a time. This is weather dependent, when humidity is high, reception improves. It happens sometimes in day, and sometime in evening or night.
I tried to purchase a 162 MHz filter to reduce Cell/Mobile RF interference. I could find only one seller. I was tempted to purchase it, but its price was very high, and on top of that shipping and taxes made the total price ridiculous. I drpped the idea to purchase it.
Yeah it’s quite a foggy evening so prob that, I know in the day it can drop to as low as 2 vessels. I bought the uputronics LNA & without it max I get is 3-4
Did you conduct test to determine ppm offset? The AIS channels are narrow band and if ppm value is high and not corrected in config, it may result in poor reception.
Please go to following post
Howto Run ADS-B Receiver + AIS Receiver on Same RPi
Scroll down to following heading:
PPM CORRECTION
Yeah I’m on - 2 ppm, offset been checked. I do think it’s because of how far inland I am.
This is the settings in AIS Catcher that I have found to be the most effective after alot to tweaking. And at the time of the screenshot was getting 23 vessels
Note that in file aiscatcher.conf
, I have kept tuner gain 36.4 and RTLAGC off
abcd@debian11:~$ cat /usr/share/aiscatcher/aiscatcher.conf
-d 00000162
-v 10
-M DT
-u 127.0.0.1 10110
-u 5.9.207.224 xxxxx
-u ais.vesselfinder.com xxxx
-gr TUNER 36.4 RTLAGC off
-s 2304k
-p 35
-o 4
This is what I get now:
sudo journalctl -u aiscatcher -n 150 | grep msg
Below is output of above command
Rightmost column shows message rate (msg/sec) which varies between 1.5 & 2
Well I spent 2hrs trying out various ppm, gain and I think leaving it on auto gain with AGC on and ppm -2 gives me the best results tbh. I can’t get the msg rate any higher than 0.9. I do think I’m terrain limited, plus as a previous post mentioned, their is a hill that’s 120m higher than the antenna height in the way about 6miles from my house to the port which affects getting most of the vessels in the port area itself. Alot of the vessels I currently get are either out at see 1-2nm from shore, or further down the coast below the area blocked out by the hill. Also I do think their is RF interference during the day which impacts reception of weaker signals in combination with being 19miles inland.
Below in Red circle is the Hill and in Green is where most of my msgs come from
Here are a couple of extra options which may help you squeeze a bit more out of your set up.
- Turn on droop compensation (if not already enabled)
The developer’s github page confuses me a bit on this option. It is now enabled by default in the development version (Windows). My compiled Linux version does not recognize the “-go droop on/off” option as listed in the README, but if I use “-m 2 -go droop_compensation on” it works. I can say it really did bump up my message rate.
- Try a narrower tuner bandwith
The developer now suggests trying “-a 192K”. I have gone lower and use a figure of 88K after trying to see how narrow I could go without negative impacts. I have searched with no success on whether one can chuck any value in this field or if the RTL-SDR only uses set values. I can’t say if my bandwith is 88K or being rounded to the nearest acceptable value.
- Dispense with the ppm option all together as a test
My Blog v3 dongle, as advertised, had a ppm of 1. As an exercise in OCD I added that to my options list and found the results to be a bit worse. Unless you have a noticable drift, it may not be worth the effort.
I’ve gone back and forth a lot with the rtlagc option, but now operate with it ON. Performance is a bit more stable in my view.
AIS Dongle = $10 Generic DVB-T (Black), NO TCXO
Test Command:
sudo journalctl -u aiscatcher -n 200 | grep -o 'received.*'
ORIGINAL: with ppm correction 35 ( -p 35
)
MODIFIED: Line ( -p 35
) Removed.
One thing to bear in mind about AIS is that the transmission rate is highly variable, and depends not only on the number of vessels within range, but what those vessels are doing.
Vessels will transmit static data once every 6 minutes (things like name, draught, destination etc) or occasionally more often if requested by a shore station or a change has been made to it.
Class A vessels will transmit according to their speed and course as follows:
- Anchored or moored vessels or those doing less than 3 knots transmit every 3 minutes.
- Anchored or moored vessels doing more than 3 knots (eg dragging anchor, or forgot to update status) transmit every 10 seconds.
- Vessels underway and doing between 0-14 knots transmit every 10 seconds, or every 3.5 seconds if changing course.
- Vessels underway and doing 14-23 knots transmit every 6 seconds or every 2 seconds if changing course.
- Vessels doing over 23 knots transmit every 2 seconds whether changing course or not.
Class B+ SOTDMA vessels use the following schedule:
- <2 knots, every 3 minutes
- 2-14 knots, every 30 seconds
- 14-23 knots, every 15 seconds
- >23 knots, every 5 seconds
Class B vessels use the following:
- <2 knots, every 3 minutes
- >2 knots, every 30 seconds
SAR aircraft transmit every 10 seconds.
Aids to navigation transmit once every 3 minutes.
Base stations transmit every 10 seconds.
Note that these rates can sometimes vary somewhat depending on interaction with base stations, or if it is heavily congested - unlike ADS-B, AIS is self organising and uses scheduled transmissions, so stations can reduce their transmission rate if there is insufficient time available.
Because of this, message rate is probably not a very good metric to use for performance tuning unless you have a second receiver to compare directly against, or the ability to test against sample recordings for algorithm tuning.
It may be better to concentrate on achieving maximum range - Class B and B+ use a lower transmitter output and tend to be on smaller craft, so expect shorter range for them. Class A is usually used by commercial vessels and large ships with a higher power output, and usually have antennas mounted much higher above the water line so will be visible much further.
In my experience using dedicated AIS receivers on boats, it’s typical to see Class A vessels out to the radio horizon without difficulty under normal conditions. Class B can often be less than the radio horizon because installation quality varies considerably and is often less then optimal.
If there is tropo ducting, then all bets are off - I’ve seen vessels from over 400 miles away before, so if you are seeing stations more than a few miles over the horizon then the data is probably not much use for assessing your receiver.
PPM of 35 is huge. Most of the FA dongles are around 1, hence the suggestion to dispense with it. I’m using an orange FA dongle and it tested at 1.
Most of costlier Dongles have TCXO, and dont need PPM correction.
I am using Cheap Generic Dongle (Black) which I purchased several years ago from China for $10 + Free Shipping. It does NOT have TCXO, that is why it’s PPM correction is huge (35).
sudo journalctl -u aiscatcher -n 300 | grep -o 'received.*'
TCXO implies stability rather than accuracy. That is, once it has reached a stable temperature the frequency will not drift very much. It does not guarantee the frequency.
It is probably not wise for optimum reception to ignore the oscillator error and assume it is insignificant.
I have a blue one that looks the same and the frequency error is 72 ppm. For every 1 Mhz it is 72 Hz off frequency. At 162Mhz that is about 12 Khz which is most of the way into the adjacent channel.
Try this command to see what the received signals’ frequency offset is and adjust accordingly
sudo journalctl -u aiscatcher -n 200 | grep 'ppm'
$10 Generic DVB-T Black, with ppm correction -p 35
in file aiscatcher.conf
:
sudo journalctl -u aiscatcher -n 20 | awk -F',' '{print $4}'
This is what I’m getting at - 2 ppm, I did have a strange dip this morning where it went from 30 vessels to 9 in 10 mins then started to go back up to the 27-28 mark after sitting at 16 for 10 mins
Right now I am also having a strange dip in number of vessels tracked, but range is still good. My setup is tracking a ship as far South as Lake Erie.
@abcd567 Quick question, I have added the BIASTEE on to the config file
sudo nano /usr/share/aiscatcher/aiscatcher.conf
but when the PI reboots it dosn’t auto enable it, to get it working I have to Stop & restart AIS Catcher then the light on the LNA comes on. you have any ideas how to fix it?
To stop
sudo systemctl stop aiscatcher
To restartsudo systemctl restart aiscatcher
In RTL-SDR Blog V3 dongle, the Bias-T should be switched on before decoder software starts. This problem occures in dump1090-fa and dump1090-mutability also. The solution was easy as the Bias-T startup software rtl_biast
was a separate package, so in Service file following line was added:
[Service]
ExecStartPre=/home/pi/rtl_biast/build/src/rtl_biast -b 1
I case of AIS-catcher, the Bias-T software the bias-t startup software is integral part of the AIS-cacher binary, so the ExecStartPre
method cannot be used directly, unless a stand-alone rtl-biast package is built and installed, and Service file modified, like is done for dump1090-fa and dump1090-mutability.
As a guess, just do following modifications to config file. It may or may not solve the problem. I dont have RTL-SDR Blog V3 dongle to test it.
If above quick method fails, then please let me know, I will provide you with details of how to build stand-alone rtl-biast
and how to modify aiscatcher’s Service file.
Thanks @abcd567 will give it a try and let you know the outcome.