Page history last edited by Richard Jones 2 years, 6 months ago

The simple URL for this page is:  http://planeplotter.pbworks.com/Dump1090 




Dump1090 is a program which accesses ADS-B data via a low-cost ($15 €11 £10) TV "dongle", designed for broadcast digital TV & FM radio reception.  Certain of these receivers - specifically those with the combination of R820T and RTL2832U chips - can be used to access the received data directly and it is this mode which many programs exploit.  You can make a Software Defined Radio (SDR) using these chips, and programs such as SDR# and HDSDR make this quite easy, and the excellent RTL1090 program for ADS-B reception uses the same technique, as does the comprehensive MultiPSK software which provides reception of VDL mode 2 data..  There is one non-trivial step required, and that is replacing the driver for TV reception which Windows and some Linux versions normally install automatically with a driver allowing direct access to the data.  This replacement is performed by a program called Zadig.


Dump1090 can be run on a separate Raspberry Pi card or, since May 2014, directly on your Windows PC.  On Windows it is a complementary program to RTL1090, but provides much more accurate results for multi-lateration - the process of determining the approximate position of aircraft which are not broadcasting their position directly, and this increases the number of aircraft plotted on your screen, and thereby increases your enjoyment of the hobby.  Our thanks to Malcolm Robb for his work on developing this software from the original base, and for making it available to the Plane Plotter community.


Using dump1090 on a Windows PC


Ensure that you have Plane Plotter version or later installed on your PC.  First get dump1090 working on your PC, and then run the dump1090.bat file each time before starting Plane Plotter.  You need only run dump1090.bat once, so perhaps add it to your start-up group in Windows.  See here if you are unsure about this.


As both RTL1090 and dump1090 require exclusive access to the dongle, you cannot run both programs at the same time.

As dump1090 is a program which uses the network, it's possible that you will need to allow it through your firewall or security suite.  AVG is reported as taking a dislike to dump1090, so you may need to allow dump1090 as an exception.


If you already have RTL1090 installed and working, or to update dump1090


This is the easier route as you will have almost all the required files already on your PC with one exception.  While you can install the new dump1090 software into your existing RTL1090 directory, you may prefer to take a copy of that directory to ensure that you don't corrupt anything.


  1. Take a full copy of your existing RTL1090 directory.  I suggest copying the directory to C:\Tools\dump1090-Win\
  2. As a minimum, download the two files - dump1090.exe and dump1090.bat -  download from this location
    (Note that normally the Linux community would expect you to compile these files yourself, but as most Windows users will not have a suitable compiler, these pre-compiled versions are made available in the spirit of assisting Windows users).
  3. Right-click the Zip file, Properties, and press the Unblock button if present.
  4. Add those two files to your C:\Tools\dump1090-Win\ directory.
  5. If you are installing into an existing RTL1090 directory, do not overwrite any .DLL files with those from the Zip file.
  6. You also need the Posix thread library file: pthreadVC2.dll
  7. Ensure that the contents of the dump1090.bat file are:
      dump1090.exe  --interactive  --net  --net-beast  --mlat  --gain -10
  8. Double-click on the dump1090.bat file, and you should first see a copyright message, and then a list of detected aircraft.



Bev reminded me that the Microsoft run-time library MSVCR100.dll is also required.  On both the Windows 7 and Windows 8 PCs where I tested dump1090 the program did not complain about the lack of this library, so either it is installed automatically with those versions of Windows, or some other software installed it.  I see that there are copies in the SDR# and Thunderbird directories, and in the \Windows\System32 and \Windows\SysWOW64 directories.  Likely you will have this file but if not, there is help here.

If, when running the dump1090.bat file, you get an error message about a DLL being missing, simply ensure that you have that DLL in the same directory as dump1090.exe.  You may also need to check with right-click, Properties, that the Unblock button is not showing.




If the file runs and immediately disappears off the screen, add a PAUSE command after the dump1090 execution:



dump1090.exe  --interactive  --net  --net-beast  --mlat  --gain -10




Using the Web interface


If you want to take advantage of the Web interface to dump1090, be sure to place the directory "public_html" from the Zip archive into the directory containing dump1090.exe. Example of the Web interface to be added:



Obtaining the Posix threads library file


If, the pthreadVC2.dll file is not in the Zip file you downloaded, you may find a number of versions of this file already on your PC, for example, on a PC with Apple iTunes installed, in the directories:


C:\Program Files (x86)\Common Files\Apple\Apple Application Support
C:\Program Files (x86)\Common Files\Apple\Internet Services


On another PC with Apple iTunes and Amazon Kindle installed, there were copies in:


C:\Program Files\Amazon\Kindle
C:\Program Files\Common Files\Apple\Apple Application Support
C:\Program Files\DVB World


