Installing and Getting Started With Infineon's Radar SDK

About the Radar SDK

Infineon’s radar Software Development Kit (SDK) is an essential tool for working with any of the radar sensors in their XENSIV portfolio. At it’s heart is a C/C++ library which implements basic operations such as device configuration and control, output data retrieval and collection, and various signal processing algorithms (e.g., moving target indicator, range-Doppler map, digital beamformer). It also features implementations of more advanced algorithms including motion sensing, presence sensing, and object tracking.

For those who prefer to work in a higher-level language, Python and Matlab wrappers are also provided as part of the SDK. These additional abstraction layers grant access to the most basic functionality of the C/C++ library (i.e., device configuration and data retrieval), facilitating the development of more complex radar processing algorithms in scientific computing environments. Note that for each supported language, several example applications are included alongside the detailed documentation.

Unfortunately, this resource isn’t offered as a simple .zip archive for download on Infineon’s website. Instead, it is bundled with a collection of software which they refer to as the Radar Development Kit (RDK). Thus, to obtain access to the radar SDK, one must first download and install the RDK. This is a rather awkward process and even after completing the installation, it isn’t entirely clear where to find the SDK or how to use it. The below section attempts to alleviate this confusion by 1) walking you through the installation process and 2) pointing out the essential resources required for getting started with the SDK.

Infineon’s RDK includes the following software components:

  • The Radar SDK
  • The Radar Fusion GUI
  • The ifxdaq Data Acquisition Tool

Though this short tutorial is only concerned with the radar SDK, you may find that the other tools are just as valuable for your development purposes. I encourage you to check them out as well.

Supported Sensors

As a quick reference, the XENSIV sensors and development boards supported by the RDK are outlined below.

Installation

The following instructions outline how to install the most recent version of the RDK (i.e., version 3.6.5) on a machine running Windows. Before jumping into the procedure, however, just a quick note about operating systems. While the radar SDK is compatible with Windows, Linux, and macOS; you’ll notice in Step 1 that the only installation option for the RDK is for Windows. This is likely because the Radar Fusion GUI is only available for Windows, making the RDK as a whole incompatible with Linux and macOS. Therefore, if you wish to use the radar SDK on either Linux or macOS, the simplest option is to first install it on a Windows machine and then copy the SDK files (see Step 5 below) to your preferred environment.

  1. Follow the link to the download page for the RDK. There, you will find two installation options: Install via Launcher or Download. The Install via Launcher option is handy if you already have the Infineon Developer Center Launcher installed as it helps you manage the installation, updating, and removal of the package. Infineon’s other tools and software are also available through the launcher, making it a very useful utility if you do a lot of work with Infineon products. For this tutorial, though, we will be using the Download option and performing the install manually.

  2. Click on the Download link and open the .exe file once the download is complete (as illustrated in Figure 1). Note that you will have to be logged into your Infineon account in order to start the download.


Figure 1: Downloading the RDK installer from the download page and launching it.

  1. Upon executing the installer, you will immediately be presented with the window shown in Figure 2 prompting you to select the installation mode. The only difference between the two options is the default installation directory chosen by the installer. If you choose Install for me only, the suggested destination directory will be C:\Users\<user_name>\Infineon\. If you choose the Install for all users mode, C:\Infineon\ will be the suggested destination directory. Select the option that works best for your system.


Figure 2: Prompt by the installer to select the install mode.

  1. After accepting the license agreement and clicking Next, you can choose whether you would like to perform a quick installation (i.e., apply all of the default installation settings shown in Figure 3) or a custom installation. I recommend choosing the custom installation path as it allows you to select your preferred installation directory, decide which shortcuts to create, and decide whether or not to install the Radar Fusion GUI. Once you’ve made your choices, click Install.
  1. Finally, navigate to the installation location and descend into the <RDK_installation_directory>\assets\software\ directory shown in Figure 4. There, you will find the radar SDK files packaged in the radar_sdk.zip archive. Simply extract this file to the location of your choosing (I prefer to extract it to the same directory) and proceed with developing your radar solution!

Exploring the Radar SDK

You have likely noticed by this point that the the files comprising both the RDK and the radar SDK are organized rather unintuitively. Until you become familiar with where everything is located, finding what you’re looking for will involve recursively exploring the directory structure until you finally stumble across it. This section takes away some of this guesswork by pointing out the most important files and directories that should be visited when first becoming familiar with the tools.

Note that for the paths given below, replace <RDK_installation_directory> with the install directory you chose in the above section (see Figure 3) and replace <SDK_extraction_directory> with the extraction location you chose in Step 5.

<RDK_installation_directory>/index.html

The first file you should open provides a succinct description of the RDK and each of its software components. After reading the overview provided on the index page, be sure to visit each of the links at the top of the page. There you will find useful information including:

  • the release history of the RDK outlining what changes were made over time (what features where added, what bugs were fixed, and what issues still remain).
  • a quickstart guide explaining how to begin using the C/C++ Library as well as both the Python and Matlab wrappers.
  • an overview of the provided example applications and which sensors they are compatible with.
  • links to hardware documentation; including sensor datasheets, evaluation kit user manuals, and board design files.
  • introductory information about the Radar Fusion GUI and ifxdaq Recording Tool as they are also part of the RDK.

<SDK_extraction_directory>/radar_sdk/doc/documentation.html

Infineon’s excellent documentation for the radar SDK can be found by opening this file. It is organized into several sections, starting with a good introduction to FMCW radar for those who don’t fully understand its operating principal. Then, once armed with an understanding of how modifying the radar parameters affects the design metrics (i.e., maximum range, range resolution, maximum velocity, and velocity resolution), you can begin using the C/C++ library to configure and test your chosen XENSIV device. See the appropriate section for detailed instructions on building the library and using it in your C/C++ application. Of course, the SDK’s API is thoroughly documented by means of Doxygen comments.

Alternatively, detailed instructions are also provided on getting started with both the Python and Matlab wrappers for those who would like a bit more abstraction. It is much simpler to obtain and manipulate sensor data using these languages, making them a great choice for application development. Note that using either of these wrappers does not require building the SDK from source code.

Application development is also supported by additional sections which describe the output format of the radar time-domain data, the algorithms supported by the SDK, and the example applications provided for evaluation.

<SDK_extraction_directory>/radar_sdk/examples/

This directory is where the example applications for C, Python, and Matlab can be found. See the SDK documentation for all the information you need to run them.

<SDK_extraction_directory>/radar_sdk/sdk/

In this directory, you can find the actual SDK library and wrappers. Occasionally you may find that it’s necessary to dig into the source code in order to fully understand what a function does or how an algorithm works. This is where the excavation begins!

Summing Up

The radar SDK package is a must-have for doing any work with Infineon’s XENSIV radar sensors. Unfortunately, installing and getting started with this tool is a bit more complicated than it needs to be. This is especially true for Linux and/or macOS users as there is currently no officially supported installation option for them. However, after installing the RDK and then locating/extracting the SDK, Infineon’s included documentation pages serve as an excellent reference for the remainder of your development journey. Of course, you are also welcome to reply to this post with any questions that you encounter when getting started with the radar SDK.