I have a lot of helicopters flying nearby, closer than 300m/1000ft, which I would like to decode, they are more important than far away aircraft.
When I manually set the gain to 9, they decode mostly fine. But of course this is too low for far airplanes. So I would like to make advantage of the adaptive burst mode.
I’ve set the initial gain to 33.8, which is an ideal level with the LNA (noise floor increase by 6 dB).
But adaptive burst doesn’t seem to do much, I can’t decode helicopters which are closer than 1-2 km, while their RSSI is at -1.0 to -2.0.
Any suggestions which values I could try for the other burst mode parameters?
--adaptive-burst-change-delay <s> Set delay after changing gain before
resuming burst control (seconds)
--adaptive-burst-alpha <a> Set burst rate smoothing factor
(0..1, smaller=more smoothing)
--adaptive-burst-loud-rate <r> Set burst rate for gain decrease
--adaptive-burst-loud-runlength <l> Set burst runlength for gain decrease
--adaptive-burst-quiet-rate <r> Set burst rate for gain increase
--adaptive-burst-quiet-runlength <l> Set burst runlength for gain increase
I think the gain changes are too slow and too little. When a helicopter approaches, the signal can increase 20 dB in 30 seconds.
Sep 08 11:57:44 dump1090-fa[1908459]: adaptive: changing gain from 32.8dB (step 17) to 29.7dB (step 16) because: high rate of loud undecoded messages
Sep 08 11:57:44 dump1090-fa[1908459]: rtlsdr: tuner gain set to 29.7 dB (gain step 16)
Sep 08 11:57:58 dump1090-fa[1908459]: adaptive: changing gain from 29.7dB (step 16) to 28.0dB (step 15) because: high rate of loud undecoded messages
Sep 08 11:57:58 dump1090-fa[1908459]: rtlsdr: tuner gain set to 28.0 dB (gain step 15)
Sep 08 11:58:55 dump1090-fa[1908459]: adaptive: changing gain from 28.0dB (step 15) to 29.7dB (step 16) because: low loud message rate and gain below dynamic range limit
Sep 08 11:58:55 dump1090-fa[1908459]: rtlsdr: tuner gain set to 29.7 dB (gain step 16)
Sep 08 11:59:09 dump1090-fa[1908459]: adaptive: changing gain from 29.7dB (step 16) to 32.8dB (step 17) because: low loud message rate and gain below dynamic range limit
Sep 08 11:59:09 dump1090-fa[1908459]: rtlsdr: tuner gain set to 32.8 dB (gain step 17)
Sep 08 11:59:23 dump1090-fa[1908459]: adaptive: changing gain from 32.8dB (step 17) to 33.8dB (step 18) because: low loud message rate and gain below dynamic range limit
Sep 08 11:59:23 dump1090-fa[1908459]: rtlsdr: tuner gain set to 33.8 dB (gain step 18)
This is probably what you want to tune to change gain more rapidly once a loud signal is detected. The runlength is approximately how often (in seconds) it’ll change the gain.
If you find that it’s too slow to initially detect the loud signal, then increasing --adaptive-burst-alpha (default 0.3333) will speed that up – the tradeoff is that it will also react to shorter transient signal spikes.
Thanks. I will play a bit with the values and see how things work, I guess that will take a while.
It seems that --adaptive-burst-loud-runlength can’t be smaller than “1”. If it is “1”, it changes the gain every 5 seconds.
(If the value is smaller than 1, it turns the gain down to zero, step by step every 5 seconds, claiming high rate of loud messages).
Also with adaptive-burst-alpha=1 it won’t update the gain faster than one step every 5 seconds.
In my case it takes 11 steps (55 seconds) from gain 32.8 down to a safe gain of 8.7.
It works well in many cases, but sometimes the helis approach too fast. Or they take off from nearby and I can’t decode them until they’re already gone.
If I could place a wishlist-item: It would be nice if it could detect if a signal is “much” too strong and skip a few steps.
You might be better off with your main setup tailored for numbers and range, and adding a second dongle for the nearby helicopters. I can receive everything nearby with a cheap dongle for a few pounds/dollars and the supplied MCX-attached mini magmount whip.
This seems to work for me for every case so far.
For me too strong signals are much more a problem than too weak.
Those are great features in dump1090-fa!
Good point. I think @abcd567 is a good person to ask about that, he’s done this. I know VRS can handle merged feeds. You configure separate feeds, then configure a merged feed from those. I think – but am not sure – that its merged feed disregards duplicates from the separate feeds.
Thanks for experimenting! The adaptive burst features are quite untuned at the moment so this sort of feedback is very useful. I’ll look at making this bit directly configurable for a future release.
May I ask how you ended up with your settings? I have a similar situation/application where I don’t care about far away traffic - we need good reception at the runway and the traffic patterns to automatically create takeoff and landing records. Please confirm or correct the settings below:
adaptive-burst is more about “try to deal with nearby traffic when it’s present, without sacrificing range when it’s not present”. If you don’t care about distant traffic, I’d just suggest setting a low fixed gain and not using the adaptive-gain stuff at all.
I can certainly do that but this requires quite some testing so that on the one hand runway traffic is not overloading the SDR while at the same time displaying traffic that is 10-20 NM away. Maybe I should try a combo with a significantly reduced ADAPTIVE_MAX_GAIN .
Any recommendation whether to use ADAPTIVE_DYNAMIC_RANGE or not?
One remaining issue seems to be that airplanes transmitting “on ground” do not trigger adaptive burst control which results in such aircrafts remaining on the runway after touchdown although they have already left it. I will open a separate topic for this.
(1) Up to about 20 hrs on Wednessday, the setting was fixed gain at 60 dB. As the graphs do NOT plot the gain value in “Misc” graph if fixed gain setting is used, there is no plot of gain before 20 hrs.
(2) At about 20 hrs on Wednesday following two items were activated.
adaptive-range
adaptive-burst
The “Misc” graph started plotting.
(3) At about 10hrs on Thursday, I moved the RPi, and in this process the dongle got slightly pulled out of USB port. At about 12 hrs on Thursday I noted the severe drop in performance. Pushing-in the dongle restored performance.
.Feb 01 20:30:53 raspberrypi systemd[1]: Started dump1090-rb.service - dump1090-rb.
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: Thu Feb 1 20:30:53 2024 EST dump1090-rb 1.0.10 starting up.
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RB24-1, SN 00001090)
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: Found Rafael Micro R820T tuner
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: rtlsdr: tuner gain set to about 58.6 dB (gain step 29) (tuner AGC enabled)
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: adaptive: using 50% duty cycle
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: adaptive: enabled dynamic range control, target dynamic range 30.0dB
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: adaptive: enabled burst control
Feb 01 20:30:53 raspberrypi dump1090-rb[21199]: Allocating 4 zero-copy buffers
Feb 01 20:31:04 raspberrypi dump1090-rb[21199]: adaptive: available dynamic range (27.8dB) < required dynamic range (30.0dB), switching to downward scan
Feb 01 20:31:04 raspberrypi dump1090-rb[21199]: adaptive: changing gain from 58.6dB (step 29) to 49.6dB (step 28) because: probing dynamic range gain lower bound
Feb 01 20:31:04 raspberrypi dump1090-rb[21199]: rtlsdr: tuner gain set to 49.6 dB (gain step 28)
Feb 01 20:31:13 raspberrypi dump1090-rb[21199]: adaptive: available dynamic range (37.2dB) >= required dynamic range (30.0dB), stopping downwards scan here
Feb 01 20:36:56 raspberrypi dump1090-rb[21199]: adaptive: changing gain from 49.6dB (step 28) to 48.0dB (step 27) because: high rate of loud undecoded messages
Feb 01 20:36:57 raspberrypi dump1090-rb[21199]: rtlsdr: tuner gain set to 48.0 dB (gain step 27)
pi@raspberrypi:~ $