FRND — Field Relay Neighboring Datapoints
A peer-to-peer emergency communication network that works when traditional infrastructure fails.
Overview
FRND is an emergency communication system designed to connect stranded individuals with rescue teams when cellular service is unavailable. Using a swarm of drone-deployed Raspberry Pi nodes forming a mesh WiFi network, combined with an AI-powered Arduino UNO Q, FRND enables real-time, intelligent communication at the edge — no internet required.
The Problem
In military operations or disaster scenarios — wildfires, earthquakes, floods — cellular infrastructure is often the first thing to go. Victims have no way to reach emergency services, and rescue teams have no way to coordinate. FRND solves this by creating a self-contained communication network that can be deployed from the air, anywhere.
How It Works
Mesh Network
Each Raspberry Pi node uses the Linux Network Manager (nmcli) to operate as a WiFi access point, forming a multi-nodal mesh network from the ground up — no external routers needed. Drones deploy these nodes into disaster zones, creating coverage where none exists.
Communication Layer
WebSocket-based messaging (built with Python's websockets and asyncio libraries) handles real-time communication between:
- Victims — connecting via any WiFi-enabled device
- Rescue teams — monitoring and responding through a dedicated interface
- The AI node — an Arduino UNO Q providing intelligent, automated support
Concurrent multi-client communication is supported, allowing multiple victims and responders to communicate simultaneously.
Edge AI
The Arduino UNO Q runs a local LLM entirely on-device using yzma (a Go wrapper for llama.cpp). This means:
- No cloud connectivity required — inference runs on the board's ARM processor
- Auto-responses to victim messages when rescue teams are overwhelmed
- Urgency detection to alert rescue teams to critical situations
- Structured information gathering — injuries, location, number of people
Repository Structure
FRND/
├── emergency-terminal/ # Rescue team interface
├── frnd-terminal/ # Victim-facing communication interface
└── mesh-network/ # Raspberry Pi mesh network setup
Tech Stack
| Component | Technology |
|---|---|
| Mesh Network | Raspberry Pi + nmcli |
| Communication | Python WebSockets + asyncio |
| Edge AI | Arduino UNO Q + yzma + llama.cpp |
| LLM Model | SmolLM2-135M-Instruct (quantized GGUF) |
| Frontend | JavaScript / HTML / CSS |
Hardware
- Arduino UNO Q (4GB or 2GB) — AI inference node
- Raspberry Pi (multiple) — mesh network nodes
- Drone — for aerial deployment of network nodes
Getting Started
Mesh Network Setup
cd mesh-network
# Follow setup instructions for Raspberry Pi access point configuration
Running the AI Node (Arduino UNO Q)
# Install Go and yzma
sudo apt install golang
go install github.com/hybridgroup/yzma/cmd/yzma@v1.9.0
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc && source ~/.bashrc
# Install llama.cpp libraries
export YZMA_LIB=/home/arduino/FRND/yzma/lib
yzma install -u --processor cpu --os trixie
# Download model
yzma model get -u https://huggingface.co/bartowski/SmolLM2-135M-Instruct-GGUF/resolve/main/SmolLM2-135M-Instruct-Q4_K_M.gguf
# Run
cd /home/arduino/FRND/yzma
go run ./examples/chat/ -model ~/models/SmolLM2-135M-Instruct-Q4_K_M.gguf -lib ./lib/ -v
Running the WebSocket Server
cd mesh-network
python3 server.py
Why FRND?
Traditional emergency communication breaks down exactly when it's needed most. FRND is built on the principle that every node in the network should be capable of independent, intelligent operation. Even the smallest node — the Arduino UNO Q — carries enough AI capability to guide a victim through a crisis without any external support.
FRND doesn't wait for infrastructure to be restored. It brings the infrastructure with it.

Log in or sign up for Devpost to join the conversation.