Skip to content

Hardware Setup

TL;DR

A mmWave radar I/Q data collection system consists of two parts:

  1. A radar with a Low Voltage Differential Signaling (LVDS) debug port which dumps out raw data, and
  2. A capture card which translates these LVDS signals into ethernet packets.

To use these components with our radar and capture interfaces, the radar needs to be flashed with firmware with LVDS streaming enabled, while the capture cards need to be configured to read the output signals.

DCA1000EVM Capture Card

ESD Sensitive

In our experience, the DCA1000EVM is particularly fragile; be careful with electrostatic discharge (ESD).

DCA1000EVM

Ensure that the following DIP switches are set:

  • SW2.5: SW_CONFIG
  • SW2.6: USER_SW1 (the marked right side), unless the EEPROM is messed up from a misconfigured configure_eeprom call.

The DC_JACK_5V_IN (the large switch on the side) should also be set, depending on whether the FPGA will be powered via the DC jack or via the radar.

Hardware Configuration Switches (Optional)

The following are configured by configure_fpga under normal operation, but can be manually set in case that isn't working:

  • SW1: 16-bit mode (16BIT_ON, 14BIT_OFF, 12BIT_OFF).
  • SW2.1: LVDS_CAPTURE
  • SW2.2: ETH_STREAM
  • SW2.3: AR1642_MODE (2-lane LVDS)
  • SW2.4: RAW_MODE
  • SW2.5: HW_CONFIG

AWR1843Boost

Firmware

After installing the mmWave SDK, the firmware can be found at demo/xwr18xx/mmwave/xwr18xx_mmw_demo.bin in the install directory.

Tip

Setting the large power switch on the DCA1000EVM to RADAR_5V_IN, a single power supply connected to the radar is sufficient to power the entire system.

AWR1843Boost

AWR1843Boost Inset

  1. Prepare for flashing.

    • Connect a micro-USB cable to the port on the radar, and power the radar on by connecting its power supply.
    • Find SOP2:0 (DIP switches on the front of the radar). Set the switches to SOP2:0=101, where 1 corresponds to the "on" position labeled on the PCB.
    • Find switch S2 in the middle of the radar, and set it to SPI (lower position).
  2. Flash using TI UniFlash.

    Note

    UniFlash seems to work most reliably on windows.

    • Uniflash should automatically discover the radar. If not, select the AWR1843Boost device.
    • Select the xwr18xx_mmw_demo.bin image to flash.
    • Choose the serial port corresponding to the radar; the serial port should have a name/description XDS110 Class Application/User UART.
    • Flashing should take around 1 minute, and terminate with "Program Load completed successfully".
    Not able to connect to serial port. Recheck COM port selected and/or permissions.

    If the SOP switches or S2 are not in the correct position, flashing will fail with

    Not able to connect to serial port.
    Recheck COM port selected and/or permissions.
    

  3. Set the radar to functional mode: SOP2:0=001.

    Note

    mmWave studio expects the radar to be in debug mode (SOP2:0=011), so switching between xwr and mmWave Studio requires the position of the SOP switches to be changed. This is also why mmWave studio requires the MSS firmware to be "re-flashed" whenever the radar is rebooted.

AWR1843AOP

Firmware

After installing the mmWave SDK, the firmware can be found at demo/xwr18xx/mmwave/xwr18xx_mmw_aop_demo.bin in the install directory.

SICP2105 drivers must be installed to flash the radar.

As per the AWR1843AOPEVM user manual, the SICP2105 drivers must be installed to access the UART port during the flashing process.

If these drivers are not (properly) installed, the serial ports will appear as an "Enhanced Com Port" and "Standard Com Port" with a warning icon in the windows device manager.

Download and install the drivers here: after downloading, go to

device manager > Standard / Enhanced Com Port > Update Drivers > Browse my computer for drivers
then select the folder containing the drivers you downloaded. You may need to do this twice: once for the "Enhanced Com Port", and once for the "Standard Com Port".

AWR1843AOPEVM

AWR1843AOPEVM Inset

  1. Prepare the radar for flashing.

    • Connect a micro-USB cable to the port on the radar. The additional power supply is not needed for this step.
    • Find SOP0, SOP, SOP2. SOP2 is all the way on the left, while SOP0 and SOP1 are on the right-most block of 4 switches.
    • Set SOP2:0=001. In both cases, on (1) is up.
    Switch Positions
    1 2 3 4
    S1 any any OFF OFF
    S2 any any any any
    S3 ON
  2. Flash using TI UniFlash.

    Warning

    Make sure the DCA1000EVM capture card, if connected, is not powered on. If the capture card is powered, flashing will fail with Received Unexpected Data.

    • Select the AWR1843 device.
    • Select the xwr18xx_mmw_aop_demo.bin image to flash.
    • Choose the serial port corresponding to the Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced.
  3. Set the radar to functional, DCA1000EVM mode.

    • DIP Switch 2 (center), position 2 should be on (up). All other switches should be off (down).
    Switch Positions
    1 2 3 4
    S1 OFF any OFF OFF
    S2 OFF ON any any
    S3 OFF

