Light Logo Dark Logo

ERNI

OPT-OUT

Brussels 2026

ESP-NOW Reticulum Network Interface

Managed Flooding 500-MTU Reassembly FNV-1a Dedup KISS Compliant 921600 Baud

00. Download - Install

ESP32 Hardware Compatibility:

  • 100% Variant Agnostic: Native ESP-NOW architecture enables ERNI to run cleanly on all chips (ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6).

Get the latest release directly from GitHub:

Download Last Release

Flash the ERNI_Alpha.ino direct to any generic ESP32 mapping the serial port cleanly.

01. Fragment Bridging

THE ESP-NOW BOTTLENECK

Reticulum networks are heavily optimized for long-range, encrypted meshing with a standard 500-byte MTU frame. However, raw ESP-NOW (`802.11` WiFi Action Frames) maxes out around 250 bytes.

THE ERNI ENGINE

When the PC attempts to inject a 500-byte MTU, ERNI intelligently chops the buffer into twin fragments, attaching a microscopic [PacketID][Sequence] ESP-NOW header to track and reassemble them seamlessly on the distant node. A brief inter-fragment pacing delay ensures receivers process each chunk cleanly, even on noisy channels. The reassembly engine tracks sender identity to prevent fragment interleaving from multiple simultaneous transmitters.

02. Auto-Deduplication & Flooding

EVERY NODE IS A REPEATER

If you leave a battery-powered ERNI node in the woods, it natively bridges network gaps extending your hardware horizon.

However, mesh echoing quickly triggers looping broadcast storms. To prevent this, ERNI runs the FNV-1a 32-bit hash algorithm on every packet and checks it against a fixed-size circular cache with O(1) insertion and zero heap allocations.

When it overhears an incoming radio frame, it consults the hash cache. New pack? Queue it for re-broadcast from the main loop. Duplicate pack? Drop it instantly. Rebroadcasts are queued and dispatched safely from the main task context, avoiding reentrancy issues inside the ESP-NOW callback.

03. v1.1 Improvements

FNV-1a HASHING

Industry-standard 32-bit hash with superior avalanche properties. Dramatically fewer collisions than the previous polynomial hash, reducing silent packet drops in busy mesh environments.

SAFE REBROADCAST

Packets are queued in a lock-free ring buffer and transmitted from the main loop() context. Eliminates timing and reentrancy risks from sending inside ESP-NOW callbacks.

KISS COMPLIANCE

Full KISS TNC specification compliance with the standard 0x00 command byte. The RX path correctly strips this byte when reading from Reticulum's SerialInterface.

04. RNS Configuration

Connect your PC to the ERNI bridge via USB and configure `/etc/reticulum/config`:

[[ERNI_Mesh]]
  type = SerialInterface
  interface_enabled = True
  outgoing = True
  port = /dev/ttyUSB0
  speed = 921600
  databits = 8
  parity = none
  stopbits = 1

Make absolutely sure you define the speed as `921600` otherwise the Reticulum stack will fail to decrypt the KISS boundaries effectively.