ionosphere

command module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2022 License: MIT Imports: 13 Imported by: 0

README

Ionosphere Logo

Build Status Dependency Status GitHub

Receive, decode, log, upload APRS packets using low cost RTL-SDR devices.

This project is the next-generation successor to PyPacket with a number of enhancements and simplified cross-platform support. Please submit bug reports as you encounter them.

Release Notes

  • 11/19/2022 (1.0.3 release)
    • Removed type logging to temporarily work around a panic/subprocess hang.
  • 11/15/2022 (1.0.2 release)
    • Fixed an issue with config-supplied args for rtl_fm and multimon-sg.
    • Logging is now more verbose, including error output during the startup sequence for the underlying rtl_fm, multimon-ng processes.
  • 11/4/2022 (1.0.1 release)
    • Fixed an infinite loop when an unexpected APRS-IS connection drop occurs.
    • Fixed panic crashes caused when parsing packet type names.
  • 10/30/2022 🎃 (1.0.0 release)
    • Updated Golang version to latest.
    • Updated dependency packages to latest.
    • Added additional connection debugging for APRS-IS.
    • Fixed several APRS-IS protocol bugs.
    • Added APRS-IS digipeat output.
    • Documentation updates.
    • Fixed numerous small bugs.

Requirements

To run Ionosphere, the following are required.

If you're looking to set up Ionosphere on a Raspberry Pi from source, there's a helpful script here!

Usage

  • Make sure all software in the Requirements section is installed.
  • Ensure your RTL-SDR device is connected.
  • Download and extract the latest binary release for your OS.
  • Edit config/config.yml to match your needs.
    • If configured for automatic beaconing, you may edit the comment element to include a latitude, longitude, and symbol i.e. !DDMM.hhN/DDDMM.hhWIhttp://ionosphere.xyz RX IGate
    • You may find additional documentation on the APRS protocol and symbols useful for custom comment formats.
  • In a terminal, from the directory containing Ionosphere, run ./ionosphere.

Roadmap

  • Unit tests. Shameful there are none yet! :sadpanda:
  • Live map showing packets as they are received and uploaded.

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.

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.

License

MIT license, see LICENSE.md for more information.

Documentation

Overview

Package main creates subprocesses, a pipeline to pass stdout from RTL-SDR to stdin of multimon-ng. Then, stdout from multimon-ng is decoded and handled by packet handlers.

Directories

Path Synopsis
framework
beacon
Package beacon represents a single APRS beacon frame.
Package beacon represents a single APRS beacon frame.
marshaler
Package marshaler unmarshals packets from strings.
Package marshaler unmarshals packets from strings.
handlers
aprsis
Package aprsis is a packet handler for APRS-IS
Package aprsis is a packet handler for APRS-IS
stdout
Package stdout is a packet handler for stdout.
Package stdout is a packet handler for stdout.
Package interfaces contains all interface contracts.
Package interfaces contains all interface contracts.
services
aprsis
Package aprsis is a service for handling connections, uploads to APRS-IS.
Package aprsis is a service for handling connections, uploads to APRS-IS.
config
Package config is a service for handling configuration items.
Package config is a service for handling configuration items.
handler
Package handler is a service for interacting with handlers in bulk.
Package handler is a service for interacting with handlers in bulk.
log
Package log is a service to wrap multiple logger types.
Package log is a service to wrap multiple logger types.
packet
Package packet is a service for interacting with packets.
Package packet is a service for interacting with packets.
subprocesses
multimon
Package multimon represents a subprocess for multimon-ng.
Package multimon represents a subprocess for multimon-ng.
rtlfm
Package rtlfm represents a subprocess for rtl_fm.
Package rtlfm represents a subprocess for rtl_fm.
tasks
beacon
Package beacon allows for periodic beacons to be uploaded to APRS-IS.
Package beacon allows for periodic beacons to be uploaded to APRS-IS.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL