Skip to content

OpenISAC Overview

OpenISAC is an OFDM-based integrated sensing and communication platform for real-time over-the-air experiments. It is designed for researchers who want a compact PHY-level system that can be modified quickly, run on USRP hardware, and expose the sensing and communication paths clearly.

OpenISAC is not a Wi-Fi, LTE, or 5G NR stack. It does not target interoperability with commercial devices. Its value is the short path from an OFDM or ISAC idea to a hardware experiment.

  • Real-time OFDM communication and radar-style sensing on USRP devices.
  • BS-side monostatic sensing and UE-side bistatic sensing.
  • OTA timing support for distributed sensing experiments.
  • YAML-driven runtime configuration.
  • Python frontends for visualization, analysis, and configuration.
  • src/BS.cpp and src/UE.cpp are the C++ runtime entry points.
  • include/ contains shared DSP, runtime, and configuration types.
  • config/ contains YAML templates for supported hardware and simulation modes.
  • scripts/ contains visualization, control, config editing, and helper tools.
  • site/src/content/docs/ is the source of this documentation site.
  • docs/ contains published static site output and standalone repository notes.

Start with hardware setup and installation, then build the C++ runtime and prepare BS.yaml / UE.yaml. After the first OTA run, read the architecture and signal-processing sections to understand where to modify the pipeline.

GoalBackend programTypical configTypical frontend
Run the BS sideBSconfig/BS_X310.yaml or config/BS_B210.yamlplot_sensing_fast.py
Run the UE sideUEconfig/UE_X310.yaml or config/UE_B210.yamlplot_bi_sensing_fast.py
Run without USRPsChannelSimulator, BS, UEconfig/BS_Sim.yaml and config/UE_Sim.yamlSee Channel Simulator
Tune parameters from a browserscripts/config_web_editor.pyReads build/BS.yaml and build/UE.yamlBrowser at http://<host>:8765