SDR MANET Reference
Open-Source SDR · Field Reference

High-Speed SDR MANETs
on OpenWiFi + BATMAN-adv

The complete technical reference for turning Zynq FPGA-based software-defined radio hardware into a field-deployable, self-healing mesh network — architecture, exact configuration commands, and real throughput numbers.

FPGA PlatformZynq-7020 / PlutoSky R2
RF Front EndAD9363 (unlockable to AD9361)
Mesh LayerBATMAN-adv (batman-adv.ko)
Measured Throughput80–110 Mbps sustained
▶ Watch the companion video walkthrough
00 · Executive Summary

Three ideas that explain the whole system

Everything below expands on these three architectural decisions — understand these and the rest of the document is detail.

Complete stack

Open-source, top to bottom

OpenWiFi handles hardware-accelerated baseband; BATMAN-adv handles kernel-level mesh routing. Together they turn SDR hardware into a field-deployable MANET router with no closed-source components.

Low latency

Baseband lives in the FPGA

MAC/PHY timing executes inside the FPGA fabric at ~10µs SIFS, leaving the Zynq's ARM cores free to run Linux, mesh routing daemons, and applications simultaneously.

Zero config clients

Transparent bridging

PCs on Gigabit Ethernet, phones on USB-C LAN — every local device inherits multi-hop mesh routing automatically. No custom client software, ever.

01 · System Design

Component mapping across the OSI stack

Each layer of the network stack is handled by a distinct, purpose-built component — from IP applications down to RF direct conversion.

L3+ / App-IP
Linux Kernel (br0 / IP) Video, voice, Reticulum, ATAK
L2 / Routing
BATMAN-adv (bat0) Dynamic multi-hop routing
Lower L2 / MAC
OpenWiFi Linux Driver mac80211 API & sdrctl glue
L1 / Baseband
Zynq-7020 FPGA Fabric OFDM PHY, CSMA/CA, 2x2 MIMO
Physical RF
AD9363 (Unlocked, 40 MHz) RF direct conversion & I/Q

The FPGA fabric absorbs all timing-critical baseband work, so the ARM cores stay free to run BATMAN-adv, video, and mesh applications at the same time — this is the architectural decision that makes the rest of the system possible.

02 · Core Architecture

OpenWiFi vs. BATMAN-adv

Both are open-source, but they solve completely different problems at completely different layers.

DimensionOpenWiFiBATMAN-adv
LayerLayer 1 + lower Layer 2Layer 2 (data link)
Hardware dependencyRequires Zynq FPGA + AD9361/AD9363Any standard Linux device, any network port
Packet handlingRF symbol framing, preamble detection, CSMA/CADynamic global MAC address lookup table
Frequency awarenessDirectly dictates center frequency & channel widthEntirely radio-agnostic
Linux representationStandard mac80211 interface (wlan0 / sdr0)Kernel module (batman-adv.ko), bat0 interface

In short: OpenWiFi gets the bits onto the air. BATMAN-adv decides where those bits should go next. Combining them layers a self-healing mesh on top of a hardware-accelerated radio.

03 · Deployment Strategy

When & why to combine them on Zynq platforms

Layering BATMAN-adv on top of OpenWiFi provides tactical advantages that OpenWiFi's native 802.11s mesh mode cannot offer alone.

Scenario 01

Heterogeneous hardware networks

Situation: OpenWiFi SDR nodes, standard Wi-Fi APs, and wired Ethernet links coexist.

Advantage: BATMAN-adv bridges the RF interface (sdr0) with Gigabit Ethernet (eth0) and USB-C LAN (usb0) into one unified Layer-2 switch.

Scenario 02

Fast-moving tactical MANETs

Situation: High mobility (drones, mobile units) causes rapid RF signal fluctuation.

Advantage: BATMAN-adv's Transmit Quality (TQ) algorithm updates route tables instantly, preventing drops during movement.

Scenario 03

Multi-radio channel diversity

Situation: A high-speed 5 GHz OpenWiFi link runs alongside a long-range sub-GHz LoRa/FSK backup.

Advantage: BATMAN-adv routes across both simultaneously, falling back to the long-range link if the fast link degrades.

04 · RF Front End

Unlocking the AD9363 transceiver

The AD9363 found on boards like the PlutoSky R2 (Zynq-7020) is physically identical to the higher-end AD9361, but factory-restricted via software register settings.

