Skip to content

ramkrishna757575/openIPC-drone-finder

Repository files navigation

Drone Finder

Drone Finder is a tool designed to locate drones by reading Receiver Antennas' RSSI (Received Signal Strength Indicator) values from wfb-ng. It displays an On-Screen Display (OSD) in real-time, indicating the proximity of a drone to the receiver based on signal strength.

Features

  • Real-Time OSD: Displays an on-screen indication of the drone's proximity based on RSSI values.
  • RSSI Analysis: Reads RSSI data from receiver antennas to calculate how close a drone is.
  • Dynamic Frequency Updates: Adjusts beeper frequency to indicate signal strength, making it easier to understand proximity.
  • Modular Design: Organized into multiple modules for ease of maintenance and extensibility.

Project Structure

.
├── cairo_renderer.py       # Module for rendering OSD with Cairo
├── frequency_updater.py    # Module that updates the frequency based on RSSI values
├── main.py                 # Main entry point of the application
├── osd_widget.py           # PyQt5 widget for displaying the OSD
├── main.spec               # PyInstaller spec file for packaging the app
├── build/                  # Build directory (generated by PyInstaller)
├── dist/                   # Distribution directory for binaries (generated by PyInstaller)
├── venv/                   # Virtual environment (not included in Git)
└── README.md               # Project README file

Installation

  1. Install required dependencies:

    sudo apt update
    sudo apt install libgirepository1.0-dev
  2. Clone the repository:

    git clone https://github.com/ramkrishna757575/openIPC-drone-finder.git
    cd DroneFinder
  3. Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  4. Install the required dependencies:

    pip install -r requirements.txt
  5. To build a binary run the following command. You can find the binary with name main inside dist folder.

    pyinstaller --onefile main.py

Usage

To run the application, use the following command:

python main.py [--verbose] [--osd]
--verbose: Enable verbose mode for logging.
--osd: Enable OSD mode for displaying how close the drone is to the receiver.

Components

main.py The entry point of the application. It sets up argument parsing, starts the frequency updater, and initializes the OSD if specified.

osd_widget.py Defines the OSDWidget class, which is a PyQt5 widget for displaying the real-time OSD.

cairo_renderer.py Defines the CairoRenderer class, which uses Cairo to render the signal strength on a surface.

frequency_updater.py Contains functions for fetching and updating the current frequency.

About

Drone Finder for OpenIPC Groundstations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages