viz1090: an ADS-B visualizer

View dump1090 output on a map

Similar projects worth following
This is a visual frontend for the dump1090 ADS-B decoder.

This visualizer consumes ADS-B output from dump1090 over a network socket using the original view1090 interface. Instead of showing a list of planes, this plots them on a map. 

I originally intended this to be used for a handheld Raspberry Pi setup, but I've since tried to move it in a more cross-platform direction. Most of the development has been done on a touchscreen linux laptop, but it will also build on Mac or Windows Linux Subsystem. I'm working on an Android build as I think that is the best target platform. 

This is very much in progress! Lots of things I would like to add/fix but haven't gotten around to yet.

  • Progress on a handheld version

    nathan.matsuda12/19/2022 at 17:06 1 comment

    I started this project with a handheld plane tracker in mind, but lost interest because of the bulk and low performance I was getting out of Raspberry Pi 3s at the time. I regained interest when the compute module 4 came out, but it took forever to get one. Finally, I started putting this together a few months ago:

    Inside we've got a compute module 4, a Waveshare CM4-DISP-BASE(A), a Noelec Nano 3, a Seeed Studio Lipo Rider Plus, and a 4000mAh battery.

    The power supply and SDR modules are connected to the CM4 carrier with a really awful USB pigtail assembly for now:

    I'm still in the trial-and-error phase of the enclosure design, but I'm working toward a version that has anodized front and rear panels so I can do away with the heat sinks, shaving off ~5mm of thickness in the process.

    This still isn't a step toward the all-in-one board version of this that I really want to do, but this is compact enough to put in a jacket pocket now. I'll post the CAD files on the github when I've finished fiddling with them. 

  • viz1090 on the HyperPixel round version

    nathan.matsuda01/21/2022 at 02:05 0 comments

    The round version of Pimoroni's HyperPixel display seemed appropriate for this project. Here it is running on a Raspberry Pi Zero 2 W:

    There's a branch on github called "round" that has a runtime flag to turn set the screen boundary to a circular outline.

  • Hyperpixel4 Case

    nathan.matsuda11/19/2020 at 05:50 0 comments

    I've gone through several iterations on a minimal case for the Pimoroni Hyperpixel4 display and a trimmed-down Raspberry Pi 4. This has nothing specific to this project, but it's a really nice screen for scrolling around looking at flight paths.

    The latest version has a bar magnet glued on the back so I can stick it to the side of my PC.

    The STL and original Blender file are on github.

  • github repo

    nathan.matsuda06/27/2020 at 03:46 0 comments

    People have been asking me to make the repository for this public for a couple years now, so here you go:

    When I have the occasional chance to work on this I always end up adjusting the visualization and never get around to refactoring /  cleanup / optimization, so I've been hesitant to put this out into the world. I'll keep working on getting this into good form for a proper release, but for now this should still build on a variety of platforms if you want to play around with it.

    Some improvements since I last posted:

    • Basic touchscreen interface to move around the map
    • Plane labels adjust layout  and visibility automatically
    • Utility to load shapefile map data

    The biggest feature I've wanted to include but isn't working yet is Android compatibility. A Pixel 2 phone has far better form factor, display quality, compute power, and battery life then you can put together on a Raspberry Pi platform for the same price, so I think that's the platform most people would want to run this on. I've had earlier versions of this successfully running on Android, but it's broken at the moment. There is also not a native dump1090 for Android, so you'd have to connect to a networked ADSB server. 

    For now, I'd recommend a Raspberry Pi 4 with a HyperPixel 4 display and piJuice battery hat.  

  • Original Description

    nathan.matsuda06/26/2020 at 18:37 0 comments

    Note: this used to be the description of the project (circa early 2018), but I moved it to the project logs since this onnly covers the early stages of the project.

    <p>This project started as an attempt to build a general-purpose handheld SDR receiver, which turned out to be a little too open ended for me to make much progress. I got as far as putting a 2.2" Adafruit screen on a Raspberry Pi Zero with some 3D printed knobs. </p>

    <p>I realized what I really wanted was to play around with the LCD, so I took the knobs off, attached USB hub to plug the SDR dongle into, and started listing dump1090 output on the screen. </p>

    <p>I also plugged this stack into a USB battery pack to try it out on the go:</p>

    <p>After playing around with drawing flight info using SDL I upgraded the screen to a 3.5" IPS LCD to make more room for the plots.</p>

    <p>At the moment, I'm drawing the UI from a few methods I stuck in the view1090 source, which listens to vanilla dump1090 output on a local socket. I'll put the viewer on Github when I get around to cleaning it up a little.</p>

    <p>The battery, SDR dongle, Raspberry Pi, and LCD stack is really thick (over an inch even after cutting most of the RPi headers off), but I put it all into a temporary case anyway. </p>

    This would work best as an all-in-one, like the awesome Gameboy" class="redactor-linkify-object">">Gameboy AIO, but there a lot of things to figure out before I go down that route.

