Hardware Setup¶
TL;DR
A mmWave radar I/Q data collection system consists of two parts:
- A radar with a Low Voltage Differential Signaling (LVDS) debug port which dumps out raw data, and
- 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).

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 misconfiguredconfigure_eepromcall.
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.


-
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 toSOP2:0=101, where 1 corresponds to the "on" position labeled on the PCB. - Find switch
S2in the middle of the radar, and set it toSPI(lower position).
-
Flash using TI UniFlash.
Note
UniFlash seems to work most reliably on windows.
- Uniflash should automatically discover the radar. If not, select the
AWR1843Boostdevice. - Select the
xwr18xx_mmw_demo.binimage 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".
- Uniflash should automatically discover the radar. If not, select the
-
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 betweenxwrand 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
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".

-
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.SOP2is all the way on the left, whileSOP0andSOP1are 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 -
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
AWR1843device. - Select the
xwr18xx_mmw_aop_demo.binimage to flash. - Choose the serial port corresponding to the
Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced.
- Select the
-
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.

-
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.
-
Flash using TI UniFlash.
Note
UniFlash seems to work most reliably on windows.
- Uniflash should automatically discover the radar. If not, select the
AWR1642Boostdevice. - Select the
xwr16xx_mmw_demo.binimage 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".
- Uniflash should automatically discover the radar. If not, select the
-
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).
-
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.
-
Flash using TI UniFlash.
Note
UniFlash seems to work most reliably on windows.
- Uniflash should automatically discover the radar. If not, select the
AWR2944EVMdevice. - Select the
awr2944_mmw_demoTDM.appimageandsbl_qspi.release.tiimageimages 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".
- Uniflash should automatically discover the radar. If not, select the
-
Switch the radar to functional mode.
- Remove the jumper on SOP2, so only a jumper on SOP0 remains (
SOP2:0=001).
- Remove the jumper on SOP2, so only a jumper on SOP0 remains (
AWRL6844EVM¶
Firmware
Install the MMWAVE-L-SDK. You can find the demo firmware at
-
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.
-
Flash using TI UniFlash.
- Select
AWRL68XXas the device. This will not be detected automatically. - Select the
mmwave_demo.release.appimageimage 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".
- Select
-
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.
- Follow this flashing guide:
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.
-
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.
-
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
-
Prerequisites. Note that the TI libraries require 32-bit compatibility mode for some reason.
-
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
-
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.
-
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 ShortcutandLaunch TI System Configuration Tool.
- Keep all options default, except
-
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.
- Recommended: set the destination directory to
-
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 1before :/* 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:
-
Make sure you have
pythoninstalled, along withpyserial,xmodem,tqdm: -
Find the COM port corresponding to the
XDS110 Class Application/User UARTport. - Then, in
C:\ti\mmwave_mcuplus_sdk_04_07_00_01\mmwave_mcuplus_sdk_04_07_00_01\tools\awr2544, run the following (replacingCOM5with the radar board's COM port):
-
-
Switch the radar to functional mode.
- Remove the jumper on SOP2, so only a jumper on SOP0 remains (
SOP2:0=001).
- Remove the jumper on SOP2, so only a jumper on SOP0 remains (