skullydazed / pypacket

Modular APRS Rx IGate framework for RTL-SDR devices.

Home Page:https://pypacket.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A modular, framework-first, python APRS logger for low cost RTL-SDR devices.

Build Status Coverage Status Codacy Badge Requirements Status Requirements Status License: GPL v3

Requirements

The following are required to be installed and configured on your system.

  • An RTL-SDR compatible device.
  • Some form of Unix-like system.
  • Python >= v3.6
  • rtl_fm
  • multimon-ng
  • An amateur radio license, callsign for optional APRS-IS integration.

Setup

  • config/configuration.json contains all basic runtime configuration settings.
  • For optional APRS-IS integration, have the following environment variables set:
  • Run pip install -r requirements.txt

Security and Privacy

The Automatic Packet Reporting System (APRS) is never private and never secure. As an amateur radio mode, it is designed solely for experimental use by licensed operators to publicly communicate positions and messages. Encryption on amateur radio frequencies is forbidden in most localities. As such, connections to APRS-IS are also unsecured and only intended for licensed amateur radio operators.

Usage

  • Run ./main.py.
    • The application will start and immediately begin listening on the configured frequency.
    • Logged packets will be output to your terminal, written to a file in the logs directory, and (if configured) uploaded to APRS-IS.

Release Notes

  • 5/31/2020 (v5.0)
    • Thank you to everyone who contributed bug reports, enhancements, and pull requests!
    • Support for squelch level and PPM error configuration options.
    • SIGINT is now properly handled, exiting subprocesses before terminating main thread.
    • If configured with latitude and longitude, will transmit an IGate beacon to APRS-IS every X minutes (defaulted to 10, configurable).
    • CLI packet handler has been moved to its own processor class.
    • New readme logo.
  • 5/6/2020 (v4.1)
    • Simple flat file environment variable support via python-dotenv.
  • 11/17/2019 (v4.0)
    • All new tabular CLI UI for packet output.
    • Can now be configured to have N processors.
    • Configuration format improvements.
    • New dependencies, be sure to pip install -r requirements.txt.
    • Resolves bug #11 where an rtl_fm startup crash was not being detected, causing excessive CPU usage.

Contributing

You are welcome to contribute by submitting pull requests on GitHub if you would like. Feature / enhancement requests may be submitted via GitHub issues.

Credits

  • Inspired by the excellent pymultimonaprs project. I more or less learned basic Python threading by studying their work. Huge thanks to them!
  • Utilizes aprs-python for parsing decoded packets, uploading to APRS-IS. None of this would be possible without this library.
  • Radio tower icon found in the logo courtesy of The Noun Project.
  • [ ~ Dependencies scanned by PyUp.io ~ ]

About

Modular APRS Rx IGate framework for RTL-SDR devices.

https://pypacket.app

License:GNU General Public License v3.0


Languages

Language:Python 99.8%Language:Shell 0.2%