How to setup the SDR for maximum and close range? Impossible?


Hi guys,
this is my first post, sorry for my english, I´m german.
I looked up the forum for my issue and there are a lot of posts regarding setting up the gain but doesnt help me finally.
This is not really another post about gain-setting but similar.
My adsb-receiver is located at my airfield, where I am flying myself - btw a very nice airfield you should visit - EDFU near Frankfurt.
I was worrying why the transponder receives meassages up to 450km but was not able to show the planes in our Airfield traffic pattern with adsb-out in FR24. FR24 could not help me and I tried to have a look on the data myself. So I installed dump1090 mutability incl. the collectd stats and there I noticed that the signal strength was way to high. With the gain-max setting planes around 20km where above -3dBFS and planes in 450km where still -10dBFS.
So my approach was to lower the gain in the mutability-setup step by step with the values I found here gain settings to receive planes in 450km at around -30dbFS and planes in the local area and airfield traffic pattern not higher as -2dBFS because I noticed that signals above -1.7 will not be decoded anymore due to overload of the receiver.
When signals are too high, tracks near the antenna are interrupted or looks bad and will appear again after passing the receiver location.
But after 2 days changing setup and looking to the stats and tracks I failed to find a gain-setup that gives both - showing traffic in the airfield pattern and 450km away.
Only when you turn the gain very low and make the receiver almost “deaf” it is possible the receive the airfield traffic pattern but then you have maybe 150km range or less.
The agc setting is useless as well, because it is not able to adapt the gain according the signal strength.
I guess what I need is a driver, that really lowers the gain when a very strong signal in detected (of couse the range will be lower as well for that time but this is not important to me during that short period of time). And when the strong signal becomes lower the gain-setting driver should adapt the gain to keep everthing below -3dBFS. Something to compensate the dynamic situations.
Alternatively I need to place a second RPI with a little antenna to decode the strong signals because two instances and two SDR-Sticks are not possible to run on the same RPI. But then I have two RPI and two dump1090 adresses, one for near area and one for wide area and I dont want that.
Does anyone have an idea how to solve my problem?
I am running FR24, RB24, Planefinder and of course Flightaware on the RPI.
The antenna is this one with 5m cable and I am using the Flightaware pro Stick plus. The gain-setting is 28.0 currently and signals nearer than 3-5km can cause overload and will not be decoded.
Kind regards


The only way to have both is two receivers. If you want them on a map, you could try virtual radar server, which is a nice way to visualise.

My setup receives around 1000 messages per second, some from planes close by, others from planes 250km away. To which should the receiver adjust?

This is partly why AGC fails, instead of tuning into one signal (these are made to receive TV, originally), the tuner is bombarded with messages, which always stop, so it tries not lose them by increasing gain.

What you could do is use one of the gain optimizing scripts and adapt it to letting the gain alternate between a low and high gain setting,


I would go for the second R-Pi, I use a Pi Zero, only uses 350mA.

Although you do get a second address I think they both show to the same account.

Your English is excellent by the way.



Thanks pal, I´m trying…hum I´d like to avoid another RPI but we´ll see.

Would it be possible to alternate the gain between min and max every 2 seconds for example and this works for weeks without any problems?
I had the impression that I have to reboot the RPI after each resetting of the gain to make the adjustment work properly.


ola boa noite seria possivel montar uma antena ?


Using Google Translate,
Portugese to English Translation:

Hello … Good evening
would it be possible to mount an antenna?


Montei uma QuickSpider no final de semana. Uma beleza!!!

E uma plano terra para ADS-B. Veja o link abaixo para instrucoes e fotos.


Well, the gain scripts start and stop dump1090, I think, they do not reboot. 2s might be a bit too aggressive. The skyview will probably have to reload, too.

It really depends what you are trying to do. Follow local traffic, or maximise messages, planes and max distance. For me, maximum distance also means fewer messages, but the number planes does not vary much.

The best will be to just give it a try, and see how it works. I do not think anybody has tried it, yet.



#Script for "piaware sd card image" uses:
os.system("sudo systemctl restart dump1090-fa")

#Script for "dump1090-fa on Raspbian" uses:
os.system("sudo systemctl restart dump1090-fa")

#Script for "dump1090-mutability on Raspbian" uses:
os.system("sudo systemctl restart dump1090-mutability")




