OFDM · BBP
Feature Roadmap · 2026
OFDM Baseband
Processor
Starting from the OpenWiFi openofdm_tx/rx 802.11a/g SISO PHY — 64-point FFT, MCS 0–7, convolutional K=7 FEC — evolving toward a configurable MIMO OFDM BBP with 2048-point FFT, 256-QAM, LDPC, and 2×2 MIMO comparable to the Noesis ntOFDM_MIMO_BBP.
Completion
Done In Progress Planned Future Not Started
P1 Stabilise P2 Extend P3 Diversity P4 MIMO P5 Advanced
Development Phases
Five-Phase
Evolution
Each phase builds on the last. No phase begins until the previous one is verified in hardware. Phase 1 must close all open bugs before any new feature work starts.
P1  Phase 1
Stabilise
Close every open issue in openofdm_tx/rx before touching anything else. Fix equaliser zeroing (#37) — the most critical bug, blocking MCS 5–7. Fix the cocotb simulation hang (#31) and TX/RX format mismatch (#35) that prevent reliable regression. Replace the Xilinx evaluation Viterbi core with open-source RTL so overnight runs no longer expire mid-test. Deliverable: full loopback passing all MCS 0–7 with no stalls, correct BER curves in AWGN, green CI on every commit.
P2  Phase 2
Extend
Parameterise the FFT/IFFT for 128 and 256-point (40 / 80 MHz staging). Add fractional and integer CFO estimation with per-symbol residual phase tracking — prerequisite for any modulation above 64-QAM. Upgrade the channel equaliser from ZF to MMSE. Build a floating-point MATLAB reference model for bit-true RTL comparison. Add configurable CP lengths (1/16 and 1/32 FFT size). Expose per-subcarrier SNR, per-pilot SNR, and fractional CFO as readable registers. Synthesise for Spartan-7 XC7S50 and verify loopback on hardware.
P3  Phase 3
Diversity
Add 256-QAM (MCS 8+), requiring the Phase 2 MMSE equaliser and tight CFO control. Make pilot density and positions register-programmable (10–50 % of FFT size, matching ntOFDM). Implement STBC Alamouti 2×1 TX diversity — two transmit antennas, one receive — which extends FPV link range by ~3 dB without increasing power. Add MRC 1×2 receive combining for the ground station. Implement PAPR mitigation (clipping and filtering baseline). Extend FFT to 512-point.
P4  Phase 4
MIMO
Full 2×2 spatial multiplexing MIMO: two independent TX/RX RF paths, MIMO-OFDM symbol assembly, MIMO channel estimation matrix, V-BLAST or MMSE-SIC detector. LDPC encoder and decoder — shorter latency than Viterbi at high code rate, required for 256-QAM link reliability. Double-buffered RF TX/RX paths for zero-gap burst operation. Extend FFT to 1024-point. Formal verification of the FFT and FEC modules.
P5  Phase 5
Advanced
Scale MIMO to 4×4 and optionally 8×8, matching the ntOFDM_MIMO_BBP maximum configuration. 2048-point FFT for narrowband channelisation. Turbo FEC as an alternative to LDPC for custom waveform modes. Beamforming weight computation via channel matrix SVD. MATLAB MEX bit-true model that matches RTL fixed-point widths exactly. Final characterisation, EVM, and sign-off at all target MCS and antenna configurations.
OpenOFDM Baseline · openofdm_tx/rx
Where We
Start
The openofdm_tx and openofdm_rx IPs from the OpenWiFi project implement an 802.11a/g SISO PHY. This is the starting point — every enhancement in the roadmap builds on top of these two modules.
Open Bugs — Must Close Before Phase 2
Issue Description Severity Status
#37
Equaliser zeroing subcarriers
ZF equaliser outputs zero for certain subcarrier indices — MCS 5–7 are unusable
Critical In Progress
#31
Cocotb simulation hang
Testbench stalls on specific packet lengths, blocking automated regression runs
High In Progress
#35
TX/RX OFDM format mismatch
TX IQ framing not aligned with RX expected window — loopback fails on some configurations
High In Progress
Viterbi eval licence timeout
Xilinx evaluation Viterbi core expires after several hours — blocks overnight regression
High In Progress