acconeer A121 Distance Detector User Guide

June 1, 2024
acconeer

acconeer logo A121 Distance Detector
User Guide Author: Acconeer AB
Version:a121-v1.3.0
Acconeer AB October 6, 2023

Acconeer SDK Documentation Overview

To better understand what SDK document to use, a summary of the documents are shown in the table below.
Table 1: SDK document overview.

Name Description When to use

RSS API documentation (html)
rss_api| The complete C API documentation.| –  RSS application implementation
–  Understanding RSS API functions
User guides (PDF)
A121 Assembly Test| Describes the Acconeer assembly test functionality.| – Bring-up of HW/SW
–  Production test implementation
A121 Breathing

Reference Application

| Describes the functionality of the Breathing Reference Application.| – Working with the Breathing Reference Application
A121 Distance Detector| Describes usage and algorithms of the Distance Detector.| – Working with the Distance Detector
A121 SW Integration| Describes how to implement each integration function needed to use the Acconeer sensor.| – SW implementation of custom HW integration
A121 Presence Detector| Describes usage and algorithms of the Presence Detector.| – Working with the Presence Detector
A121 Smart Presence Reference Application| Describes the functionality of the Smart Presence Reference Application.| – Working with the Smart Presence Reference Application
A121 Sparse IQ Service| Describes usage of the Sparse IQ Service.| – Working with the Sparse IQ Service
A121 Tank Level Reference Application| Describes the functionality of the Tank Level Reference Application.| – Working with the Tank Level Reference Application
A121 STM32CubeIDE| Describes the flow of taking an Acconeer SDK and integrate into STM32CubeIDE.| – Using STM32CubeIDE
A121 Raspberry Pi Software| Describes how to develop for Raspberry Pi.| – Working with Raspberry Pi
A121 Ripple| Describes how to develop for Ripple.| – Working with Ripple on Raspberry Pi
XM125 Software| Describes how to develop for XM125.| – Working with XM125
I2C Distance Detector| Describes the functionality of the I2C Distance Detector Application.| – Working with the I2C Distance Detector Application
I2C Presence Detector| Describes the functionality of the I2C Presence Detector Application.| – Working with the I2C Presence Detector Application
Handbook (PDF)
Handbook| Describes different aspects of the Acconeer offer, for example radar principles and how to configure| –  To understand the Acconeer sensor
–  Use case evaluation
Readme (txt)
[README| Various target specific information and links| – After SDK download

Distance detection

2.1Introduction
The purpose of the distance detector is to detect objects and estimate their distance from the sensor. The algorithm is built on top of the Sparse IQ service and has various configuration parameters available to tailor  the detector to specific use cases. The detector utilizes the following key concepts:

  1. Distance filtering: A matched filter is applied along the distance dimension to improve the signal quality and suppress noise.
  2. Sub sweeps: The measured range is split into multiple sub sweeps, each configured to maintain SNR throughout the sweep while minimizing power consumption.
  3. Comparing sweep to a threshold: Peaks in the filtered sweep are identified by comparison to one of three available threshold methods.
  4. Estimate distance to object: Estimate the distance to the target by interpolation of the peak and neighboring amplitudes.
  5. Sort found peaks: If multiple peaks are found in a sweep, three different sorting methods can be employed, each suitable for different use-cases.

2.2Distance filter
As the sensor produce coherent data, samples corresponding to the location of an object will have similar phase, while the phase of free-air measurements will be random. By applying a filter in the distance domain,  the noise in the free-air regions will be suppressed, resulting in an improved SNR.
The filter is automatically configured based on the detector configuration as a second order Butterworth filter with a cutoff frequency corresponding to a matched filter.
2.3Subsweeps
The measurement range is split up into multiple subsweeps to allow for optimization of power consumption and signal quality. The profile, HWAAS and step length are automatically assigned per subsweep, based on the detector config.

  • A shorter profile is selected at the start of the measurement range to minimize the interference with direct leakage, followed by longer profiles to gain SNR. The longest profile used can be limited by setting the parameter max_profile . If no profile is specified, the subsweeps will be configured to transfer to the longest profile(without interference from direct leakage) as quickly as possible to maximize SNR. Longer  profiles yield a higher SNR at a given power consumption level, while shorter profiles gives better depth resolution.
  • The step length can also be limited by setting the parameter max_step_length . If no value is supplied, the step length is automatically configured to appropriate size, maintaining good depth resolution while minimizing power consumption. Note, the algorithm interpolates between the measured points to maintain good resolution, even with a more coarse step length.
  • HWAAS is assigned to each subsweep in order to maintain SNR throughout the measured range as the signal strength decrease with the distance between the sensor and the measured target. The target SNR  level is adjusted using the parameter signal_quality .
    Note, higher signal quality will increase power consumption and measurement time.
    The expected reflector shape is considered when assigning HWAAS to the subsweeps. For planar reflectors, such as fluid surfaces, select PLANAR . For all other reflectors, select GENERIC .

In the Exploration Tool GUI, the subsweeps can be seen as slightly overlapping lines. If the measured object is in the overlapping region, the result from the neighboring segments is averaged together.
2.4Thresholds
To determine if any objects are present, the sweep is compared to a threshold. Three different thresholds can be employed, each suitable for different use- cases.
Fixed threshold The simplest approach to setting the threshold is choosing a fixed threshold over the full range.
Recorded threshold In situations where stationary objects are present, the background signal is not flat. To isolate objects of interest, the threshold is based on measurements of the static environment. The first step is to collect multiple sweeps, from which the mean sweep and standard deviation is calculated. Secondly, the threshold is formed by adding a number of standard deviations (the number is determined by the  parameter threshold sensitivity) to the mean sweep.
Constant False Alarm Rate (CFAR) threshold (default) A final method to construct a threshold for a certain distance is to use the signal from neighbouring distances of the same sweep. This requires that the object  gives rise to a single strong peak, such as a fluid surface and not, for example, the level in a large waste container. The main advantage is that the memory consumption is minimal.
2.5Reflector shape
The expected reflector shape is considered when assigning HWAAS to the subsweeps and during peak sorting.
The reflector shape is set through the detector configuration parameter reflector_shape .
For a planar reflector, such as a fluid surface, select PLANAR . For all other reflectors, select GENERIC .

2.6Peak sorting
Multiple objects in the scene will give rise to several peaks. Peak sorting allows selection of which peak is of highest importance.
The peak sorting strategy is set through PeakSortingMethod , which is part of the detector configuration.
The following peak sorting options are available.
Closest This method sorts the peaks according to distance from the sensor.
Strongest (default) This method sorts the peaks according to their relative strength.
Note, the reflector shape is considered when calculating each peak’s strength. The reflector shape is selected through detector configuration parameter reflector_shape .
2.7Detector calibration
For optimal performance, the detector performs a number of calibration steps. The following section outlines the purpose and process of each step. Note, which of the following calibration procedures to perform is  determined by the user provided detector config. For instance, the close range measurement is only performed when measuring close to the sensor.
To trigger the calibration process in the Exploration Tool gui, simply press the button labeled “Calibrate detector”. If you are running the detector from a script, the calibration is performed by calling the method  calibrate detector.
Noise level estimation The noise level is estimated by disabling of the transmitting antenna and just sample the background noise with the receiving antenna.
Offset compensation The purpose of the offset compensation is to improve the distance trueness(average error) of the distance detector. The compensation utilize the loopback measurement, where the pulse is  measured electronically on the chip, without transmitting it into the air. The location of the peak amplitude is correlated with the distance error and used to correct the distance raw estimate.
Close range measurement calibration Measuring the distance to objects close to the sensor is challenging due to the presence of strong direct leakage. One way to get around this is to characterize the leakage  component and then subtract it from each measurement to isolate the signal component. This is exactly what the close range calibration  does. While performing the calibration, it is important that the sensor is installed in its intended geometry and that there is no object in front of the sensor as this would interfer with the direct leakage.
Note, this calibration is only performed if close range measurement is active, given by the configured starting point.
Recorded threshold The recorded threshold is also recorded as a part of the detector calibration. Note, this calibration is only performed if the detector is configured to used recorded threshold or if close range measurement is active, where recorded threshold is used.
2.8Detector recalibration
To maintain optimal performance, the sensor should be recalibrated if sensor_calibration_needed is set to True. A sensor calibration should be followed by a detector recalibration, performed by calling recalibrate_detector.
The detector recalibration carries out a subset of the calibration steps. All the calibration steps performed are agnostic to its surroundings and can be done at any time without considerations to the environment.
2.9Temperature compensation
The surrounding temperature impacts the amplitude of the measured signal and noise. To compensate for these effects, the recorded threshold has a built in compensation model, based on a temperature  measurement, internal to the sensor. Note, the effectiveness of the compensation is limited when measuring in the close range region.

C API

The focus of this section is the Distance Detector C API.
It is recommended to read this section together with example_detector_distance.c located in the SDK package. The full API specification, rss_api.html, provided in the SDK package is also good to read.
The Distance Detector utilizes one or more sensor configurations to cover the full configured range. This will result in multiple sensor measurements for one detector result. Thereby, multiple detector functions are called in a while loop waiting for a sensor interrupt for each iteration.
An example of how to use the API is provided in the SDK: example_detector_distance.c
3.1Calibration
The detector calibration should be performed after the sensor calibration. It is important that only static objects, which are always present in the measurement range, are present in front of the sensor when  performing a detector calibration.
Objects present in front of the sensor during detector calibration might not be detected during normal operation. The calibration function handles all sensor communication within the detector, except for waiting for  sensor interrupt. The calibration is performed in multiple steps using multiple sensor configurations and therefore the function needs to be called in a while loop until complete.
Recalibration
If the sensor is recalibrated after the initial detector calibration, recalibration of the detector must also be performed.
A detector recalibration is a subset of a full calibration. The detector recalibration can be performed regardless of the environment, i.e. objects within the measurement range during recalibration will still be detected after a recalibration.
The usage of this function is similar to the usage of the calibration function.
3.2Process
Depending on the configuration the Distance Detector will use one or more sensor configurations resulting in one or more sensor measurements for each detector measurement. The process function also requires a  specific call chain to be performed for one sensor measurement. This call chain should be performed within a while loop to cover all possible sensor measurements.
Sparse IQ Data
As part of the distance result struct there is a member called processing_result which contains the underlying Sparse IQ data used to calculate the distance result. The processing_result will be updated each time the
acc_detector_distance_process function is called.
3.3Memory
Flash
The example application compiled from example_detector_distance.c on the XM125 module requires around 90 kB.
RAM
The RAM can be divided into three categories, static RAM, heap, and stack. Below is a table for approximate RAM for an application compiled from example_detector_distance.c.

RAM Size (kB)
Static 1.0
Heap 15.0
Stack 3.3
Total 19.3

Note that the heap is very dependent on the configuration. The configurations that have the largest impact on the memory are start_m, end_m, step_length and threshold_method.
3.4Power Consumption
The example application compiled from example_detector_distance_low_power_off.c on the XM125 module has an average current of 0.27 mA.

Configuration Parameters

Table 3: Distance Detector Configuration Parameters

Name Type Default Value Min Max
sensor sensor id 1 n/a n/a
start_m float 0.25 0.0 < end_m
end_m float 3.0 > start_m 23.0
max_step_length uint16_t 0
max_profile enum profile_5 profile_1 profile_5
signal_quality float 15.0 -10.0 35.0
threshold_method enum cfar
peak_sorting_method enum strongest
reflector_shape enum generic
num_frames_in_recorded_threshold uint16_t 100
fixed_amplitude_threshold_value float 100.0
fixed_strength_threshold_value float 0.0
threshold_sensitivity float 0.5 0.0 1.0
close_range_leakage_cancellation bool true n/a n/a

Disclaimer

The information herein is believed to be correct as of the date issued. Acconeer AB (“Acconeer”) will not be responsible for damages of any nature resulting from the use or reliance upon the information contained  herein. Acconeer makes no warranties, expressed or implied, of merchantability or fitness for a particular purpose or course of performance or usage of trade. Therefore, it is the user’s responsibility to thoroughly test  the product in their particular application to determine its performance, efficacy and safety. Users should obtain the latest relevant information before placing orders. Unless Acconeer has explicitly designated  an individual Acconeer product as meeting the requirement of a particular industry standard, Acconeer is not responsible for any failure to meet such industry standard requirements. Unless explicitly stated herein  this document Acconeer has not performed any regulatory conformity test. It is the user’s responsibility to assure that necessary regulatory conditions are met and approvals have been obtained when using the product. Regardless of whether the product has passed any conformity test, this document does not constitute any regulatory approval of the user’s product or application using Acconeer’s product.
Nothing contained herein is to be considered as permission or a recommendation to infringe any patent or any other intellectual property right. No license, express or implied, to any intellectual property right is granted by Acconeer herein.
Acconeer reserves the right to at any time correct, change, amend, enhance, modify, and improve this document and/or Acconeer products without notice.
This document supersedes and replaces all information supplied prior to the publication hereof.

acconeer logo © 2023 by Acconeer
AB – All rights reserved

Documents / Resources

| acconeer A121 Distance Detector [pdf] User Guide
A121 Distance Detector, A121, Distance Detector, Detector
---|---

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals