Skip to content

xwr: Linux-Based Real-Time Raw Data Capture for TI mmWave Radars

AWR1642Boost DCA1000EVM AWR1843Boost

pypi version PyPI - Python Version License - MIT PyPI - Types bear-ified CI GitHub issues

xwr is a pure-python, linux-based real time raw data capture system for TI mmWave radars, and includes four key components:

  • xwr: a high-level data capture interface
  • xwr.rsp: a radar signal processing library with Numpy, Pytorch, and Jax support
  • xwr.radar: a parameterized python interface for the default radar firmware
  • xwr.capture: a pure-python, real-time interface for the DCA1000EVM

Fully Typed

xwr is type-annotated where possible1, and has runtime type checking enabled via beartype.

Requirements

xwr assumes a linux-based system and radar hardware which consists of the DCA1000EVM and a supported TI mmWave Radar (XWR) development board.

Tip

This list of supported radars is expanding, and we may add support for additional radars in the future! Feel free to leave an issue if you have a specific request.

Install

The xwr library can be installed from pypi or github:

pip install xwr
# or, for the bleeding-edge version:
pip install git+ssh://github.com/RadarML/xwr.git
git clone git@github.com:RadarML/xwr.git
pip install -e ./xwr
git clone git@github.com:RadarML/xwr.git
cd xwr; uv sync --all-extras --frozen
[project]
dependencies = ["xwr"]

[tool.uv.sources]
xwr = { git = "ssh://git@github.com/RadarML/xwr.git" }

See the user guide and hardware setup for instructions on how to configure and use xwr.

Warning

xwr does not include a copy of torch or jax by default! You must specify your own dependency and/or use the xwr[torch] and xwr[jax] extras if you intend to use these backends for the radar signal processing (xwr.rsp) submodule.

See Also

  • abstract_dataloader


    abstract interface for composable dataloaders and preprocessing pipelines

  • 🎯 dart


    our prior work, DART: Implicit Doppler Tomography for Radar Novel View Synthesis

  • rover


    our previous data collection platform for radar time signal


  1. You can check the type-completeness of xwr with pyright ./src --verifytypes xwr --ignoreexternal; the vast majority of remaining untyped (partially typed) code comes from numerical arrays, which currently cannot be statically type checked, beyond verifying their backend (e.g., np.ndarray, torch.Tensor, or jax.Array). As of time of writing, xwr nevertheless has a 90.6% type completeness score!