First Stop Safety Port Devices Driver Download

First stop is the Coquille River Museum located in the historic Coast Guard building. The museum is filled with artifacts from the town's colorful history. Next along the route is South Jetty County Park, an excellent spot for picnicking that also offers many easy access points to the beach.

  • (1) The first stop is done with an average pedal force not greater than the average pedal force recorded during the shortest GVWR cold effectiveness stop. (2) The second stop is done with a pedal force not greater than 500 N (112.4 lbs). (d) Wheel lockup: No lockup of any wheel for longer than 0.1 seconds allowed at speeds greater than 15 km/h.
  • View and Download Dell All-in-One Wireless Printer V715w user manual online. Dell Inkjet Printer User's Guide. All-in-One Wireless Printer V715w all in one printer pdf manual download. Also for: 1dw, 5dw, V715w all in one wireless inkjet printer.
Raspberry Pi model B with Wi-Fi dongle and optional GPS/PPS receiver.
Raspberry Pi, case, and recommended Adafruit GPS available from ModMyPi
R820T/RTL2832U DVB receiver dongle.
DVB stick and MCX-to-SMA adapters available from CosyCave

What you can do with PlanePlotter and the dump1090 program.

PlanePlotter from COAA is a well-established program taking input from a variety ofreceivers, and which can also operate with Internet sharing. Below is asample animated screenshot kindly provided by John Locker showing what PlanePlotter cando. Click the picture for a full-resolution animation. This note is about using alow-cost TV receiver dongle and a Raspberry Pi as a very low cost remote receiver forPlanePlotterand similar programs. The same DVB-T dongle can work directly on your PCusing the Windows version ofdump1090, which supersedes withthe earlier highly valued RTL1090 software. You'll find some more notes in Sopwith'sblog post.

In the picture above, I show my own Raspberry Pi which I have fitted with a GPSreceiver for highly accurate timekeeping,although this is not essential for this application. I recommend theUputronicsGPS Expansion Board or Adafruit GPS receiver if you can't find a local supplier.

The System - don't forget the antenna!

Typically, you will have a Windows PC running Plane Plotter, but you willwant to get the antenna as high as possible with as clear a view as possible tomaximise the range you can receive. But at 1.09 GHz the cable loss can bequite significant, even if you use good-quality satellite TV cable, so analternative is to place a small computer with the receiving stick close to theantenna, and connect that to Plane Plotter using a Wi-Fi link. You couldalso use a USB extender cable but these can be problematic and have lengthlimitations. The Raspberry Pi can meet the requirements for such a smallcomputer, and it's a fun project to learn something about the Raspberry Pi, anda little about Linux.

By the way, don't forget the antenna! The supplied antenna with the TVreceiver dongle is not optimised for 1.09 GHz use, and you should getbetter results from a dedicated antenna. Graham Leighton has reported goodresults with thishome-made antenna, and Moonrakerand DPDwill sell you antennas as well. Other home-made antennas: coaxialcollinear, wirecollinear. What matters is getting that antenna as high as possiblewith a clear view all round, ideally outside and not in the loft.

I have a FlightAware account - can I upload there?

Yes! FlightAware have released PiAware, their dump1090 client forFlightAware - see:
It’s a simple package that connects to an existing dump1090 instance and sends the data to FlightAware over an encrypted channel, authenticated with an existing FlightAware account. It works well, and doesn't provide a significant extra load on the Raspberry Pi.

Note! This is a Snapshot!

Please note that this information started as notes in 2013. Of course,the developments in the Raspberry Pi hardware, and the Linux OS variant used bythe Raspberry Pi mean that at least some of this information will be out-of-dateand some will be wrong as the new versions are not 100% backwardscompatible. Please let me know of anything you find which needs updating,or could be better explained. Thanks!

The following information is mostly from Malcolm Robb, attavionics [at] btconnect [dot] com


I have tonight [2013-Apr-06] uploaded a version of dump1090.c into the file shares section which I hope will implement GS/MU capability when used on a Raspberry Pi, running Raspbian Wheezy. The file is called dump1090_06_04_2013.c. This is a work in progress - the suffix to the file indicates the date it's posted.
Note: If you are already and approved GS/MU then you should turn OFF your sharing of data until Bev/TheTeam approves and re-validates any hardware changes you make to your system. You don't want to be feeding duff data into the system.
Note: This is NOT a windows program, and cannot be compiled or run on windows without some significant changes. What this program does is attempt to replicate the RTL1090.exe program for RTL2832 dongles on a Raspberry Pi. If you don't know what a Raspberry Pi is, then the file is unlikely to be any use to you. [djt note: the program may work on other Linux systems as well.]
The Raspberry Pi (RPi for short) is small cheap (around £30) single board computer which supports 2 USB ports, and one Ethernet port. The intention is that you plug an RTL2832 dongle into one of the USB ports. You then connect the Raspberry Pi to your local/Home network either hardwired (via theEthernet port), or by WiFi using an USB Ethernet dongle in the second USB socket. The only other required connection is a 5v power supply. If you use a WiFi dongle, then it is possible to mount the RPi up on the roof very close to yourADS-B antenna. This then means you don't have to run yards of lossy/expensive RF coax cable from the rooftop to your computer, so you should get better reception sensitivity.
In addition to the RPi itself, you'll also need an RTL dongle and aerial, an RPi power supply, and either a USBWiFi dongle or an Ethernet cable. To set things up, you'll also need a USB Hub, a USB keyboard, a USB mouse, and a cable to connect the RPi to a suitable monitor - HDMI probably. Note that you don't need those for operating - just for setup - so youcan borrow them from somewhere else for the few minutes of setup. Maplins sell the whole kit and caboodle (excluding the RTL dongle and Monitor) for £70.
Dump1090 is a relatively new software project. [Note: operation as aGround Station for Mlat is now supported with the ppup1090program.] The main changes I have introduced so far are:

  • Added a new command line switch, '--net-beast'. This causes the output from Dump1090 to be in Beast binary format, containing the 6 byte timestamp data.
  • Implemented a timestamp counter for Mlat/GS use. The timestamp has a 500 nS (2 MHz) granularity.
  • Tidied up the code a bit to make it easier for me to understand. That doesn't necessarily mean it'll be easier for you to understand, of course!

