Skip to content

YemotaY/Altnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Altnet — LoRa Mesh Communication System

Decentralized, encrypted LoRa mesh for ESP12F (ESP8266) and Arduino-class MCUs with SX1276/78 radios. LoRaWAN-inspired but custom: peer-to-peer mesh, no central server required, optional WiFi gateway for visualization.

Status: scaffold / reference implementation. See docs/ROADMAP.md for milestone status.

Features

  • Hybrid mesh routing (proactive HELLO + reactive AODV-lite)
  • AES-128-CCM authenticated encryption, replay protection
  • Reliable unicast (ACK + retransmit), fragmentation, broadcast, group channels
  • CLI admin (serial + signed remote ADMIN_CMD)
  • Gateway → WiFi bridge with JSON API + minimal web dashboard
  • Intrusion detection: rate limiting, trust scoring, blacklist
  • Experimental low-bitrate voice (Codec2 on ESP, ADPCM on AVR)
  • RSSI-based localization helper
  • Sleep / duty-cycle aware

Repository Layout

altnet/
├── docs/                  Architecture, protocol, security, roadmap, testing
├── include/altnet/        Public headers (HAL interfaces, public API)
├── src/
│   ├── hal/               Platform HAL (esp8266/, avr/, host/)
│   ├── mac/               Link MAC (CSMA-CA, duty cycle, framing)
│   ├── net/               Mesh routing, transport, fragmentation
│   ├── security/          AES-CCM, KDF, replay, key store, IDS
│   ├── app/               Messaging, voice, CLI, telemetry, localization
│   └── util/              CRC, ringbuf, log, bloom
├── examples/
│   ├── arduino_node/      Minimal Arduino sketch
│   ├── esp_node/          ESP12F endpoint sketch
│   └── esp_gateway/       ESP12F gateway with WiFi dashboard
├── tools/
│   ├── dashboard/         Python websocket → browser dashboard
│   ├── provisioner/       Key/ID provisioning CLI
│   └── sim/               Host-side network simulator
├── tests/                 Host unit tests
├── platformio.ini
└── library.properties

Quick Start

# Host unit tests (no hardware)
make -C tests

# Build & flash an ESP12F endpoint with PlatformIO
pio run -e esp12e_node -t upload

# Provision a node (writes ID + keys to EEPROM/flash)
python3 tools/provisioner/provision.py --port /dev/ttyUSB0 --node-id 0x00000042

See docs/ for design rationale.

About

Decentralized, encrypted LoRa mesh for ESP12F (ESP8266) and Arduino-class MCUs with SX1276/78 radios. LoRaWAN-inspired but custom: peer-to-peer mesh, no central server required, optional WiFi gateway for visualization.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages