simurgh
simurgh copied to clipboard
A ADS-B "BEAST" TCP decoder server, in Go. Requires dump1090 or similar application with BEAST TCP output. •••••• THIS REPO LIVES AT THE FOLLOWING URL NOW: https://0xacab.org/mtigas/simurgh • or via t...
Simurgh
A Mode-S "BEAST" TCP decoder server.
Mostly an experiment to understand the raw binary "BEAST" signal format (see "Further Reading" for links about the format), and an excuse to learn Go. Don't use this for anything real.
© 2016-2017 Mike Tigas, all rights reserved. See license information.
Building / Installation
You need Go. Download & set it up using the instructions here;
minimally, you need to install the Go tools (and the tools in your $PATH
)
and ensure that you have a $GOPATH
set.
Then:
go get github.com/mtigas/simurgh
Now you'll have a binary at $GOPATH/bin/simurgh
.
Make sure $GOPATH/bin
is on your $PATH
, or copy $GOPATH/bin/simurgh
to
somewhere like /usr/local/bin/
.
Usage
-
You need a
dump1090
server running. -
Launch the simurgh listener by running
simurgh
. There are also some flags you can use:-baseLat float latitude used for distance calculation (default 40.77725) -baseLon float longitude for distance calculation (default -73.872611) -bind string ":port" or "ip:port" to bind the server to (default "127.0.0.1:8081") -sortMode uint 0: sort by time, 1: sort by distance, 3: sort by air (default 1)
i.e.
simurgh --baseLat 40.68931 --baseLon "-74.04464"
if you're receiving data from the Statue of Liberty(???) -
Given that
dump1090
is running on the same machine as this program,nc 127.0.0.1 30005 | nc 127.0.0.1 8081
will pipe the appropriate network data in and you should see some basic aircraft output, not unlike dump1090’s "interactive mode". Something like:
ICAO Callsign Location Alt Distance Time a64d4d 40.631104,-73.874329^ 2450 5.36 a7ad0d JBU839 40.519043,-73.865479^ 7050 11.89 a03765 AAL125 40.630646,-73.726013^ 9450 12.54 0c6030 BWA17 40.460999,-73.608704 4875 23.59 aa4252 40.957535,-74.260986^? 21425 25.09? 27… ae0449 BALSA76 40.287689,-73.836365^ 35000 27.59 ac7b1b JBU1503 40.431381,-73.503662 13650 29.22 a099a7 40.865204,-73.195496? 18800 41.96? 22… a74923 40.950623,-73.106506^ 18450 48.37 a9f2c6 40.313828,-73.042053 22750 54.23 acc6d1 AAL1313 40.804138,-72.314026 30850 86.49
Output is updated constantly. Aircraft with location data older than 10sec are marked with a
?
, and a timer eventually appears. Old aircraft (45sec) are discarded from the on-screen list.Aircraft where we have received network-assisted multilateration (to improve location data) are marked with
^
; this data often comes back down from FlightAware if your dump1090 instance was installed with the "piaware" packages (i.e.piaware-config
, et. al.) To receive MLAT data, your receiver needs to have an accurate location set on your "My ADS-B" FlightAware page.
Further Reading
- Information about the BEAST data format (see "Binary Format").
- The BEAST format only encapsulates the raw Mode-S data in TCP. Some Mode-S reference:
- Wikipedia: Aviation transponder interrogation modes
- Wikipedia: Secondary surveillance radar#Mode S
-
dump1090 is one of several applications that accepts BEAST input (port
30004
or31004
) and generates BEAST output (30005
), and is a good reference point:- portions of
simurgh
are based on the dump1090 mode s decoder implementation
- portions of