What I have not done is modify the ADS-B/Mode-S detection algorithms. Whilst playing with the software I have noticed that dump1090 misses quite a lot of the availableMode-S frames present in the data. In some of my off air recorded files, it misses 30% or more, mainly due to the poor detectionalgorithm. However, it does correctly receive strong local signals, so it's good enough as a starter.

Remote operation

djt notes: As the aim here is to provide a remote feed to Plane Plotter,perhaps we should say a little about remote operation. You don't need tohave a keyboard, mouse and display to set up the Raspberry Pi providing theLinux you install as been configured to allow SSH - a remote secure shell whichruns over the network. You can use SSH via a LAN connection initially witha program like PuTTY installed on your PC. You can do everything described here directly from the command-line. Once you have PuTTY working over your hard-wired LAN connection, you can set up theRaspberry Pi with a Wi-Fi dongle and run the device wirelessly.

The NOOBS software,however, does require a keyboard and HDMI display just for the initialconfiguration. Choose the Raspbian operating system. Your house TVmay well have an HDMI input you can borrow..

Setup with PuTTY is described here.

Setting up Wi-Fi from the command-line is described here,although setup with the GUI works well on Raspbian Jessie.

Using a single Ethernet cable from Raspberry Pi directly to your Netbook orlaptop PC is described here. This avoids the need to have a spare port on your LAN router or switch, and tohave a power-consuming Wi-Fi dongle attached to the Raspberry Pi. Your PCcan still talk to the Internet over its own Wi-Fi link. Thanks to FredHillhouse N7FMH for spotting that page.

Roger House notes: I am just building a Raspberry Pi 3 to use with my newAirspy and had an issue trying to connect it to myWi-Fi. It seems that out of the box the Wi-Fi is only setup to use channels 1 to 11, but myVirgin Media Super Hub uses channels 1 to 13. I found the following on theWeb that has resolved the issue and now allows me to connect to channel 13.

Remote Web output from the dump1090 program

The dump1090 program when running on the Raspberry Pi, can also produce arather nice plot on a Web browser running on your local network (PC, Linux orMac). You might also like to use this as a check that the dump1090 programis still running as expected, and that the TCP/IP link is still up on yourRaspberry Pi. Simply enter the URL:


where the address can be a number or a name, e.g.

Click the image for a larger version.

Preparing the Raspberry Pi

Please note I'm not any kind of RPi/Linux guru - my first contact with it was 6 days ago. If you have RPi/Linux questions, you'll probably need to ask someone else. In the lines below, can highlight the command required, use Ctrl-C orright-click Copy to get the text into the clipboard, and then if you use PuTTYyou can right-click on the text area of the terminal session to enter thecommand into the Raspberry Pi. To use thesoftware, do the following (tested on Linux 3.6.11 and NOOBS/Raspbian 3.12.22+).

