Welcome to Millimeter-wave Capture Standard (mmwave-capture-std)’s documentation!#

mmwave-capture-std is a fast, reliable, and replicable Texas Instruments millimeter-wave capture toolkit, focus on data capturing and raw data parsing.

It stands out with three key attributes:

  1. Fast: It parses raw data into np.ndarray[np.complex64] 2.09 times faster than state-of-the-art packages (0.593s v.s. 1.239s).

  2. Reliable: It makes users easily identify and debug hardware issues, and provides fine-grained control over different hardware. It achieves this by comprehensive logging (stderr & file) and by separating the hardware setup from the data capture code.

  3. Replicable: It simplifies the process of replicating the recording setup by using a toml config file to manage capture hardware, layout the dataset as HDF5-like structure, and provide sensor config files to each capture result.

Here is an example of using mmwave-capture-std to capture mmwave data from IWR1483BOOST and DCA1000EVM:

$ poetry run mmwavecapture-std examples/capture_iwr1843.toml
2023-06-02 :43.91 | INFO     | ...:...:225 - Capture ID: 0
2023-06-02 :43.91 | INFO     | ...:init_hw:230 - Initializing capture hardware `iwr1843`..
2023-06-02 :49.32 | SUCCESS  | ...:init_hw:245 - Capture hardware `iwr1843` initialized
2023-06-02 :49.32 | SUCCESS  | ...:init_hw:247 - Total of 1 capture hardware initialized
2023-06-02 :49.32 | INFO     | ...:capture:258 - Adding capture hardware `iwr1843`
2023-06-02 :49.32 | INFO     | ...:capture:121 - Preparing capture hardware
2023-06-02 :49.32 | INFO     | ...:capture:125 - Starting capture hardware
2023-06-02 :49.42 | SUCCESS  | ...:capture:128 - Capture started
2023-06-02 :52.49 | INFO     | ...:capture:132 - Capture finished
2023-06-02 :52.49 | INFO     | ...:capture:134 - Dumping capture hardware configurations
2023-06-02 :52.49 | SUCCESS  | ...:capture:270 - Capture finished, all files ...

Nice and easy! Your capture result will be stored like this with HDF5-like structure :

  mmwave-capture-std [main]  tree example_dataset
example_dataset
 └── capture_00000
     ├── capture.log
     ├── config.toml
     └── iwr1843
         ├── dca.json
         ├── dca.pcap
         └── radar.cfg

You probably will need to modify the configuration to reflect your capture hardware setup. Change the following setting in example/capture_iwr1843.toml to your setup: (assume you did not change any setting on DCA1000EVM EEPROM)

[hardware.iwr1843]
dca_eth_interface = "enp5s0"
radar_config_port = "/dev/ttyACM0"
radar_data_port = "/dev/ttyACM1"
capture_frames = 10

Where to start?#

First, setup your environment (hardware, software, and network): Setup.

Then, read our quickstart to get familiar with how mmwave-capture-std works: Quickstart.

Contribute#

Use the following snippet to setup your development environment:

git clone <repo-url>
cd mmwave-capture-std
poetry install # Prepare env and install deps
poetry run pre-commit install # Install pre-commit hooks

License#

This project is licensed under the BSD 3-Clause Clear License.

Indices and tables#