AWR1642Boost

Firmware

After installing the mmWave SDK, the firmware can be found at demo/xwr16xx/mmwave/xwr16xx_mmw_demo.bin in the install directory.

Tip

Setting the large power switch on the DCA1000EVM to RADAR_5V_IN, a single power supply connected to the radar is sufficient to power the entire system.

AWR1642Boost

  1. Prepare for flashing.

    • Connect a micro-USB cable to the port on the radar, and power the radar on by connecting its power supply.
    • Find SOP2:0, and short SOP0 and SOP2 (SOP2:0=101). These are physical jumpers, which must be shorted using jumper caps or wires.
  2. Flash using TI UniFlash.

    Note

    UniFlash seems to work most reliably on windows.

    • Uniflash should automatically discover the radar. If not, select the AWR1642Boost device.
    • Select the xwr16xx_mmw_demo.bin image to flash.
    • Choose the serial port corresponding to the radar; the serial port should have a name/description XDS110 Class Application/User UART.
    • Flashing should take around 1 minute, and terminate with "Program Load completed successfully".
    Not able to connect to serial port. Recheck COM port selected and/or permissions.

    If the SOP switches or S2 are not in the correct position, flashing will fail with

    Not able to connect to serial port.
    Recheck COM port selected and/or permissions.
    

  3. Set the radar to functional mode: SOP2:0=001.

AWR2944EVM

Firmware

After installing the mmWave MCU Plus SDK, you will need two firmware files:

  • mmwave_mcuplus_sdk_{version}/ti/demo/awr294x/mmw/awr2944_mmw_demoTDM.appimage: main application image.
  • mmwave_mcuplus_sdk_{version}/tools/awr294x/sbl_qspi.release.tiimage: bootloader image.

Warning

Flashing the AWR2944EVM requires two jumper caps or wires in order to physically short the required pins. One of these jumpers must remain on the board to set it to functional mode.

Requires External 12v Power

The AWR2944EVM requires external 12v power to operate, while the DCA1000EVM requires external 5v power.

Both power supplies have the same barrel jack size, and mixing them up will immediately destroy the DCA1000EVM.

Don't ask me how I know this!