[djt: If you need help with your Raspberry Pi and following theinstructions below, please ask on the PlanePlotter group. I am unable to answer direct e-mails about usingthe Raspberry Pi for ADB-S reception.]

  1. I suggest you start with a new/clean SD Card. Download the latest NOOBS software (or Raspbian Wheezy OS), and follow the instructions on preparing the SD card here:
  2. Get your RPi working in it's simplest form so that it can connect to the internet via your home network.
  3. If you don't want to bother with a keyboard and display, you can run your RPi headless as described here.
  4. Please note that during some of the following commands you may be prompted for Yes or No answers, perhaps about the disk space which will be used by the new download. Unless specified otherwise here, simply accept the default answer, usually 'Yes' (or 'y').
  5. Open a command prompt and type:
    • sudo apt-get update

    This will update the table of updates to the latest revision. This may take some time to complete.
    Hint: you can use the Copy clipboard function in Windows to copy a command from this Web page, and then right-click your PuTTY screen to enter the command into the RPi session. Leave out the quotation marks when copying the text.
    It's an idea to check the Linux version at this point with a uname -a command. Initially, from a NOOBS install, mine was 3.6.11+, although on a second run, after an upgrade it was 3.10.23+, and after a third a day later it was 3.10.24+.

  6. Again at the command prompt type:
    • sudo apt-get upgrade

    This will update the operating system to the latest version, and may therefore take 'some time'. Go and make a coffee! Note that upgrades after 2013-Dec-13 may overwrite the drivers required for the DVB-T USB stick. Please see here if this happens to you.

    If, before any upgrade, your OS version shows as 3.6.11+ with the uname -a command I suggest leaving it without the upgrade.

  7. Next, at the command prompt type:
    • sudo apt-get install git-core

    This installs the git repository fetch code. You may already have this installed, in which case you will get a message advising that you already have the most up-to-date version. On the minimal Linux I started with 'git' was not even present.

  8. Next, we will use the instructions to setup sdr-rtl which are given on this Web page. We stop where the text says 'To run the rtl server type rtl_tcp -a and the IP address of your Pi'. For your convenience, the instructions are copied below, and these are exactly what I typed into my Raspberry Pi. You don't need to follow the instructions on the quoted Web page as well as what's below. Step (9) below has been changed so that you no longer need the 'sudo' commands to run the programs accessing the dongle.
    1. sudo apt-get install git
    2. sudo apt-get install cmake
    3. sudo apt-get install libusb-1.0-0-dev # there is a slip on the referenced page
    4. sudo apt-get install build-essential

      You can put all those commands onto one line should you wish (thanks to Sam Reed for pointing this out):

      sudo apt-get install git git-core cmake libusb-1.0-0-dev build-essential

      although I prefer to do one command at a time in case there is an error, and you can see which step caused the problem.

      Now install theRTL-2832U USB dongle driver source and compile:

    5. git clone git://
    6. cd rtl-sdr
    7. mkdir build
    8. cd build
    9. cmake ./ -DINSTALL_UDEV_RULES=ON
    10. make
      Note that faster execution can be had on more recent Raspberry Pi models (B+, 3) by using four processors.
      The command becomes: make -j5
    11. sudo make install
    12. sudo ldconfig
      if it was successful you should see no return on the previous command.
      Install the RTL-2832U USB dongle on external powered USB HUB.
      While many report using a powered USB hub, you may found the built-in ports adequate, if you have enough 5V power fed to the Raspberry Pi. You may get different results, and possibly if you use the live plug-and-play will more likely need the hub. I didn't need to plug and unplug the devices live, tested with a 1.5A supply, and intend to use a 2A supply from ModMyPi eventually. If you plug in the dongle directly to the RPi and it spontaneously reboots, don't be surprised! After an upgrade to 3.10 of Linux I also found that I needed a powered USB hub for correct working of the dongle.
    13. sudo ldconfig
      You should now do these steps to tell the system about what the new device is allowed to do, and reboot the system:
      cd ~
      sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
      sudo reboot

  9. rtl_test -t

    The first time I tried this was with R802T tuner, and the test didn't work, saying it wanted an E4000 tuner. As I happened to have an E4000 device, I carried on using it. Further reading suggests that the test (-t) command is only intended to find the gap in the E4000 frequency coverage. If you have a RTL-based dingle, omit the '-t'. I found no need for a reboot. Some issues may arise here:
  • If you have used the more complex form of cmake in step 8.9above when building rtl-sdr, you won't need the sudo prefix to run the dump1090command in the future. But you will still need sudo for the othercommands where shown, like apt-get.
  • On most versions of Raspian except very early ones, you will need to 'blacklist' the rtl2830 device to stop the OS using the DAB/TV drivers for the device. The solution I found on Google was:
    • In /etc/modprobe.d create a new file with sudo, named no-rtl.conf (the actual name is not important, but the .conf is).
      cd /etc/modprobe.d
      sudo nano no-rtl.conf

    • Add the following lines to the new file:
      blacklist dvb_usb_rtl28xxu
      blacklist rtl2832
      blacklist rtl2830

    • The second and third lines might not even be necessary, but on the other hand can't harm either.
    • After a reboot dump1090 works again as intended.

You can now re-run the test if required:
rtl_test -t

  • If you get error messages such as 'cb transfer status: 1, canceling.' it may be because the dongle is taking too much power from the Raspberry Pi. I've not seen this with all the dongles I've tested, so I was caught out the first time it happened. You may be able to resolved this problem by putting the USB dongle on a separately powered USB hub. I used this one as it was to hand, but it's not critical.
  • At this point, you might want to calibrate the dongle you are using to know what the frequency offset is. Usually, for ADS-B reception, the error which may be present is not critical. being up to 100 ppm (parts per million) which is a 100 KHz error at 1 GHz. However, for best results you should calibrate the dongle and use the measured offset to get best results. The easiest way to get a calibration is to use the kalibrate program, which I describe here.
  1. Now download the latest release dump1090 application source code. We will use the instructions from this Web page. We start following the instructions from about half way down the page where it says 'git clone git://', which requires us to take these steps:
    1. cd /home/pi/
      cd ~
      (goes to your home directory)
    2. git clone git://
    3. cd dump1090
    4. make
      [djt] I got errors at this point where pkg-config could not be found on my minimal Linux. Installing pkg-config cured this problem, but if you had no errors from the
      make step you will not need not need to do steps 5 and 6.
    5. sudo apt-get install pkg-config
    6. make
  2. When you type './dump1090 --interactive', if you've got everything installed, compiled and connected correctly then you should see a screen displaying aircraft being received by your RPi. However, likely you will need to run this with privilege to allow the program to open the port. Note the double '--' if you are typing the command by hand, and note the './' in front of the word 'dump1090'.
    ./dump1090 --interactive

If you want to see the output over the network at this point, remember to addthe '--net' command-line switch:

./dump1090 --interactive --net

There has been one report from Marco Haakmeester that the file rtl-sdr.h anddump1090.c require changes to compile properly, but Malcolm was unable toreproduce the problem. Contact Marco for more details if this affects you- I'll send his e-mail address on request.

Script for doing everything at once