View all 5 project logs

Enjoy this project?



Gerry Kavanagh wrote 03/14/2020 at 19:02 point

Nice project. What sort of range are you seeing with the Nooelec antenna at ground-level?

Are you planning to release the code? STLs?



  Are you sure? yes | no

nathan.matsuda wrote 03/15/2020 at 04:25 point

I collected a few days worth of data about a year ago and got a range  of 52mi / 84km north-south and 16mi / 27km east-west, taking the 5th and 95th percentiles for min and max since  there were some outliers in the dataset. I'd guess the asymmetry is likely due to the effect of local geography (Puget Sound) on both signal propagation and flight paths.

I am planning on releasing the code but am just making very slow progress on it. It's a mess. STLs too, though I've since moved mostly to running this on a Google Pixel 2, which is a drastically better screen and overall package than any Pi-based setup. 

  Are you sure? yes | no

Gerry Kavanagh wrote 03/15/2020 at 10:52 point

That's impressive range for a handheld device with a relatively low gain antenna. I guess the short feed line helps with loss too.

I take your point on tidying code before releasing. One thing worth considering though is that most people will be so grateful at not having to do heavy lifting themselves that they will not look a gift horse in the mouth. However... that's just most...

/ Gerry

  Are you sure? yes | no

nathan.matsuda wrote 03/15/2020 at 16:52 point

oh right - to clarify, those numbers were collected using the FlightAware 26in antenna (with the same Pi 3 and NESDR SMArt setup), I'll have to test the range some time with the little Noelec antenna. 

  Are you sure? yes | no

jarp wrote 06/26/2019 at 09:41 point

Very interesting project and good development, congratulations.
I would be interested in the sources and if they are uploaded to github.

  Are you sure? yes | no

slickfddi wrote 04/24/2019 at 04:12 point

Hey, you wanna put the "open" in "open source"? Post your code mate, that stuff looks awesome and exactly what I've been wanting to do with a 3.5" LCD I've got unused!

  Are you sure? yes | no

Joshua Conway wrote 04/28/2019 at 05:37 point

Mine's a wee bigger..

However, my full kit *is* free software under the GPL3, including BoM, printables, and standup scripts.


Accepted talk at CircleCityCon:

  Are you sure? yes | no

James Hall wrote 04/29/2019 at 13:30 point

Wow, that is wild. Does the keyboard snap in or something?

  Are you sure? yes | no

Joshua Conway wrote 04/29/2019 at 13:41 point

James hall

The keyboard is a BT (cringe) commercial on the shelf hardware.

I wanted a physical keyboard wired to GPIOs or usb.... But that was more scope creep for my project.

  Are you sure? yes | no

Kevin Elliott wrote 04/11/2019 at 00:13 point

This is awesome, and your greater scope of a multi-purpose portable SDR is something I've long wanted to build as well. Also, I am an avid ADS-B guy (I have 7 raspberry Pi's running off 4 antennas, feeding FlightAware/FlightRadar24/ADBSExchange, and working on a desktop app called FlightTrack). I think we should find a way to collaborate, if you're interested.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates