pluto-adsb-sim generates ADSB signal IQ data stream, which is then transmitted by the software-defined radio (SDR) platform ADALM-Pluto.
Project based on ADSB-Out
Three mode are available:
- Tx stream from an ASCII file;
- Tx stream from fake frame;
- fake frame or ASCII file to binary file
Don't transmit over the air. Always use cable between emitter and receiver to avoid disturbing real airplanes communications!
### dependencies This application require libiio, libad9361-iio and pkg-config
$ sudo apt install libiio-dev libad9361-dev libad9361-0 libiio0 pkg-config
### compile
$ make
Usage: pluto-adsb-sim [options]
-h This help
-t <filename> Transmit data from file
-o <outfile> Write to file instead of using PlutoSDR
-a <attenuation> Set TX attenuation [dB] (default -20.0)
-b <bw> Set RF bandwidth [MHz] (default 5.0)
-f <freq> Set RF center frequency [MHz] (default 868.0)
-u <uri> ADALM-Pluto URI
-n <network> ADALM-Pluto network IP or hostname (default pluto.local)
-i <ICAO>
-l <Latitude>
-L <Longitude>
-A <Altitude>
-I <Aicraft identification>
To use -n or nothing, you need to have in /etc/hosts a line like:
192.168.2.1 pluto pluto.local
To use this mode a file must be provided with -t option
The file used is an ascii, hex format, one frame by line:
@XXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYY;
Each line start with a @ and finish with a ; Where:
- X is a 12 char hex date in ns
- Y is the 14 char hex full frame (DF, ICAO, DATA, CRC)
example
./pluto-adsb-sim -f 868 -t maFile.dat
To use this mode, don't provide a data file (no -t option)
example
./pluto-adsb-sim -f 868 -i 0xABCDEF -I GGM_1980 -l 48.36 -L -4.77 -A 9999.0
If -o is used the PlutoSDR is not used. Instead the data stream is written in a binary, signed short IQ interleaved format
$ dump1090 --freq 868000000
--freq parameter must be the same as -f