RF Tuning Range
Locked (AD9363)
325 MHz – 3.8 GHz
Unlocked (AD9361 mode)
70 MHz – 6.0 GHz
Max Channel Bandwidth
Locked (AD9363)
20 MHz
Unlocked (AD9361 mode)
40 MHz
Usable Bands
Locked (AD9363)
Restricted subset
Unlocked (AD9361 mode)
433M / 868M / 915M / 2.4G / 5.8G

Unlocking enables 40 MHz channel operation required for dual spatial streams, opens all major ISM/license bands, and allows fine-grained gain-table and baseband-filter tuning. See the Regulatory Notes section before transmitting outside your region's authorized bands and power limits.

Unlock commands (Linux / U-Boot)

U-Boot environment variables persist across reboot and select the AD9361 driver profile at next boot.

unlock_ad9361.sh
# Set environment variables in U-Boot or via fw_setenv in Linux
fw_setenv attr_name ad9361
fw_setenv attr_val ad9361

# Reboot the system to initialize the updated driver parameters
reboot

# Verify driver initialization
cat /sys/bus/iio/devices/iio:device0/name
# Expected output: ad9361-phy
05 · Hardware Platform & Performance

Maximizing throughput: 40 MHz & 2x2 MIMO

The PlutoSky R2 pairs a Xilinx Zynq XC7Z020 FPGA with dual RF transceivers (2TX / 2RX SMA). Configuring 2x2 MIMO over a 40 MHz channel doubles spatial streams.

PHY rate vs. real-world net throughput (Mbps)
30
1x1 @20MHz
net TCP
65
1x1 @20MHz
PHY (MCS7)
95
2x2 @40MHz
real-world net
300
2x2 @40MHz
PHY (MCS15)
80–110 Mbps sustained UDP/TCP throughput
Over Gigabit Ethernet, real-world net output, when SNR is maintained at ≥25 dB
06 · Complete Step-by-Step Configuration

The full configuration pipeline

Three stages: bring up the radio, bring up the mesh, verify the link. Run these in order on every node.

1

OpenWiFi high-speed driver initialization

Reconfigures sdr0 for 802.11n HT40 (40 MHz) operation with dual-stream MCS rates before joining the mesh.

01_openwifi_init.sh
# Bring down interface to reconfigure baseband parameters
ip link set dev sdr0 down

# Configure sdr0 for 802.11n, HT40 (40 MHz) with dual-stream MCS rates (8-15)
iw dev sdr0 set bitrates ht-mcs-2.4 8 9 10 11 12 13 14 15
iw dev sdr0 set channel 36 HT40+

# Enable Ad-Hoc mode and bring interface up
iw dev sdr0 set type ibss
ip link set dev sdr0 up

# Join high-speed SDR mesh network
iw dev sdr0 ibss join HIGH_SPEED_MANET 5180 HT40
2

BATMAN-adv kernel module & bridge integration

Loads batman-adv, attaches the RF adapter, and bridges it with local Ethernet and USB-C LAN into one unified network.

02_batman_bridge.sh
# Load kernel module
modprobe batman-adv

# Add OpenWiFi RF adapter to BATMAN-adv routing engine
batctl if add sdr0
ip link set dev sdr0 up
ip link set dev bat0 up

# Create local network bridge connecting local physical interfaces
ip link add name br0 type bridge
ip link set dev eth0 master br0
ip link set dev usb0 master br0
ip link set dev bat0 master br0
ip link set dev br0 up

# Assign node IP address on unified bridge interface
ip addr add 10.0.0.1/24 dev br0
3

Verification & performance diagnostics

Confirm neighbor discovery, then benchmark throughput between two nodes.

03_verify.sh
# 1. Verify BATMAN-adv neighbor discovery over RF
batctl n

# 2. Test throughput on receiver node
iperf3 -s

# 3. Test throughput on transmitter node
iperf3 -c 10.0.0.2 -u -b 100M
80–95 Mbps UDP throughput, low jitter
Expected benchmark result under clear line-of-sight conditions
08 · Reference

Glossary

Terms used throughout this document, defined plainly.