Chris Jeffries has kindly contributed the following script to prepare yourRaspberry Pi for using dump1090. If you try the script, please report backto the PlanePlotterGroup your success or otherwise. Thanks toChris for making this available.

On the Raspberry Pi, you can download the script here,then make it executable, and then run it with these three commands:

chmod +x

The box below shows what the script contains. You could copy the textbelow to your clipboard:

. and on the Raspberry Pi use nano to create a script:


Use the right-click mouse button to paste the contents of the clipboard intothe script file you are creating (assuming you are using PuTTY to access theRaspberry Pi). Once pasted, exit nano with a Crtl-X, answering'Y' to the do you want to save question. Finally, you need tomake the script executable using the chmod command:

chmod+x build-1090

and execute it with full privilege:


Thanks to Steve Tickle for those further notes.

Fred Hillhouse Jr (N7FMH) notes:

sudo printf 'blacklistdvb_usb_rtl28xxunblacklist rtl2832nblacklist rtl2830' > /etc/modprobe.d/nortl.conf

It turns out that the above command did not work within the script. I loggedin as SU and entered the single line and then did reboot. The dongle was then found. I tried to start dump1090 immediately and was reminded that I needed to change the directory.

An alternative script to build the program is available from Roger House, whonotes:

It has taken me two days but I believe I have not (now?) sorted all the issues with my build script. I now have hosted it on so it downloads in the correct format. I have just built 3 SD cards which work straight away. Here it is. PLEASE make sure your RTL USB dongle is not plugged in until your pi reboots at the end of the script.

Please follow these instructions:-

git clone git://
sudo chmod +x ./dump1090_buildscript/

Please advise any issues found. Roger House ([email protected])

Please note that to download Roger's script you will need git installed, soyou first need to enter the command:

sudo apt-get install git

Of course, it's much more within the spirit of the Raspberry Pi to learn, andmy personal feeling is that you learn more by entering the commands one at atime and watching what they do, than by running a script...

Changes required for Plane Plotter Mlat (multi-lateration)

So that's Malcolm's version of dump1090 installed and running on your RPi. This version already incorporates the changes required fora Plane Plotter Mlat Ground Station.

  1. Run the new version of dump1090 by typing:
    ./dump1090 --interactive --net
  2. You should see the same display as before on the RPi screen, but the extra command switches should enable a network server that will allow the PP software running on your PC to connect to the RPi.

[djt] notes: To reduce the amount of network traffic you can replace the--interactive with --quiet.

To run the command so that it continues to work after you logout from theRaspberry Pi, you can run a command with a trailing ampersand, such as:

  • ./dump1090 --quiet --no-fix --gain -10 --net &

Alternatively, for a reduced CPU and network I/O load:

  • ./dump1090 --quiet --no-fix --gain -10 --net --net-ro-size 500 --net-ro-rate 5 &
First stop safety port devices driver download 64-bit

Note the '--no-fix' parameter to disable single-bit errorcorrection, and the '--gain -10' parameter to set maximum gain. Please ask in the PlanePlotterGroup if you have problems as a result of using the gainparameter. There will doubtless be better ways of doing this suggested by those moreexpert in Linux than I. See the section below on automatic starting, forexample. If you intend to use the dump1090 program for Mlat, be sureto tell Bev so that he can set up the server correctly for you, as the timingfor the various Mlat data sources can differ. [djt]

To find the IP address of your Raspberry Pi..

To enable Plane Plotter to talk to your Raspberry Pi, you will need to knowits network address, or IP address. You can find this out by entering thecommand:

  • ifconfig

Look for the line containing 'inet addr:'. On my Wi-Ficonnected RPi, that line is in a section 'wlan0', which looks likethis:

so you can see that the IP address is: On a LAN connectedRPi, the information will be in the eth0 section.

so you can see that the IP address is:

Next, you need to configure Plane Plotter to talk to the RPi

  1. Start Plane Plotter on your PC.
  2. Select Options => Mode-S Receiver => RTL dongle RPi dump1090 => Setup TCP/IP client.
  3. In the window that appears, type in the IP address of your RPi on your local network, followed by ':30005'. For example, if your RPi appears as IP address on your home network, so type in ''. Then click OK.
  4. Select Options => I/O settings.
  5. In the dialog that appears check the Input data, Mode-S/ADS-B box, and select 'RTL > RPi+Dump1090' from the list window to the right.
  6. Press the green circle on the toolbar to start Plane Plotter monitoring. The planes that are appearing on the RPi screen should now start to appear on your Plane Plotter screen.

Checking it's working using view1090.exe

Malcolm has released a Windows program which you can use to view the outputof dump1090. It's a command-line program, and has text output. Youcan download the program from:

by pressing the Raw button and saving the file. You should right-clickthe downloaded view1090.exe, Properties, andpress the Unblock button if it is visible. This Windows program implements the --interactive screen as a separate application. It connects to dump1090 over the same port as plane plotter does, so gets all theinformation that PP does. To use the program, either create a shortcutwith the requisite properties, or build a command file named e.g. run-view1090.cmd,which contains:

  • C:> view1090.exe --net-bo-ipaddr <your_rpi_IPv4> --net-bo-port <your_rpi_port>--interactive-rows 60

i.e. on my system:

  • C:> view1090.exe --net-bo-ipaddrraspi-3

You only need the --net-bo-port setting if you've configured your dump1090 command line switches using'--net-ro-port'.

Double-click run-view1090.cmd torun the program, and use Ctrl-C to exit.

