Introduction
Developmental Products: SparkX creates products quickly to deliver the latest innovations as technology advances. While tested, SparkX products are not finalized and come without formal support. Looking for a project that demands highly accurate, state-of-the-art sensing of distance, velocity, motion, or gestures? Beyond ultrasonic or infrared, the SparkX Acconeer A111 offers 60GHz radar capabilities in a small package. The Acconeer A111 represents the cutting edge with its pulsed radar sensor. It provides contactless detection beyond basic ranges and angles through sophisticated yet compact millimeter wave technology.
However, as an experimental SparkX product still in development, the Acconeer A111 does not come with guarantees or dedicated technical assistance. It serves mainly as a means to explore the most innovative sensing solutions as their potential becomes clear. Customers should be aware of the developmental nature and limitations of support for such pioneering prototypes.
The Acconeer A111 is an all-in-one solution for pulsed coherent radar (PCR) technology. It integrates antennae and offers an SPI interface with speeds up to 50MHz. PCR enables applications like distance sensing, gesture recognition, motion detection, and velocity measurement. The sensor can simultaneously track one or more objects within a range of up to two meters.
Our breakout board for the A111 streamlines its use. In addition to housing the radar chip, it incorporates a 1.8V regulator, voltage level shifting, and breaks out all sensor pins to both fine-pitch and Raspberry Pi-compatible headers. This allows easy integration into projects, removing the need for separate components and translation of signal levels. By providing a complete, pre-packaged platform for the Acconeer solution, our board handles many low-level details. This lets developers focus on implementing PCR technology into their specific applications as simply as possible through the standard pinout.
Required Materials
The Acconeer A111 radar sensor requires integration with a microcontroller using either an ARMv7 or ARM Cortex-M4 architecture, as its proprietary SDK currently only generates code for these CPUs.
This tutorial will demonstrate using the A111 connected to a Raspberry Pi board. As the Pi employs a supported processor architecture, it provides a suitable platform for experimenting with and developing applications for the sensor.
The A111 breakout board features a 20-pin header layout that is directly compatible with the GPIO pinheaders on any Raspberry Pi model. Simply connecting the two boards handles the physical integration.
Alternatively, those wishing to manually wire the interface can use male pin headers soldered to the breakout along with approximately 9 female-to-male jumper wires to join the corresponding pins between the devices.
By taking advantage of Raspberry Pi’s computing power along with the breakout providing the circuitry integration, developers can easily prototype and test projects incorporating pulsed coherent radar capabilities without needing specialized hardware.
Setup the Hardware
Raspbian and SPI
This tutorial assumes the Raspberry Pi has already been set up with Raspbian OS. For help installing the Debian-based OS, check the Raspberry Pi Foundation’s documentation. Alternatively, our “Headless Raspberry Pi Setup” guide may also be useful. You’ll need to enable SPI on the Pi as well. Please refer to our separate “SPI on Pi” tutorial for instructions on that process.
The A111 Pulsed Radar Breakout Board is designed to directly connect to a Raspberry Pi. While it doesn’t span the full 40 pins of a Raspberry Pi B+ or later models, the included 26-pin header is compatible with any Pi version. Solder the 2×13 pin header to the breakout board so the female ends face outward, away from the A111 radar chip. Then connect the shield to the Raspberry Pi, aligning the “Pi Display” text on the breakout with the Pi’s display pins. The sensor should end up facing upward once fully plugged in.
A111 Breakout plugged into a Raspberry Pi.
Or, if you’d like to manually wire the breakout up to a Pi, here is the pin-out we’ll use through the rest of this tutorial:
Breakout Pin | Raspberry Pi Pin Name | RasPi Pin Number |
---|---|---|
CS | SPI0 CS0 | 24 |
SCLK | SPI0 SCLK | 23 |
MISO | SPI0 MISO | 21 |
MOSI | SPI0 MOSI | 19 |
INT | GPIO25 | 22 |
EN | GPIO27 | 13 |
VCCIO | 3.3V | 1,17 |
GND | GND | 6, 14, 20, etc. |
VIN | 5V | 2, 4 |
⚡ Input Voltage and Logic Levels: This board breaks out both “VIN” and “VCCIO” pins. “VIN” should power the sensor, which can consume up to about 80mA. “VCCIO” sets the I/O voltage, which may be lower than VIN.
The Raspberry Pi pin breakouts, for example, connect VIN to 5V and VCCIO to 3.3V, as the Raspberry Pi’s 3.3V bus may not be able to fully power the A111, but the Pi can only handle 3.3V I/O.
Enable SPI on your Raspberry Pi
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 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 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:
scp acconeer_evk_service_linux_armv7l_xc111_r4a_xr111-3_r1c_a111_r2c_v1_3_5.zip 192.168.0.100:~
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 acconeer_evk_service_linux_armv7l_xc111_r4a_xr111-3_r1c_a111_r2c_v1_3_5.zip -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 sparkx-a111-source.zip -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/makefile_build_sparkx_detector_distance.inc – 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.
Example of SparkX example files added to the “rule” directory. (Don’t forget the “source” directory files too!
Build and Run the Test Sketch
Building the Board and Example Applications
Once uploaded to your Pi, executing the make file – and it’s recursive dependencies – should build all of the examples you may use with the A111. To build all board and example files, navigate to the SDK’s top-level directory and type make
Read More Info…..