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.
- 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
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
# 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 0x00000042See docs/ for design rationale.