Keeping the Raspberry Pi's IP address across boots

Steve Tickle reminded us that as the IP address is hard-coded into PlanePlotter in the step above, you will need to make it constant across systemreboots so that your Plane Plotter installation can find the Raspberry Pi everytime. The easiest way to do this may be to reserve an IP address in yourrouter for the Raspberry Pi, which matches the MAC address of the Wi-Fi device (00:26:f2:aa:ff:ffin the example above) to a fixed IP address ( in the aboveexample). Consult your router operations guide for information on how todo this. An alternative may be to set the Raspberry Pi to a fixed (static)IPaddress as described here.

Note: you may need to edit the hosts file on your systems to allowaccess to the device by name rather than by IP address. Add a line suchas: raspberry-pi-1to the file. On Windows-8, note that Windows Defender may try and replacean edited hosts file with the default one, thus removing your changes! OnWindows, the file to be edited is Windowssystem32driversetchosts, and youwill likely need Administrator access to edit that file.

. and finally

Others will no doubt have suggestions on how to ease the installation - but as I said, myknowledge of RPi/Linux is minimal.

Malcolm Robb

If you want the dump1090 program to run automatically every time yourRaspberry Pi boots, please see the automatedstart/stop script below.

Recompiling a new version

First stop any dump1090 process which is running. You can do this withthe following commands, first checking whether you have a dump1090 process, andthen killing it:

  • ps -e grep dump1090
  • sudo killall dump1090

The ps -eshows all processes, ps alone would show just your processes. Here's what the end of the list from ps -e looks like on one RPi.

Alternatively, if you have installed the automatedstart/stop script, below, enter:

  • sudo/etc/init.d/ stop

Now follow these steps as you did before, with the additional step of moving(mv) the existing dump0190 directory to a safety copy, here nameddump1090-001. For your next recompile when dump1090-001 will alreadyexist, your might want to use dump1090-002, and so on. Note that if youare also running ppup1090 to send your output to Plane Plotter (and if youaren't, why not!), then you also need to copy the customised coaa.h which youhave been sent to replace the newly downloaded file.

  • cd /home/pi/
  • mv dump1090 dump1090-001
  • git clone git://
  • cd dump1090
  • cp ./coaa.h . # if you are also running ppup1090
  • make

Now you can start the program and logout. Use one of the two followingcommands according to your needs:

  • ./dump1090 --quiet --no-fix --gain -10 --net &
  • ./dump1090 --quiet --no-fix --gain -10 --net --net-ro-size 500 --net-ro-rate 5 &

Just type logout after starting the program. Alternatively, if you haveinstalled the automated start/stop script below, enter:

  • sudo/etc/init.d/ start

How do I know what version I am running?

Run the command:

  • ./dump1090 --help

If you have just logged in, you will need to change to the dump1090 directoryfirst, or run the following command from your home directory:

  • dump1090/dump1090 --help
DateVersionRelease notes
2013-Apr-141.00.1404.13* Add version number to help output screen.
* Add --net-ro-size command line switch. This defines the minimum size of packets written to the Ethernet in raw data output modes. The default is 0, so the program will send all packets as soon as they arrive. If you suffer from high network load due to lots of small packets, invoke this switch with a parameter between 100 and 1300.
SBS-1 ASCII output changes suggested by JungleJet/Jetvision. Apparently, this makes the output more compatible with Plane Plotter and RTL1090.
2013-Apr-151.01.1504.13* Added --net-ro-rate command line switch. The default is 0. This works in conjunction with --net-ro-size. The program will attempt to gather up net-ro-size raw bytes before sending them out over Ethernet. However, to avoid a long wait if the traffic density is very low, the program will only wait for net-ro-rate 64 millisecond periods since the last send before sending any data added to the output buffer since the last send. This allows the user to tailor the network load to suit their requirements.
* Print out the SI/II when decoding DF-11.
* Stop attempting to error correct DF-11 frames.
* Correct final CR-LF added to SBS-1 ASCII output.
* A few other tweaks aimed at reducing CPU load.
2013-Apr-191.01.1924.13* Fix bug in the Raw Binary beast output format. I had the signal strength byte before the MLAT time-tags, not after. Oops!
2013-Apr-221.02.2204.13* Added --modeac command line switch, first attempt at decoding legacy SSR Modes A and C. If the command line switch --modeac is used, the program will now attempt to recover Mode A/C signals contained in the raw I/Q data stream. The current recovery mechanism is quite strict and does not cope well with overlapping and corrupt SSR replies. I estimate that less than 20% of possible returns are decoded correctly. I hope that over the next few iterations this can be improved. If outputting raw data over an Ethernet link it is recommended to also use the --net-ro-size and --net-ro-rate command line options to reduce the number of very small Ethernet packets that will be generated by mode A/C replies.
When the --interactive switch is used, the software attempts to match the Mode A and Mode C replies to known Mode S records. If no match is found, after a fixed number of receptions (4 for Mode A, 127 for Mode C) the raw Mode A/C will be displayed with an ICAO prefix of 'FF' added to the records. So a Mode A of 3351 will be displayed as FF3351. You should note that it is not possible to positively distinguish all Mode A values from Mode C ones, so there may well be unexpected entries. There are 4096 possible Mode A codes, whilst there are less than 450 likely Mode Cs. However, it appears that, in the UK at least, Mode A codes are deliberately chosen so that they don't clash with possible Mode C Altitude codes.
To make sure Plane Plotter is receiving Modes A, C and S, open the View => Message rates window. The Mode A/C message rate is shown in blue. To see Mode A in Plane Plotter, use the View => Aircraft List Display Options => Mode A/C => List Mode A/C Squawks, and tick it to on. Mode A data will appear in your Aircraft View windows with ICAOs preceded by XX. To see the Mode C in PP, use the View => Mode-C Altitudes Window. The Green dots are Mode C.
14-May-20131.06.1405.13Version update for terribl and bdavenport's combined changes
19-Aug-20131.07.1908.13Split into separate modules and remove some local filtering.
04-Oct-20131.07.0410.13Extra list decoding for DF-0 and DF-16, bug-fix in position decoding, DF-11 SI/II Detection changes.
07-Oct-20131.07.0710.13Makefile updates, add ppup1090 program.
24-Feb-20141.08.2302.14(Malcolm writes) I hope this will fix the following problems that may have been affecting the reliability of MLAT and Beamfinder operation.
1) Missing blocks cause timestamp slips
2) Incorrect beast binary input/output handling of 0x1a escape characters
If you chose to update to this version, and if you're running the ppup109 uploader, please make sure you re-compile both the main dump1090 and ppup1090. The new dump1090 won't work with the old ppup1090. There are no additional command line switches, so your existing startup scripts should still work.
10-Mar-20141.08.1003.14Adds heartbeat to try and prevent Plane Plotter for making repeated TCP connection attempts.
27-May-20141.08.2705.141) 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.
30-Oct-20141.10.3010.14Updates for the Windows version, other enhancements.