I have noticed the same thing - I am very close to a mid-size airport (KPHF) and the dynamic of the signal levels is too large for one receiver, I either have to compromise the gain or… get two receivers on the same Pi.
The script that jprochazka made allows for one 1090MHz ADS-B plus one 978MHz UAT (dump978) on the same Pi, I wonder if it can be modified to allow for two 1090MHz receivers, fed from same or two separated antennas.


Ok, I get that. Maybe it would make sense to limit the gain during the operating time of the airport and optimize it during nighttime.
So I still need to find an optimized gain setting for the airtraffic pattern. Lets see…


Would be interessting…pls tell if you manage to have two sticks running at 1090mhz on one rpi!
Maybe its Impossible to have two instances of dump1090 but it could be possible to run dump1090 and dump1090-fa or a different tool with another name. And maybe the driver should have another name as well.


May be dump1090 and ModeSDeco2 running simultaneously on same PI using two dongles?


I will try that. But how to configure the both regarding feeder and mlat and so on…I really like the view the and mlat data in dump mutability.
It should help the guy in the tower as well to have a better control of the airtraffic pattern… therefore mlat would be helpfull


Mlat is not always right, I would not try to use that for actual ATC purposes.

Aren’t you trying to do to many things at once with one Pi? The simplest thing would be to set up two PIs, one for “production”, one to try out things and see if you find a workable solution for your initial problem.


Of course is mlat not always right due to calculation but its better to have nothing due to missing location data in adsb signal.
And most of the microlight aviation has no GNSS data.
If one rpi would be feasible I’d prefer this way.
Two rpi would be definitely too easy :grinning:


Dual Receiver on Piaware SD Card image (Jessie)/RPi Model2

  1. First step was to serialize the Dongles. Assigned serial number 00000000 to one Dongle (for dump1090-fa), and 00001001 to other Dongle (for ModeSDeco2).
    Put Stickers with their assigned Serial Numbers on both Dongles.

    How to Change Serial Number of Dongle - ADSB 1090 + UAT 978 Dongles Plugged Into Same Pi


  2. Downloaded modesdeco2_rpi2-3_20170127.tgz from ModeSDecoder2 site on Windows computer, then uploaded to DropBox

  3. Plugged both Dongles in Pi and rebooted Pi

  4. Started installation process

sudo mkdir msd2

#Downloaded file from DropBox to newly created directory msd2
sudo wget -O msd2/modesdeco2_rpi2-3_20170127.tgz  ""    

#moved into directory where downloaded file is saved
cd msd2

#Unzipped downloaded file
sudo tar xvzf modesdeco2_rpi2-3_20170127.tgz

#Created a blank file
sudo nano

Copy-pasted following text into blank file
(replace XX.XXXX:YY.YYYY by your actual Latitude & Longitude)

/home/pi/msd2/modesdeco2 \
 --device-serial 1001 \
 --gain 49.6 \
 --freq-correction 62 \
 --location XX.XXXX:YY.YYYY \
 --web 8088 \
 --metric \

Saved File.

Made file executable

sudo chmod +x

To Automatically start ModeSDeco2 at boot/reboot:

Open file rc.local for editing
sudo nano /etc/rc.local

Add following line just above the last, single-worded line (i.e. above exit0)
/home/pi/msd2/ &
Save (Ctrl+o) and close file (Ctrl+x)

Rebooted RPi
sudo reboot

Both the dump1090-fa and ModeSDeco2 started, each one using its designated Dongle. ModeSDeco2 will automatically start at Boot / Reboot.

Dump1090-fa Map


ModeSDeco2 Map


Thanks for the Support. I will try that.


CPU usage RPi Model 2:
2 ProSticks in one RPI.
One Dongle serial #00000000 (dump1090-fa), second Dongle serial #00001001 (modeSDeco2)
(Please see my post above)

ModeSDeco2 = 63.5% :rage:
dump1090-fa = 25.5%
fa-mlat-client 1.0%
modeSMixer2 = 0.7%
piaware = 0.7%
mlat-client (adsbexchange) = 0.7%



I have to admit that I was not able to get modesdeco running yesterday. Maybe its because dump1090 mutability and stats is already running in this image but modesdeco was not reachable at 8088. But the heavy CPU load makes me wonder anyway If this way is best. Is Modesdeco causing this high load as well when running alone?