Using the A111 Pulsed Radar Sensor with a Raspberry Pi

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

View the updated tutorial: Getting Started with the A111 Pulsed Radar Sensor

Contributors: jimblom
Favorited Favorite 3

Get the SDK

The software development kit (SDK) for the A111 is, unfortunately, locked behind a closed source blob that currently only supports Cortex-M4 and ARMv7 platforms. To download the SDK, visit Acconeer's "Products" page.

Towards the bottom, under the "A1 Software Development Kit" header is a link to GET SOFTWARE**. Read through the license, agree, and then request the A1 SDK for Linux ARMv7 software.

Requesting the ARMv7 SDK

Requesting the ARMv7 SDK from Acconeer.

After supplying your email address, you should receive a download link email nearly instantaneously.

SCP the SDK to Your Pi

Once downloaded, you'll probably need to transfer the ZIP'ed SDK over to your Pi. To achieve this, we recommend SCP. If you're on Windows, WinSCP works very well for transferring files from one device to another.

Using WinSCP to upload the SDK ZIP file to your P i

Using WinSCP to drag-and-drop the SDK into the home directory of your Pi.

If you're on a Mac or Linux machine, with SCP available, you can use a command like the below to copy the ZIP file over:


Unzip the SDK

Once uploaded, you can use the terminal to unzip the SDK using the following commands (included are commands to install unzip):

unzip -d a111

Then cd to the "a111/evk_service/..." directory to prepare to build the example software.

SDK Overview

The A111 SDK includes source code, archived libraries, include files, and documentation for using the A111 pulsed radar sensor. Here's a quick overview of what's included with the SDK:

  • doc -- Doxygen-generated documentation for the A111 API and source code.
  • include -- Header and API files which describe how to interact with the pre-compiled A111 libraries.
  • lib -- Pre-compiled A111 static archives. API for these files are provided in the "include" directory.
  • out -- Compiled board and example object and executable files.
  • rule -- Recursive Makefile rules for board and example files.
  • source -- C source files for custom boards and example applications.
  • makefile -- Top-level makefile. Recursively calls files in the "rule" directory to build example and board files.

Adding Custom Example and Board Files

The SparkFun A111 Breakout's default pins will not work with those of the SDK's examples. To build and run an example with this board, we have an example board definition, make scripts, and example applications. Click the button below to download these files from the GitHub repo:

If you copy this ZIP file to your home directory, this command will unzip it to the right directory (assuming your SDK was unzipped to: "~/a111/evk_service_linux_armv7l_xc111_r4a_xr111-3_r1c_a111_r2c".

unzip -d a111/evk_service_linux_armv7l_xc111_r4a_xr111-3_r1c_a111_r2c

The SparkX ZIP includes these files, which should be extracted to their matching SDK directories:

  • rule/ -- Build rules/Makefile for the sparkx_detector_distance.c source file.
  • rule/makefile_build_example\_\*\_sparkx -- Build rules/Makefile for the sparkx-breakout example files.
  • source/acc_board_rpi_sparkx.c -- Board definitions -- pin connections, clock frequency, etc, for the SparkX A111 Breakout.
  • source/sparkx_detector_distance.c -- Modified distance detector source file.

Once downloaded, these files should be extracted to the like spot in the original ZIP file.

Rule directory structure

Example of SparkX example files added to the "rule" directory. (Don't forget the "source" directory files too!