I copied the 59,208 byte file from:  C:\Program Files (x86)\Common Files\Apple\Apple Application Support   to  C:\Tools\dump1090-Win\  and the program ran perfectly.


You will also find a version in the Zip archive you downloaded which you can try.


Please note that renaming the pthreadVC2-w32.dll which comes with RTL1090 to pthreadVC2.dll will not work.


Starting from scratch


Please see the information kindly provided by RTL-SDR.com here (formerly Steve (gaimsts) information, archived here).  The main files can be downloaded in the Zip file mentioned above.  You may still need the Posix threads library (pthreadvc2.dll) mentioned above, and you can use the same idea to get the other DLLs from an installation of RTL1090 as well.  In total, the three files needed are:


20/01/2013  19:42            68,096 libusb-1.0.dll
12/02/2014  20:58            59,208 pthreadVC2.dll
11/12/2012  00:30            46,080 rtlsdr.dll


Dates and sizes are as found on my own system, and the files are available from the Zip download.


Checking it's working


You can see quickly whether you are getting data by the display in the console window, as illustrated above.  You can also check on a remote PC using the View1090 program, details of which are here.  This is the same program you can use to monitor the Raspberry Pi dump1090 software.

Note that you must run the program from the command-file you created or edited:   dump1090.bat.  Simply double-clicking the .EXE file will not give the program the data it needs to run with Plane Plotter.  Ensue that you have file extensions visible in Explorer, otherwise you may find it difficult to distinguish dump1090.bat and dump1090.exe.


Revision history


Please use the most recently released version - that's the one at the bottom of this list.


First released version.

Updated dump1090_win to support connection to a web browser via .  Malcolm has also zipped up all the DLL and web/java files he is using.


1) Additional command line option "--net-buffer <n>" to specify the TCP output buffer size.  Default is n=0, which is 64Kb.  Specify a value of n to increase the buffer size according to: Size  = 64Kb * 2^n, so an n of 1 = 128Kb, n=2 is 256Kb etc.  n is limited to 7, so the max size is 8Mb.  This option may assist if you have a high number of aircraft being received, and an unreliable network connection, or if the receiving end can be busy for an extended time.
2) Bug fix in ppup1090 which prevented the uploading of valid Mode-A/Squawk codes.
3) Bug fix per Markus Grab's commit. May produce a very, very, infinitesimally small increase in message rate.


Release of COAA Plane Plotter MLat and SMU support for RPi.  ppup1090 now supports Ground Stations functions required for MLAT and SMU operation. This function is only available for RPi and similar Linux hardware.  Also included are sample startup scripts for dump1090 only and dump1090+ppup1090 together.


 Command-line parameters


I have a list of command-line parameters which is updated from time to time here.  It would be useful if folk could indicate any special settings they have found useful over and above those in the supplied .BAT command-file.

One widely reported setting is to allow the program to set the gain of the dongle automatically.  As a test, try adding "--gain -10" to the command-line.  "-10" means auto gain setting"


Known Issues


  1. Signal strength is not passed to Plane Plotter.  Due to be resolved with an update to Plane Plotter.  Please update to Plane Plotter V6.4.1.8 or later.  Download here.
  2. dump1090 would disconnect when refreshing a vector map display in Plane Plotter.   Resolved in version: 1.08.0905.14.  Or perhaps not.
  3. If you have other software running which provides Web services on port 8080, you can use a different port for dump1090 as described below:     "--net-http-port 8081"




Don  WD9DMP reports:  I needed to modify the "dump1090.bat" file to set the gain settings for maximum message rate and minimum noise floor, as determined in RTL1090 with its convenient slider controls.  I added the "--gain 48.0" option in dump1090.bat to properly set the gain.  AGC (I assume Tuner AGC) defaults to "off" in dump1090 unless explicitly turned on, so no changes were needed to set AGC "off".

Don  WD9DMP reports:  I found that I get significantly higher message rates by adding the following dump1090 switches to the "dump1090.bat" file:


--aggressive --quiet --ppm 53

 "--aggressive" increases the CPU used by dump1090. I'm now running about 3% on my dual-core system with this switch - very acceptable.  [Later removed - see Malcolm Robb's note]


 "--quiet" suppresses stdout to the command window.  This means that the display of any kind of decoded output in the dump1090 command window is suppressed.  This is pretty useless anyway if you're just feeding Plane Plotter the data, and chews up CPU cycles needlessly. For this to work, the "--interactive" switch needs to be removed as well.


