Skip to content

OffGridComm is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.

License

Notifications You must be signed in to change notification settings

GeorgeCottrell/OffGridComm

Repository files navigation

# OffGridComm

**OffGridComm** is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.

---

## 🎯 Purpose

OffGridComm enables licensed amateur radio operators to:

* Send and receive direct or group messages
* Participate in Usenet-style interest-based discussion boards
* Relay messages node-to-node using amateur radio frequencies (no internet required)
* Operate with a clean, ANSI-art capable text-based interface (TUI)
* Ensure message authenticity through callsign-based identity
* Support mouse and keyboard navigation via modern terminal emulators (e.g. PuTTY, SyncTERM)

---

## 🔐 Legal Compliance

OffGridComm is designed in full alignment with **FCC Part 97** regulations:

* No encryption is used
* All messages are tied to valid amateur radio callsigns
* All content is non-commercial
* Supports only licensed operators as authenticated users

---

## 🚧 MVP (Minimum Viable Product)

### ✅ Phase 1 Goals:

* [ ] TUI interface with ANSI display and mouse/keyboard navigation
* [ ] Callsign-based login and identity system
* [ ] Message composition, viewing, and local storage
* [ ] Group message board system (like Usenet)
* [ ] RF packet exchange between nodes (via AX.25 or other modes)
* [ ] Local deduplication and message propagation system
* [ ] Static offline callsign database verification

### 🔜 Phase 2 Goals:

* [ ] Internet-connected nodes can fetch up-to-date callsign databases
* [ ] Online nodes compress and sign these updates
* [ ] Offline nodes receive updates via RF from trusted peers
* [ ] Support international callsign data via modular country-specific importers
* [ ] RF-safe distribution of additional resources (weather, bulletins, software updates)

---

## 🧱 Architecture Overview

OffGridComm provides **two user interfaces** built on the same backend system:

* **ANSI Terminal Interface (TUI)**: For classic BBS-style navigation via terminal clients (PuTTY, SyncTERM)
* **Built-in Web Server**: Offers a retro-themed browser-based interface inspired by AOL and CompuServe

Both interfaces share the same core logic and data store, ensuring:

* Seamless access to messages and boards regardless of client
* Consistent authentication and identity tracking
* Unified user experience whether connecting via RF terminal or local browser

Each **OffGridComm Node** includes:

* TUI frontend with ANSI support (`ratatui`)
* Message system (direct, group)
* Identity/auth engine (callsign + password)
* RF interface layer (Direwolf, soundmodem, etc.)
* Node sync protocol (custom, store-and-forward)
* Optional internet module to fetch and rebroadcast trusted data updates

The built-in web server also supports **initial configuration mode**, allowing operators to:

* Set their callsign, location, and license details
* Detect and configure connected RF hardware
* Review logs and monitor synchronization status
* Manage local storage and network preferences

This configuration mode is accessible from a local browser (e.g., via `http://192.168.0.1:8080`) and optionally supports **embedded PHP pages** served by the built-in file handler for users familiar with that environment.

> Future versions will support automated scheduling, message compression, and regional relays.

---

## 🛠️ Built With

* Rust 🦠 (core logic + TUI)
* `ratatui`, `crossterm`, and `tui-input` (terminal UI)
* `serde`, `serde_json`, `ron`, and `toml` (serialization and config)
* `sqlx` and `rusqlite` (SQLite database support)
* `tokio`, `axum`, `tower`, `hyper`, and `tokio-tungstenite` (async runtime and web stack)
* `argon2`, `blake3`, `uuid`, and `rand` (crypto and identity)
* `flate2`, `lz4_flex`, and `zstd` (compression)
* `reqwest` and `dotenvy` (HTTP and environment handling)
* `serialport` and `ax25` (RF transport, serial interface)
* `tracing`, `anyhow`, and `thiserror` (logging and error handling)

---

## 📡 Supported Transmission Modes

OffGridComm is designed to be transport-agnostic. Supported RF communication modes include:

* **AX.25 (1200/9600 baud)** — Reliable and open
* **VARA FM** (optional) — Fast, soundcard-based modem up to 25 kbps
* **JS8Call / FreeDV / FT8** (planned) — Ultra-low-bandwidth for extreme conditions
* **Microwave Mesh (HamWAN / AREDN)** — High-speed regional links

> Note: VARA FM is proprietary software and requires a license for full-speed operation.

### 🔁 Multi-Mode Interoperability

Nodes can operate multiple transmission modes in parallel, depending on available hardware and configuration:

* A single node can send and receive via **AX.25**, **VARA FM**, and other modes simultaneously
* Messages can be routed intelligently based on bandwidth, reliability, or intended recipients
* Broadcasts may be sent redundantly over multiple modes to maximize reach

This architecture allows interoperability between modern and legacy packet systems while enabling performance scaling across a diverse RF environment.

### 🔊 What About Voice Communication?

While OffGridComm is designed primarily for asynchronous text-based messaging, higher-quality **two-way audio communication** is under consideration for supported modes:

* **VARA FM (full license)** and **FreeDV** offer potential for intelligible low-rate voice
* Quality will depend on mode, SNR, and hardware setup

Planned voice support:

* Push-to-talk style audio exchange
* Optional voice mail-style asynchronous clips
* ID tagging and callsign framing for FCC compliance

These will be opt-in features for compatible nodes with voice-capable configurations.

---

## 🔄 Callsign Verification Strategy

OffGridComm uses a hybrid approach:

* A static snapshot of a public callsign database (FCC or other)
* Optional self-attestation or license submission during setup
* Optional download of updated databases by internet-connected nodes
* Propagation of updates over RF using signed and timestamped update packages

This ensures:

* Fully offline verification capability
* Legal operator compliance
* Prevents impersonation or rogue node behavior

International support is provided via modular importers for country-specific licensing databases.

---

## 🔏 Password Handling and FCC Compliance

OffGridComm does not transmit or share passwords over RF. All passwords are:

* Used only for **local login authentication**
* Stored securely on-device using modern password hashing (e.g., Argon2)
* Never transmitted, encrypted or otherwise, in compliance with FCC Part 97

Operator identity over the network is established via:

* Publicly visible callsigns
* Optional node-origin signatures (plaintext verifiable)

This design ensures both user accountability and regulatory compliance without compromising privacy or system integrity.

---

## ⚠️ Legal Notice

You must be a **licensed amateur radio operator** to use OffGridComm over RF bands. Unauthorized or encrypted use over amateur frequencies is **prohibited** and may violate local or national laws.

---

## 📜 License

This project is licensed under the [MIT License](LICENSE), unless otherwise stated.

---

## 🤝 Contributions

Pull requests, feature proposals, and bug reports are welcome — especially from licensed hams, emergency radio operators, and radio hackers.

---

## 📱 Stay Tuned

OffGridComm is in active development. Future versions will support:

* Automated propagation scheduling
* RF beaconing and mesh discovery
* Custom protocol modes for extreme QRP conditions
* Print/PDF field deployment guides

Join the wave of resilient, decentralized communication.

About

OffGridComm is a decentralized, low-bandwidth communications platform built for ham radio frequencies. Inspired by classic BBS systems and modern mesh networks, it is designed for asynchronous, legally compliant communication in offline and grid-down environments.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published