MANET
Mobile Ad-hoc Network — a decentralized network of nodes that self-organize and self-heal without fixed infrastructure or a central router.
SDR
Software-Defined Radio — radio hardware whose modulation, filtering, and signal processing are implemented in software/firmware rather than fixed analog circuits.
OpenWiFi
An open-source, FPGA-based IEEE 802.11 Wi-Fi implementation that executes baseband processing inside the FPGA fabric and exposes a standard mac80211 interface to Linux.
BATMAN-adv
Better Approach To Mobile Ad-hoc Networking — a Linux kernel module implementing Layer 2 mesh routing, radio-agnostic and driven by link-quality metrics.
mac80211
The Linux kernel's generic 802.11 wireless stack, used by real and software-defined Wi-Fi drivers alike.
SIFS
Short Interframe Space — the brief, tightly-timed gap between frames in 802.11 that channel access timing depends on.
OFDM
Orthogonal Frequency-Division Multiplexing — the modulation scheme used by 802.11a/g/n/ac and most modern Wi-Fi/LTE systems.
CSMA/CA
Carrier-Sense Multiple Access with Collision Avoidance — the channel-access method Wi-Fi uses to avoid multiple radios transmitting simultaneously.
MIMO
Multiple-Input, Multiple-Output — using multiple antennas at both ends of a link to carry multiple simultaneous data streams (spatial streams).
HT40
High Throughput, 40 MHz — an 802.11n channel mode that bonds two adjacent 20 MHz channels for double the bandwidth.
MCS
Modulation and Coding Scheme — an index defining a specific combination of modulation type and coding rate; higher MCS = higher PHY rate, generally requiring better signal quality.
IIO
Industrial I/O — the Linux kernel subsystem used to interface with sensors and converters, including the AD9361/AD9363 RF transceivers.
IBSS / Ad-hoc mode
Independent Basic Service Set — a Wi-Fi operating mode where stations communicate directly, peer-to-peer, without an access point.
TQ (Transmit Quality)
BATMAN-adv's per-link quality metric, continuously recalculated to choose the best available route through the mesh.
09 · Reference

Frequently asked questions

No, unlocking is optional. OpenWiFi runs on the factory-restricted AD9363 within its default 20 MHz / narrower tuning range. Unlocking is only required if you need 40 MHz channels, 2x2 MIMO at full bandwidth, or access to bands outside the factory-set range.

At minimum: a Zynq-7020-class SDR board with an AD9361/AD9363 transceiver (such as a PlutoSky R2 or similar), a Linux environment with `iw`, `batctl`, and `iperf3` installed, and at least two nodes to form a mesh. A second node is required to test multi-hop routing and throughput.

Yes — that's exactly the heterogeneous-hardware scenario covered in this guide. Because BATMAN-adv operates at Layer 2 and is radio-agnostic, it can bridge an OpenWiFi RF interface with standard Wi-Fi and wired Ethernet links into a single mesh.

Commercial mesh systems (consumer routers, etc.) use closed firmware and typically route only at Layer 3 between fixed nodes. This stack is fully open-source, routes at Layer 2 so any device is bridged transparently, and is designed for mobile, ad-hoc deployment rather than fixed home installations.

Range depends heavily on frequency, antenna gain, terrain, and transmit power — this guide doesn't specify a fixed number because it varies too much by deployment. The throughput benchmarks here assume clear line-of-sight and ≥25 dB SNR; expect throughput to drop as range or obstruction increases.

Yes — the fast-moving tactical MANET scenario in this guide is specifically about high-mobility use cases like drones. BATMAN-adv's Transmit Quality algorithm is designed to re-route quickly as link quality changes with movement.

10 · Important

Regulatory notes

!

Unlocking RF hardware can change which frequencies, bandwidths, and power levels you are legally permitted to transmit on. Spectrum use is regulated by national authorities (e.g. the FCC in the United States, national telecom regulators elsewhere), and rules vary significantly by country, band, and license class.

Before transmitting outside the factory-configured range — including on any 433/868/915 MHz, 2.4 GHz, or 5.8 GHz band unlocked via the AD9361 mode described in this guide — confirm that your intended frequency, bandwidth, and transmit power are authorized for your location and license status. Some bands require an amateur radio license or are restricted to specific power levels and use cases.

This document is a technical reference only and does not constitute legal or regulatory advice. You are responsible for compliance with the spectrum regulations that apply to you.

11 · Further Reading

Resources & related projects

Primary sources and project homepages referenced throughout this guide.

OpenWiFi project
The open-source FPGA-based 802.11 baseband implementation this guide is built on.
github.com/open-sdr/openwifi
BATMAN-adv / open-mesh.org
Home of the B.A.T.M.A.N. protocol suite and the batman-adv kernel module.
open-mesh.org
Analog Devices AD9361 / AD9363
Manufacturer datasheets and reference documentation for the RF transceiver used in this guide.
analog.com
Xilinx Zynq-7000 documentation
Technical reference manuals for the Zynq-7020 SoC used on the PlutoSky R2 and similar boards.
xilinx.com
batctl documentation
Command-line reference for the BATMAN-adv control tool used in the verification steps above.
open-mesh.org/wiki