Full details of these and all other updates are available here.

Automated update to a new version

Roger Peggram, G7RUH, has kindly provided a documented script which willautomate updating of the program. I have put the script and Roger's noteinto this Zip file (updated to V1.1,2014-Oct-21).

Roger writes: Attached is a script file I wrote for a potential user who is not really computer literate. I did it so the dump1090 program can be backed up and updated just by running the script. As you can see it has a little error detection built in. I have commented the script so it should be self-explanatory.
Assuming you have downloaded all the required packages then running this script will download current version of the code from GIT and compile it. It first makes a backup, just in case the compile/download process fails. The idea being it should 'just work' and if it does not or gives an error then the end user should seek help from the person who installed it. I don't expect the user to fix the problems unless, of course they are more knowledgeable than the intended end-user.
If you think it worthy, please feel free to use it and make it available on the web pageor via git. I don't claim to be an expert script writer, having just got back to 'cutting code' after a gap of some 30 years. I am happy to accept comments, updates, suggestions and (low temperature) flames! I am fairly sure I have tested for all possible errors, but you never know!
Just my way of saying thank-you for a simple to use bit of code for a cost-effective ASDB radar solution on a Raspberry Pi.

Starting the dump1090 program automatically

Here is some information kindly provided by Steve Tickle, who notes that heis a Linux user,as opposed to a Linux guru..
Steve writes: Basically, you would run the program as a daemon, which is broadlyequivalent to a service, in Windows parlance. What that means is that a program can run without a user having to be logged in to start and stopit. So what we'll do is create a little script which is run when the RPi boots and which in turn will start our dump1090 program. Linux has 6 runlevels so we'll then create a number of shortcuts which cause the script (and therefore dump1090) to start or stop according to which run levelLinux is booting into or if it's shutting down.
The assumptions I'll make are that the directory dump1090 executable lives in is /home/pi/dump1090 and thecommand-line switches are the ones that Malcolm first used in his example.
First create the script with the command:

  • sudonano /etc/init.d/

Now copy and paste the following into the new file:

Now we make this file executable with the following command:

  • sudochmod +x /etc/init.d/

Now we create the runlevel shortcuts with the command:

  • sudoupdate-rc.d defaults

And that's about it. If we reboot the RPi it will start dump1090 automatically. If we later log into the RPi, we can stop or restart dump1090 with the commands:

  • sudo/etc/init.d/ stop


  • sudo/etc/init.d/ start
    E&OE as they say!

First Stop Safety Port Devices Driver Download

Oh, and it you want to remove dump1090 as a service, try:

  • sudoupdate-rc.d -f remove

Uploading to the Plane Plotter server directly from theRaspberry Pi

Getting started - posted by Malcolm in the Plane Plotter group

I think we're ready to try a basic uploader. However please note the following words ofcaution:

  1. It will only work on a Raspberry Pi or similar system running Raspian Linux. It is very unlikely to work on other systems.
  2. The uploader does not currently support Master User (MU) operation, but can provide data for Mlat (multilateration).
  3. You can continue to connect to your RPi from your PC and upload from the PC as normal. If you are a GS/MU you can still do Mlats/SMU and all the stuff you used to do. No changes should be required at the PC end.

Ok - To use the uploader do the following:

  1. Update your dump1090 installation with the latest github source. Recompile everything and restart dump1090. The current version is 1.07.0610.13. (i.e. 6 October 2013).
  2. Make sure the new dump1090 is working with Plane Plotter as normal.
  3. You must then go to and enter your details, and the co-ordinates of your RPi, or more specifically your antenna. You will then be e-mailed your own personal copy of a file called coaa.h. Copy this file to your home directory for safe keeping, and also to the directory containing your dump1090 code to overwrite the dummy version supplied in the download.
  4. At the RPi command prompt type 'make -f makeppup1090'. Note that you will need to be in the dump1090 directory. This should recompile a program called ppup1090 (ppup stands for plane plotter upload). If you haven't downloaded you own version of coaa.h (step3) you will get errors here.
  5. Once compiled error free, at the command prompt type './ppup1090'. This should start ppup1090 running, and you will get a countdown message till the next upload. Uploads occur every 60 seconds, and you should get a count of the number of aircraft uploaded, with position and positionless, and a status message giving you an Ok message and a time. It can also print out some cryptic error codes if you are doing something wrong, or attempting to abuse the PP system. You will have to contact me to know what they mean. Some of them indicate that you have fiddled with code that you should not have!