We recommend labeling the power supplies at the barrel jack end, as well as connecting the radar power supply first (so that if the radar does not power on, you know that you've mixed them up).

  1. Prepare for flashing.

    • Plug in a USB cable to the XDS port (on the right side).
    • Find SOP2:0, and short SOP0 and SOP2 (SOP2:0=101). These are physical jumpers, which must be shorted using jumper caps or wires.
    • Power on the radar using external 12v power.
  2. Flash using TI UniFlash.

    Note

    UniFlash seems to work most reliably on windows.

    • Uniflash should automatically discover the radar. If not, select the AWR2944EVM device.
    • Select the awr2944_mmw_demoTDM.appimage and sbl_qspi.release.tiimage images to flash.
    • Choose the serial port corresponding to the radar; the serial port should have a name/description XDS110 Class Application/User UART.
    • Flashing should take around 1 minute, and terminate with "Program Load completed successfully".
    Not able to connect to serial port. Recheck COM port selected and/or permissions.

    If the SOP switches or S2 are not in the correct position, flashing will fail with

    Not able to connect to serial port.
    Recheck COM port selected and/or permissions.
    

  3. Switch the radar to functional mode.

    • Remove the jumper on SOP2, so only a jumper on SOP0 remains (SOP2:0=001).

AWRL6844EVM

Firmware

Install the MMWAVE-L-SDK. You can find the demo firmware at

examples/mmw_demo/mmwave_demo/prebuilt_binaries/xwrL684x-evm/mmwave_demo.release.appimage

  1. Prepare for flashing.

    • Plug in a USB cable to the XDS port (on the right side).
    • Follow this flashing guide:
      • Set the large "flashing mode" SOP switches to 00 (labeled "flashing mode" on the PCB).
      • Set the undocumented switches (S5) to OFF.
      • Set all S1 switches to off except S1.2, which should be on.
      • Set all S4 switches to off.
  2. Flash using TI UniFlash.

    • Select AWRL68XX as the device. This will not be detected automatically.
    • Select the mmwave_demo.release.appimage image to flash.
    • Choose the serial port corresponding to the radar; the serial port should have a name/description XDS110 Class Application/User UART.
    • Flashing should take around 1 minute, and terminate with "Program Load completed successfully".
  3. Switch the radar to functional mode.

    • Follow this flashing guide:
      • Set the large "flashing mode" SOP switches to 01 (labeled "functional mode" on the PCB).
      • Set the undocumented switches (S5) to OFF.
      • Set all S1 switches to off except S1.2, which should be on.
      • Set all S4 switches to off except S4.6, which should be on.

🏗 AWR2544LOPEVM

Not yet working

Warning

Flashing the AWR2544LOPEVM requires two jumper caps or wires in order to physically short the required pins. One of these jumpers must remain on the board to set it to functional mode.

  1. Prepare for flashing.

    • Plug in a USB cable to the XDS port (on the right side).
    • Find SOP2:0, and short SOP0 and SOP2 (SOP2:0=101). These are physical jumpers, which must be shorted using jumper caps or wires.
  2. Obtain firmware with LVDS streaming enabled, and flash using the provided command line tools.

    Bug

    Flashing using TI Uniflash does not work; you must use the python script.

    Build requirements for firmware compilation on linux
    1. Prerequisites. Note that the TI libraries require 32-bit compatibility mode for some reason.

      sudo dpkg --add-architecture i386
      sudo apt-get update
          sudo apt-get install -y libc6:i386 libstdc++6:i386 build-essential mono-complete
      

    2. Code Composer Studio (CCS)

      wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-J1VdearkvK/20.3.1/CCS_20.3.1.00005_linux.zip
      unzip CCS_20.3.1.00005_linux.zip
      cd CCS_20.3.1.00005_linux
      ./ccs_setup_20.3.1.00005.run
      

      • This installer requires GUI access
    3. MMWAVE MCUPLUS SDK

      wget https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-U4MY7aGNn5/04.07.00.01/mmwave_mcuplus_sdk_04_07_00_01-Linux-x86-Install.bin
      chmod +x mmwave_mcuplus_sdk_04_07_00_01-Linux-x86-Install.bin
      ./mmwave_mcuplus_sdk_04_07_00_01-Linux-x86-Install.bin
      

      • Accept all packages.
      • Keep all options default.
    4. SYSCONFIG

      wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.21.0.3721/sysconfig-1.21.0_3721-setup.run
      chmod +x sysconfig-1.21.0_3721-setup.run
      ./chmod +x sysconfig-1.21.0_3721-setup.run
      

      • Keep all options default, except Create Desktop Shortcut and Launch TI System Configuration Tool.
    5. ARM-CGT-CLANG

      wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-ayxs93eZNN/4.0.3.LTS/ti_cgt_armllvm_4.0.3.LTS_linux-x64_installer.bin
      chmod +x ti_cgt_armllvm_4.0.3.LTS_linux-x64_installer.bin
      ./ti_cgt_armllvm_4.0.3.LTS_linux-x64_installer.bin
      

      • Recommended: set the destination directory to /home/<username>/ti/cgt-armllvm_4.0.3.LTS.
    6. Set up environment.

      Modify ~/ti/mmwave_mcuplus_sdk_04_07_00_01/mmwave_mcuplus_sdk_04_07_00_01/scripts/unix/setenv.sh:

      ...
      # Change to /home/<username>/ti/ccs<version>
      export CCS_INSTALL_PATH=/opt/ti/ccs1281
      ...
      # Change to /home/<username>/ti/cgt-armllvm_4.0.3.LTS
      export R5F_CLANG_INSTALL_PATH=/opt/ti/sysconfig_1.21.0 
      ...
      # Change to match the version at /home/<username>/ti/ccs<version>/ccs/tools/compiler/ti-cgt-c6000_<version>.LTS
      export C66X_CODEGEN_INSTALL_PATH=${CCS_INSTALL_PATH}/ccs/tools/compiler/ti-cgt-c6000_8.3.12
      

    Compile firmware with LVDS streaming

    Edit ~/mmwave_mcuplus_sdk_04_07_00_01/mmwave_mcuplus_sdk_04_07_00_01/ti/demo/awr2544/mmw/mmw_main.c, and add #define LVDS_STREAM 1 before :

    /* Demo Include Files */
    #define LVDS_STREAM 1
    #include <ti/demo/awr2544/mmw/mmw_common.h>
    #include <ti/demo/utils/mmwdemo_rfparser.h>
    #include <ti/demo/utils/mmwdemo_flash.h>
    

    Then compile:

    cd ~/ti/mmwave_mcuplus_sdk_04_07_00_01/mmwave_mcuplus_sdk_04_07_00_01/scripts/unix
    source setenv.sh
    export MMWAVE_SDK_DEVICE=awr2544
    
    cd ~/ti/mmwave_mcuplus_sdk_04_07_00_01/mmwave_mcuplus_sdk_04_07_00_01/ti/demo/awr2544/mmw
    make clean
    make mmwDemoBuild
    

    • Make sure you have python installed, along with pyserial, xmodem, tqdm:

      pip install pyserial xmodem tqdm
      

    • Find the COM port corresponding to the XDS110 Class Application/User UART port.

    • Then, in C:\ti\mmwave_mcuplus_sdk_04_07_00_01\mmwave_mcuplus_sdk_04_07_00_01\tools\awr2544, run the following (replacing COM5 with the radar board's COM port):
      python C:\ti\mmwave_mcuplus_sdk_04_07_00_01\mcu_plus_sdk_awr2544_10_00_00_07\tools\boot\uart_uniflash.py -p COM5 --cfg default.cfg
      
  3. Switch the radar to functional mode.

    • Remove the jumper on SOP2, so only a jumper on SOP0 remains (SOP2:0=001).