Demodulate and error correct FIS-B and ADS-B signals on 978 MHz.

Related tags

Miscellaneousfisb-978
Overview

FIS-B 978 ('fisb-978') is a set of programs that demodulates and error corrects FIS-B (Flight Information System - Broadcast) and ADS-B (Automatic Dependent Surveillance - Broadcast) messages transmitted on 978 Mhz, mostly in the United States.

It performs the same function as FlightAware's 978 https://github.com/flightaware/dump978, but is spread out over several programs that are piped together. It's main advantage over FlightAware's 978 and other 'dump-978' clones is that for moderate to weaker signals it can provide much higher packet decode rates, since it takes into account that samples at the Nyquist sampling rate may not be optimal and will shift them to more optimal levels.

For strong signals, 'dump-978' and 'fisb-978' will perform similarly.

'fisb-978' is composed of two main parts and one optional part:

  • demod_978 is a C language program which takes raw data from an SDR program at 978 Mhz and sample rate of 2.083334 Mhz (with 16-bit complex integer output (CS16)) and will demodulate the data, detect sync words, and output packets along with attributes of the packet to standard output. Typically, 'ec-978.py' will read this data.
  • ec_978.py takes the data from 'demod_978' and will use Reed-Solomon error correction to produce an output packet as hex bytes (similar to 'dump-978'). It uses a number of techniques to provide a higher packet decode rate. The output is sent to standard output, where is can be used as is, or processed by 'server_978'.
  • server_978.py takes the output from 'ec_978.py' and will provide a TCP server where clients can connect and receive the data. It is optional if you don't want to serve the data via TCP.

The program is broken into parts for modularity and speed. C is very fast for searching through the input stream and finding sync packets (numpy is great at the demodulation part, but horrid at searching for sync codes). Python using numpy (and a Reed-Solomon library linked to a C library), is very quick at error correcting the packets and manipulating them to provide more optimum bit levels for better error correction rates.

A couple of things to consider before using:

  • Since 'demod_978.c' uses type-punning, a compiler that is friendly to that is required. GCC is such a compiler. All code expects little-endian byte order. This will work on most common architectures in use today. If needed, big-endian can be added as a future feature.

  • 'server_978.py' uses a select() statement using both sockets and file I/O. As such, this will usually not work on Windows (it should work fine if you are using the 'Linux Subsystem for Linux').

FIS-B 978 is not designed, nor intended, to be used for any purpose other than fun exploration.

⚠️ WARNING
FIS-B 978 is NOT intended for actual flight use, nor to be used as a component of a system for any flight related operations (flight planning, etc). It is strictly a fun hobby program with many bugs. It is based loosely on draft standards, not actual standards, and has not undergone any formal testing. DO NOT USE OTHER THAN FOR FUN-- NOT FLIGHT!!

To get started with FIS-B 978, see the file 'fisb-978-intro.pdf' in the fisb-978/docs directory.

A small Python library which gives you the IEEE-754 representation of a floating point number.

ieee754 ieee754 is small Python library which gives you the IEEE-754 representation of a floating point number. You can specify a precision given in t

Bora Canbula 5 Dec 20, 2022
Utility/Raiding selfbot made by Shell and Roover.

Utility/Raiding selfbot made by Shell and Roover. We are open to suggestions and ideas.

Shell 2 Dec 08, 2021
Visual Python and C++ nanosecond profiler, logger, tests enabler

Look into Palanteer and get an omniscient view of your program Palanteer is a set of lean and efficient tools to improve the quality of software, for

Damien Feneyrou 1.9k Dec 26, 2022
B-Pkg is a simple tool in python for installing all basic package in termux

Basic-Pkg 👉🏻 Basic-Pkg 👈🏻 B-Pkg is a simple tool in python for installing all basic package in termux This is my first tool, I hope you will like

Macgaiver 3 Oct 21, 2021
Localization and multifractal properties of the long-range Kitaev chain in the presence of an Aubry-André-Harper modulation

This repository contains the code for the paper Localization and multifractal properties of the long-range Kitaev chain in the presence of an Aubry-André-Harper modulation.

Joana Fraxanet 2 Apr 17, 2022
WinBoost: Boost your windows system.

Winboost runs a complete checkup of your entire system locating junk files, speed-reducing issues and causes of any system or application glitches or crashes. Through a lot of research and testing, w

Smit Parmar 4 Oct 01, 2021
OnTime is a small python that you set a time and on that time, app will send you notification and also play an alarm.

OnTime Always be OnTime! What is OnTime? OnTime is a small python that you set a time and on that time, app will send you notification and also play a

AmirHossein Mohammadi 11 Jan 16, 2022
Age of Empires II recorded game parsing and summarization in Python 3.

mgz Age of Empires II recorded game parsing and summarization in Python 3. Supported Versions Age of Kings (.mgl) The Conquerors (.mgx) Userpatch 1.4

148 Dec 11, 2022
Package pyVHR is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

Package pyVHR (short for Python framework for Virtual Heart Rate) is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

PHUSE Lab 261 Jan 03, 2023
Simple python script for AD enumeration

AutoAD - Simple python script for AD enumeration This tool was created on my spare time to help fellow penetration testers in automating the basic enu

Mohammad Arman 28 Jun 21, 2022
In this project , I play with the YouTube data API and extract trending videos in Nigeria on a particular day

YouTubeTrendingVideosAnalysis In this project , I played with the YouTube data API and extracted trending videos in Nigeria on a particular day. This

1 Jan 11, 2022
tg-nearby Trilateration of nearby Telegram users as described in my corresponding article.

tg-nearby Trilateration of nearby Telegram users as described in my corresponding article. Setup If you want to toy with the code in this repository

Maximilian Jugl 75 Dec 26, 2022
Update your Nintendo Switch cheats with one click, or a bit more~

Interactive-ASM-Cheats-Updater This updater unlocks your ability of updating most of the ASM cheats for Nintendo Switch. Table of Contents Functions Q

zzpong 63 Dec 27, 2022
🛠️ Learn a technology X by doing a project - Search engine of project-based learning

Learn X by doing Y 🛠️ Learn a technology X by doing a project Y Website You can contribute by adding projects to the CSV file.

William 408 Dec 20, 2022
A bot to view Dilbert comics directly from Discord and get updates of the comics automatically.

A bot to view Dilbert comics directly from Discord and get updates of the comics automatically

Raghav Sharma 3 Nov 30, 2022
Supercharge your NFTs with new behaviours and superpowers!

WrapX Supercharge your NFTs with new behaviours and superpowers! WrapX is a collection of Wrappers (currently one - WrapXSet) to decorate your NTFs ad

Emiliano Bonassi 9 Jun 13, 2022
Demodulate and error correct FIS-B and ADS-B signals on 978 MHz.

FIS-B 978 ('fisb-978') is a set of programs that demodulates and error corrects FIS-B (Flight Information System - Broadcast) and ADS-B (Automatic Dep

2 Nov 15, 2022
Password manager using MySQL and Python 3.10.2

Password Manager Password manager using MySQL and Python 3.10.2 Installation Install my-project with github git clone https://github.com/AyaanSiddiq

1 Feb 18, 2022
Sardana integration into the Jupyter ecosystem.

sardana-jupyter Sardana integration into the Jupyter ecosystem.

Marc Espín 1 Dec 23, 2021
Download and archive entire usenet newsgroups over NNTP.

Usenet Archiving Tool This code is for archiving Usenet discussions, not downloading files. Newsgroup posts are saved under the authors name and email

Corey White 2 Dec 23, 2021