ppup1090 must be started after dump1090. If dump1090 is not running when you attempt to run ppup1090 then ppup1090 will terminate.

If ppup1090 is being run on the same RPi as the main dump1090, then no command line arguments should be necessary. ppup1090 defaults to connecting to dump1090 via, which is the loopback IP address and default beast output port.


However, if you're running dump1090 on a separate RPi, then yes, you do need to specify the IP address of the RPi running dump1090. And if you're running dump1090 with a different beast output port to the default (30005) then you also need to specify that.The command line in either case should be something like:

ppup1090 --net-bo-ipaddr <IPv4> --net-bo-port <port>

Anyway, give it a go and see what happens. I'm not claiming it'll be an easy install, and there may well still be issues, but hopefully it should give those of us with remote RPi installs the ability to upload to PP 24/7.
If you get errors, please post (on thePlanePlotter Group) the exact command line arguments you're using for both dump1090 and ppup1090, together with any error messages and I'll attempt to work out what is going on.


Malcolm has created separate makefiles for dump1090, view1090 and ppup1090,and these can berun with the command line 'make -f makedump1090', 'make -fmakeview1090' and 'make -f makeppup1090'. Running the makecommand on its own creates just dump1090 and view1090.

Once compiled error free, at the command prompt type './ppup1090 &'. This runs the program in the background and allows it to continue running afteryou log out.

Checking it's working..

Look at the personalised coaa.h you were sent (use the catcommand), and you will see a hex authorisation code - something like123abc. Substitute that hex string in the URL:

and you should get a report like this:

PlanePlotter installation 123321
Time last accessed (UTC)UserCountLast acft upTot acft upShare codeValid GS
2012-01-12 12:34:56<your-name>444806144177369AAyes

Sample startup-script for both dump1090 and ppup1090

Steve Tickle has kindly supplied this script to start both the dump1090program and the ppup1090 program when the Raspberry pi starts running. Youcan create it as discussed above in /etc/init.d/

[DJT] There could be errors in the script below - please use withcaution. I modified it slightly from Steve's original. I have alsoplaced this file in the PlanePlotter Group's Files area as in case thedownload from scraping this Web page proves faulty.

[DJT] PaulGulliver noted that there's an alternative way mentioned here. Look for section (3) 'Make ppup1090 to auto-start at boot'.

Earlier version which may not download correctly..

Program parameters

Typing ./dump1090 --help produces the following output:

Network connection dropping

Al Henderson had been having problems with the network connection from hisRaspberry Pi dropping out, but in late October 2013 he resolved it, and postedthis note on the PlanePlotterGroup:

For a few months now, I have been running a Raspberry Pi with the RTL dongle and dump1090 to feed PP. It's never been 100% reliable, seeming to drop its Wi-Fi connection every so often which is frustrating.

