5.4 KiB
viz1090
This is work in progress
There are some major fixes and cleanup that need to happen before a relase:
- Everything is a grab bag of C and C++, need to more consistently modernize
- A full refactor, especially View.cpp, necessary for many of the new features below.
- A working Android build, as this is the best way to run this on portable hardware.
There are also a lot of missing features:
- Map improvements
- Labels, different colors/line weights for features
- Tile prerenderer for improved performance
- In-application menus for view options and configuration
- Theming/colormaps (important as this is primarily intended to be eye candy!)
- Integration with handheld features like GPS, battery monitors, buttons/dials, etc.
BUILDING
Tested and working on Ubuntu 18.04, Raspbian Stretch / Buster, Windows Subsystem for Linux (with Ubuntu 18.04), and Mac
- Install build essentials
sudo apt-get install build-essential
- Install SDL and RTL-SDR libararies
sudo apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-gfx-dev librtlsdr-dev
Note: On Raspbian the SDL2 package requires X to be running. See the Raspberry Pi section for notes on running from the terminal and other improvements.
- Download and build spidr
cd ~
git clone https://www.github.com/nmatsuda/spidr
cd spidr
make clean; make
- Download and process map data Grab a shapefile with your desired level of detail from https://www.naturalearthdata.com/downloads
This is a good place to start.
Unzip and copy the .shp and .shx files.
sudo apt install python3 python3-pip
pip3 install geopandas tqdm
python3 mapconverter.py ne_10m_admin_1_states_provinces.shp
This will produce a file mapdata.bin that viz1090 reads. If the file doesn't exist then visualizer will show planes and trails without any geography.
The default parameters for mapconverter should render resonably quickly on a Raspberri Pi 4. See the mapconverter section below for other options.
- (Windows only)
As WSL does not have an X server built in, you will need to install a 3rd party X server, such as https://sourceforge.net/projects/vcxsrv/
* run Xlaunch from the start menu
* Uncheck "Use Native openGL"
* Open the Ubuntu WSL terminal
* Specify the X display to use
```
export DISPLAY=:0
```
* Start viz1090 as described below.
RUNNING
- Start dump1090 (http://www.github.com/MalcolmRobb/dump1090) locally in network mode:
dump1090 --net
- Run viz1090
./viz1090 --fullsceen --lat [your latitude] --lon [your longitude]
viz1090 will open an SDL window set to the resolution of your screen.
RUNTIME OPTIONS
Argument | Description |
---|---|
--server [domain name or ip] | Specify a dump1090 server |
--port [port number] | Specify dump1090 server port |
--metric | Display metric units |
--lat | Specify your latitude in degrees |
--lon | Specify your longitiude in degrees |
--screensize [width] [height] | Specify a resolution, otherwise use resolution of display |
--uiscale [scale] | Scale up UI elements by integer amounts for high resolution screen |
--fullscreen | Render fullscreen rather than in a window |
HARDWARE NOTES
This software was originally intended for Raspberry Pi devices, and it is currently optimized for the Raspberry Pi 4 with the following configuration:
- Raspberry Pi 4
- A display:
- Pimoroni HyperPixel 4.0 Display *best overall, but requires some rework to use battery monitoring features of the PiJuice mentioned below
- Waveshare 5.5" AMOLED *this is very good screen but the Google Pixel 2 phone mentioned below has a very similar display for the same price (along with everything else you need in a nice package)
- Waveshare 4.3" HDMI(B)
- Adafruit 2.8" Capacitive Touch
- A battery hat, such as:
- PiJuice Battery Hat *I2C pins must be reworked to connect to the Hyperpixel nonstandard I2C breakout pins, unfortunately
- MakerFocus UPS Hat
- Any USB SDR receiver:
- Noelec Nano V3
- Stratux V2 *very low power but hard to find
If running as a front end only, with a separate dump1090 server, the best option is to use an Android phone, such as the Pixel 2, which significantly outperforms a Raspberry Pi 4.
viz1090 has been tested on other boards such as the UP Core and UP Squared, but these boards have poor performance compared to a Raspberry Pi 4, along with worse software and peripheral support, so they are not recommended. viz1090 with a low resolution map will run on these boards or even a Raspberry Pi Zero, so these remain options with some tradeoffs.
Of course, a variety of other devices work well for this purpose - all of the development so far has been done on a touchscreen Dell XPS laptop.
Credits
viz1090 is largely based on dump1090 (Malcom Robb, Salvatore Sanfilippo)