"--ppm53" sets the ppm frequency correction for my particular dongle. This can be determined using SDRSharp or other SDR program, tuned to a known frequency.  Adjust the ppm setting in SDRSharp's "configure" window for optimal reception.  I use a local narrow FM police repeater as a frequency reference. Note the ppm setting from SDRSharp and enter it into the "--ppm" switch.
[DJT notes: an error less than 100 ppm should not affect the relatively broadband ADS-B reception, you don't need to worry about this excessively]

Default dump1090.bat settings:
  dump1090.exe --interactive --net --net-ro-port 30002 --net-beast --mlat

My optimized settings:
  dump1090.exe --net --net-ro-port 30002 --net-beast --mlat --gain 48.0 --quiet --ppm 53


[DJT note: as  "--net-ro-port 30002"  is a default setting, it should no longer be needed in the .BAT file]


Malcolm Robb comments Use of the --aggressive command line switch is generally discouraged if you are sharing. It can lead to a significant increase in the number of "false positive" aircraft detections, which leads to spurious upload data.  I think Bev gets significant ear-ache over this from disgruntled users.   The normal signs of these false positives is detection of multiple aircraft with similar ICAO codes - typically separated by a single bit. In my area it happens most often with RAF Voyagers ZZ331 [43C6F4], ZZ332 [43C6F5] and ZZ333 [43C6F6].  


Armand reports:  I'm trying to run dump1090 on a Windows 7 machine.  When I run it it seems to see the RTL dongle, but it then reports an "error opening the listening port 8080 (HTTP server): bad file descriptor".   This even after a clean boot.  I was running rtl1090 without a problem.


Malcolm Robb resolved this commenting:  I can't tell for sure, but one possible cause is that something else on your machine has already 'hooked' TCP port 8080.  By default, dump1090_win tries to hook ports 30002, 30001, 30005, 30004 and 8080 in that order.  If there were something wrong with dump1090 it's likely it would fail on port 30002 and not 8080.   To test this could you please add the following command line switch to your batch file:

   "--net-http-port 8081"


This will tell dump1090 to try and connect to port 8081 [for its Web server functions] instead of 8080.  If dump1090 now starts OK, then that virtually confirms that something else is already using port 8080.
Another debug tool can be accessed by pressing ctrl-alt-del and then select task manager.  Select the "Performance" tab, and at the bottom of the page you should see a "Resource Manager" button.  Click it to bring up resource monitor.  Select the "Network" Tab.  Half way down the page there should be a list of open TCP connections.  If local port 8080 appears in the list, then something is already using it.


TCP Notes


From a posting on the Plane Plotter Yahoo group by Malcolm Robb:  dump1090 acts as a kind of server. PP (or any other similar app) can connect to dump1090 on one of the supported ports, and once the connection is established, dump1090 sends all the decoded Mode-A/C/S traffic to PP.
 The default option is for dump1090 to send each and every frame as it arrives.  This can consume an unnecessary amount of network bandwidth, particularly when the connection between RPi and PP is over a wireless network.  There is an internet protocol called Nagle which is supposed to help buffer up small packets into larger ones, but it doesn't appear to work on all versions of Windows - particularly XP.  So to try and reduce this network load, I added the option to buffer into dump1090 itself.  The command line options "--net-ro-size" and "--net-ro-rate" are used to invoke this buffering.
 dump1090_win is usually running on the same machine as the PP instance, and connecting over the local loop-back IP address of .  I wouldn't/didn't expect this to suffer from any of these small packet problems since the packets never actually go out over the Ethernet.  However, perhaps I'm wrong - and if I am then the problem is likely to show itself most when there is a high number of aircraft being detected.
 So, if you're still having problmes, try adding the following switches to your batch file
     "--net-ro-size 512 --net-ro-rate 5"
This will cause dump1090 to buffer up traffic until at least 512 bytes have been received, or about half a second whichever occurs first. This may help reduce the load on the windows local loop-back TCP stack.

Using dump1090 on the Raspberry Pi


Please see my notes here.


Using mutability with PlanePlotter upload on the Raspberry Pi


To compile your ppup1090 file, you HAVE to download the Malcolm Robb fork of dump1090, even if you use something else for actual decoding. Just download it into a separate directory, compile your ppup1090, and let ppup connect to the default port 30005 to get its data.

I have done this and use Dump1090-mutability for decoding, but had to use the -Robb fork for ppup compilation.

mkdir pp-dump
cd pp-dump

* put your coaa.h file in the directory
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090/
cp …/coaa.h .
make -f makeppup1090

It’s not a pretty solution, but it works.


Extracted by Richard Jones from: https://discussions.flightaware.com/t/ppup-not-working-with-piaware-3-0-4-help-needed-please/19041/3


Richard notes: I have found this tidier method on the FlightAware discussion board which includes automatic start-up at boot:



Comments (0)

You don't have permission to comment on this page.