I think I found out why last night. A simple Google brought me to a number of pages that discussed how to turn off the power management on theWi-Fi dongle (it's an Edimax7811Un). This dongle goes into power save when network traffic drops off, and getting it to wake up seems to be a problem.Certainly Plane Plotter trying to re-establish it's TCP/IP link doesn't appear to do it.

To try and sort this problem, I did two things (although either one of them should suffice). Firstly, I put an entry in the cron file on the Pi to ping my router every minute - this should keep the network alive and stop the dongle going into power saving. Secondly, I turned power saving off for the dongle. This part was specific to the model of dongle, in case anyone else has the same one, here's what I did:

- created a file called /etc/modprobe.d/8192cu.conf
- added the line: options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

I did the former because I didn't have complete confidence in doing the latter - the page I was looking at didn't say if you had to do anything else to make that happen.

This seems to have done the job, my Pi has now been running for 12 hours uninterrupted which is something it hasn't done for a long time. The drop outs got worse the other week when I changed the dump1090 options to reduce network load - clearly making the dongle fall asleep more often!

Thanks for posting that information, Al. I may not have seen theproblem as both NTP and MRTG will regularly make network connections.

Running two Raspberry Pi cards on different sidesof the house

Folks who have limited coverage have asked about running two Raspberry Picards with dongles, with antennas pointed in different directions from a singlelocation, or perhaps one from an east-facing and one from a west-facing window. Note that these must be at the same location - not two different locationsconnected by the Internet! A helpful note was posted here (was: message 91820)by Marco showing how to use the Linux nc command to achieve this.Many thanks to Marco! He writes:

So here's my write up regarding a dual receiver using two Raspberry Pi cards, with some amendments since the original post back in December.

With a spare RPi lying idle on my desk I started wondering if I could use this somehow for a second antenna, as a simple way to get 360 degrees antenna coverage.

After a bit of online research I found it is actually very easy to use twoRaspberry Pi cards, each with their own dongle and antenna. Here's how it can be done:

Two Raspberry Pi cards with dump1090 installed as usual, both network connected. We will just for clarity call one of them PRIMARY and the other SECONDARY. PlanePlotter connects to the PRIMARY Pi as usual (over port 30005) without any additional configuration inPlanePlotter needed. Nor does the SECONDARY unit need any additional configuration. Only on the PRIMARY, this line will fetch data from the SECONDARY dump1090 and inject it into the PRIMARY dump1090:

Of course replace '<secondary ip address>' with the actual IP address of thatRPi. Entering this on the command line will do the trick, but if this setup is going to be permanent it should be in a startup script.

How does it work? nc is short for netcat, a very handy set of Linuxnetwork commands. First we fetch data from the remote RPi, on port 30005 (TCP output port in Beast format). The '-d' is there to prevent the connection is broken by any keyboard input. Next we pipe this data to the local IP address on port 30004 (TCP input port in Beast format). Finally the & is used to let it run in the background.

Download EIZO Monitor drivers, firmware, bios, tools, utilities. Latest downloads from EIZO in Monitor. Sort by: last update. Software and drivers for individual EIZO products can be downloaded here. Eizo driver download pc. All downloads from EIZO at a glance. Please enter the product name or parts of the product name into the search field. EIZO is a visual technology company that manufactures high-end monitors and display solutions for business, graphics, home entertainment, healthcare, maritime, security/surveillance, ATC and defense/aerospace. EIZO is a visual technology company that manufactures high-end monitors and display solutions for business. Software and Drivers Download. Software / ICC Profiles.

With both Raspberry Pi cards linked, the view1090 program can still be used on both. On the SECONDARY it shows only the messages received by that Pi, but on the PRIMARY it will show not only its own received messages but also the messages received from the SECONDARY. That the setup is working can thus be tested very simply by alternately disconnecting one antenna from its dongle (just the antenna, do not unplug the dongle). With the PRIMARY antenna disconnected, view1090 on the PRIMARY will (after a short while) show the same messages as on the SECONDARY view1090.

After some testing and using this setup for several weeks, I only found one drawback: when the netcat commands are executed on the PRIMARY, dump1090 on the SECONDARY must already be up and running and available on the network, otherwise the linking will fail. Also, whenever the connection gets interrupted the link breaks and will not automatically restore. Dump1090 on the PRIMARY will continue to function without any problems, regardless of the link being active or not. In my setup, the connection is very stable and only is lost when one or bothRaspberry Pi cards reboot. Therefore on the PRIMARY if have added the netcat command line in my dump1090 startup script with a 2 or 3 second delay after starting dump1090 itself, and making sure that should theRaspberry Pi cards be rebooting I first reboot the SECONDARY and then the PRIMARY.

You can always check on the PRIMARY if the link is active, with the 'ps aux' command there should be two nc processes active. Also the 'top' command will intermittently show the nc processes.

Not tested, but I'm 95% sure that the ppup1090 program on the PRIMARY (if used) will also upload thedata fed in from the SECONDARY.

I'm not saying it would make much sense, but more than one SECONDARY can be used, just add the netcat command line for each SECONDARY on the PRIMARY. Do NOT use remote SECONDARY antenna's (i.e. over a WAN connection) because the antenna's would not be in the same location anymore and you will mess up the system, I think..

Any feedback is much appreciated! (feedback can be given on the PlanePlotterGroup)


Integration with monit

First Stop Safety Port Devices Driver Download 64-bit

Simon Hitzemann writes: Many thanks for the great write-up on how to get dump1090 running on aRaspberry Pi.

While everything worked like a charm an integration with monit on monitoring the dump1090 service was a bit tough, so I put together aninit-script that's a bit nicer to integrate into monitoring solutions while beingDebian/Raspbian compliant.

I'm using start-stop-daemon in it a lot, it basically implements a lot of the functionality of the original script. It's even writing the PID of the process into the PID file and if you try to start it again it eithernotices the PID exists and does nothing or it spawns a new process and puts the new PID into the file.

Long story short, here's the init script. I hope it helps :) download a Zip file with the script


Some useful Linux commands

To logout:

  • logout

To shutdown - which you should do to close the system cleanly before poweringoff - use shutdown. The -P argument turnsthe power off, now says shutdown immediately:

  • sudo shutdown -h -P now

To reboot:

  • sudo reboot

To display processes running and their CPU load, memory consumption etc.

First Stop Safety Port Devices Driver Download Windows 7

  • htop

Note that you may need to install htop with a sudo apt-get install htop, but you can see that it's worth it!

An alternative approach

Perhaps the next step might be to get a better receiver, such as the Airspy. This can be used with the Raspberry Pi to provide better performance than theDVB-T dongle provides. Details are here.


To Malcolm Robb for the original post, and to Steve Tickle and others formuch-needed help with Linux.

Free Device Driver Downloads

What else have I done with the Raspberry Pi?

  • A stratum-1 NTP server withmicrosecond-level offsets and a power consumption of under 4 watts. Information about interfacing a GPS receiver to the Raspberry Pi, choosing between variousreceiver options, and how to compile NTP from the source. I hope you will find the page interesting, and perhapsbuild a GPS-locked stratum-1 NTP server yourself.
  • A Digital Wall clock using the Raspberry Pi - synchronised with NTP, of course! This shows how to automatically login on the Raspberry Pi, how to run a GUI program when starting the desktop, and provides pointers to installing the Free Pascal compiler and Lazarus IDE to compile your own programs.

What do the terms GS, Mlat, MU, SMU, ADS-B etc. mean?

A small glossary of the terms used may be found here.