Tonight i swapped from a Raspberry Pi B to a B+ as the B was getting close to it’s processing limit (FA, FR24 and PF clients).
In the process of doing the swap i ran the dpkg-reconfigure dump1090-mutability.
One of the questions was for the gain control. Previously i had set it as “agc” but this time i did the recommended “max” setting.
Now when i look at the dump1090 local map i am seeing dBFS figures 25 to 30dB higher than before. Planes 15 miles out have around -3dBFS whereas they used to be around -30dBFS?
Does this seem correct? Is the “agc” setting only turning the amplification up the minimum required amount to get an error free signal? Whereas “max” is just flat out all the time.
I am running a 6 element COCO antenna temporarily mounted indoors with an inline amp, flightaware filter and a RTL-SDR dongle.
There aren’t many planes around tonight for me to see if the maximum range has changed but i’ll keep an eye on it over the next few days.
The dBFS figures seem to track well with the aircraft distance. The figures steadily increase as the distance decreases.
The dbfs value is after amplification I.e. it is measured at the ADC so it is expected that you will get different values with different gain settings. Usually AGC will behave like “more gain than max” so your results are a bit unusual there. -30dbfs is close to the detection limit for the demodulator, I would expect nearby stuff to be much stronger than that
Thanks for the clarification.
Sounds like i must have had something else set up incorrectly that i unknowingly corrected during the upgrade of the Raspberry Pi.
I did have a small pigtail coax from the amplifier to the filter. (SDR → filter → pigtail → amp → antenna)
I removed that and now have the filter connected to the amp with a solid male to male adaptor.
Very possible that the pigtail was faulty or i hadn’t fully screwed in the connection.
I think it’s nothing to do with faulty hardware.I found that out just a few hours back .
With AGC the RSSI value were as high as -0.9dB but after setting my gain manually to 49.6 the highest number I have got is -10dB and my noise floor has gone down by 8dB.
With your noise floor dropping and losing so many dB it sounds almost like it is at low gain not maximum.
Maybe the gain setting wraps around. So say the maximum gain was actually 45 and setting it to 49.6 caused the value to overflow and ended up as just 4.6 or something like that.
I am going to leave mine set to “agc” as it seems to behave better with that setting.
Setting it to “max” gave me a drop of about 10dB and many planes out further than about 90% of my range limit dropped off the dump1090 map.
Which sounds to me like low gain not high gain.
The graph results do look a little low. Mine peaks around -1 to -3db and my noise floor is around -20db(Not great, however, I life in NYC, so it is to be expected).
I would suggest giving agc or max a try for a while.
I looked at some of my aircraft yesterday. I get -25db levels for aircraft at 100-150NM. -3db for 15NM seems about right to me. It will vary a lot based on their orientation and obstructions. Clearly something at FL380 15 NM away should have a better signal than something at A025.
That’s what I call tuner explode mode. Even though that’s an hourly sample, the levels are pretty much glued to the ceiling like that 24/7 when mutability is running -10 (AGC evidently). If I wasn’t filtered it would be complete tuner saturation, and maybe already, however it seems to be able to handle it quite well although the CPU use is up as I assume dump1090 needs to work extra hard to chew through the noise. I have it pinned for some antenna comparisons for the time being, however this particular setup seems to prefer 38~42 gain during the busy hours. (FA Antenna, filter, dongle & 25ft high Q RG6). I’d be interested to know what the actual “noise” indicator actually consists of when using mutability. So far as my traffic, pretty much the same story as most other locations, dead between 12am and 5am - that’s when AGC seems to work wonders since there is less interference during these hours.
Total power of all samples that are not part of a successfully decoded message. It doesn’t attempt to measure the noise floor, it measures “everything that’s not signal” which can include collisions and overamplified messages etc.
Which i took to mean AGC had the ability to increase gain to a higher level than “Max” but i thought it would still reduce the gain if there was a lot of loud (nearby) signals.
That “Max” isn’t actually the highest gain setting is probably what was confusing me. So me seeing a drop in signal levels and range when using “Max” rather then “AGC” now makes sense.
The AGC is a complicated one. There are two things going on:
the AGC is designed for continuous DVB-T signals from a single transmitter; it really doesn’t work well with bursty ADS-B messages from multiple transmitters; usually it goes to the maximum gain that the AGC can set and staying there, regardless of the signal strength of individual ADS-B messages.
due to a quirk in librtlsdr, the gain stage that the AGC doesn’t control is set to a value higher than you can set with manual gain
So you end up with a total gain that’s a bit higher than you can manually set.
It’s pretty broken and fixing librtlsdr has been on my list for a while.
AGC for ADS-B signals sounds a bit like trying to set up a one microphone to record every conversation going on at a large party.
With some people whispering in the corner and others yelling right beside you and the number of guests constantly changing.
Not an easy task.
Maybe if the software was able to dynamically change the gain setting based on an algorithm that was designed with ADS-B signals in mind.
So the dongle wouldn’t be controlling the gain with it’s inbuilt DVB-T optimised AGC but rather the software would do it using an ADS-B optimised “software” AGC.