• sales

    +86-0755-88291180

A121 Range Sensor User Guide

Overview

Introduction

A121 Range Sensor is based on 60 GHz Pulsed Coherent Radar (PCR) technology, enabling human presence and motion detection, and supports high-precision distance measurement. With configurable detection zones and sensitivity parameters, it possesses excellent anti-interference capability. The module integrates an Arm® Cortex®-M4 MCU (STM32L431CBT6), which can function as a standalone unit running user applications directly on the Acconeer RSS, or communicate with an external host via a register command protocol. It features small size, low power consumption, and easy integration, making it suitable for applications such as human presence detection, proximity sensing, non-contact triggering, and vital sign monitoring.

Usage Scenarios

  • Consumer electronics
    • Human presence and motion detection
    • Material classification and object detection
    • Vital sign detection (e.g., breathing, heart rate)
    • Gesture control and non-contact buttons
  • IoT & smart cities
    • Smart parking solutions
    • Liquid level/height monitoring
    • Liquid surface velocity measurement
    • Structural integrity monitoring
    • Pedestrian/people flow counting
  • Industry & agriculture
    • Proximity and distance sensing
    • Vibration measurement
  • Automotive electronics
    • In-cabin monitoring (occupant/status detection)
    • Access control and human-machine interaction (HMI)

Operating Principle

The A121 utilizes Pulsed Coherent Radar (PCR) technology. It transmits ultra-short RF pulses and coherently receives the echoes. By leveraging picosecond-level time resolution, it precisely measures the signal round-trip time, achieving sub-millimeter distance accuracy. Simultaneously, phase information allows it to perceive minute displacements and motion. The pulsed operation mode results in very low average power consumption. The highly integrated chip can achieve a range of up to approximately 23 meters without requiring antenna aperture. Since it uses RF electromagnetic waves, it is unaffected by environmental interference such as light, dust, and noise, making it suitable for small, battery-powered devices with low power requirements. Please click this link to understand the working principle of radar.


Specifications

ProductA121 Range Sensor
Operating Frequency Band60GHz
ModulationPCR
Power Supply5V
I/O Level3.3V
Output InterfaceUSB/UART/I2C
Communication Baud RateUART: 921.6Kbps
I2C: 100K/400K
Range Resolution0.03m@25°Profile1
Field of ViewHorizontal: 53°
Vertical: 65°
Range Accuracy0.03m@Profile1
Maximum Operating Current5V 80mA
Ambient Temperature-40 ~ 85℃
Dimensions39×39mm


Exploration Tool

  • Helps you quickly start testing and evaluating our sensor to meet your use case requirements. It will also guide you to find the optimal sensor settings and assist in fine-tuning the final product's data processing. The following runs on a Windows PC. For Linux, please refer to this link.
  • Click to download the host computer tool
  • Click to download the firmware, which is the firmware for the Exploration Tool by default.

Getting Started

  • Extract the portable_exploration_tool.zip file in a suitable location.
  • Double-click the update.bat script. This update process takes a long time, so please wait patiently. If it fails, check your network connection and run update.bat again.
  • After the update is complete, double-click the run_app.bat script to launch the Exploration Tool application. In the pop-up "Acconeer Exptool Launcher" window, click A121.


  • Connect the module to your computer using a Type-C cable. Find the ports in Device Manager. They are listed under Ports (COM & LPT) as USB-Enhanced -SERIAL-A CH342 and USB-Enhanced -SERIAL-B CH342. If not found, you may need to reinstall the driver
  • When connecting the module to the Exploration Tool application, use the USB-Enhanced -SERIAL-A CH342 port, then click Connect. Once successfully connected, you can proceed with testing. Each test has a documentation link next to it; click to view if you are unsure.

Flashing Firmware

  • Click Flash in the Exploration Tool
    • Select XM125
    • Check the box for Show all devices
    • Select the USB-Enhanced -SERIAL-A CH342 port. You can use online download or a local file
    • Click Flash on the next screen. Follow the prompts to enter boot mode, and the firmware flashing will begin.
    • Done indicates successful flashing.

Firmware Description

  • The A121 Range Sensor provides comprehensive firmware variants, including for the host computer tool, UART, and I2C interfaces, as described below:
  • UART firmware outputs information via the USB-Enhanced -SERIAL-B CH342 port or the serial pins on the board
  • I2C firmware outputs information via the I2C pins and is used in conjunction with the BUSY pin. The slave address defaults to 0x52 and can be adjusted to 0x51 or 0x53 via resistors on the board
  • A121 Range Sensor Firmware
DemoBasic Description
Exploration Tool
acc_exploration_server_a121Flash this firmware to connect with the Exploration Tool
UART
Getting started
example_bring_upBasic bring-up example for quick start and application development
example_control_helperControl helper example demonstrating basic usage of the control interface
example_detector_distanceBasic distance detector example
example_detector_presenceBasic presence detector example
example_serviceBasic Service interface example
Advanced control
example_detector_distance_calibration_cachingDistance detection + calibration result caching
example_detector_distance_low_power_hibernateDistance detection with low-power hibernate mode
example_detector_distance_low_power_offDistance detection with low-power off mode
example_detector_distance_with_iq_data_printDistance detection with IQ raw data printing
example_detector_presence_low_power_hibernatePresence detection with low-power hibernate mode
example_detector_presence_low_power_offPresence detection with low-power off mode
example_detector_presence_multiple_configurationsPresence detection with multiple configuration switching
example_detector_presence_with_iq_data_printPresence detection with IQ raw data printing
example_service_calibration_cachingCalibration caching example in Service mode
example_service_low_power_sensor_disableService low power: sensor disable
example_service_low_power_sensor_hibernateService low power: sensor hibernate
example_service_multiple_configurationsService multiple configurations example
example_service_sensor_disableService: sensor disable
example_service_sensor_hibernateService: sensor hibernate
example_service_sensor_offService: sensor off
example_service_subsweepsService: subsweeps configuration example
Processing
example_processing_amplitudeAmplitude processing example
example_processing_coherent_meanCoherent mean processing example
example_processing_noncoherent_meanNon-coherent mean processing example
example_processing_peak_interpolationPeak interpolation processing example
example_processing_static_presenceStatic presence detection processing example
example_processing_subtract_adaptive_bgAdaptive background subtraction processing example
Troubleshooting
example_diagnostic_testDiagnostic test example for hardware/communication troubleshooting
Reference Apps
ref_app_breathingBreathing detection reference application
ref_app_parkingParking/spot detection reference application
ref_app_smart_presenceSmart presence detection reference application
ref_app_tank_levelLevel/liquid level detection reference application
ref_app_touchless_buttonTouchless button reference application
Example Apps
example_cargoCargo utilization and human presence detection reference example
example_hand_motion_detectionExample for detecting hand motion or gestures
example_surface_velocityExample for measuring the velocity of a moving surface
example_vibrationExample for detecting and analyzing vibration characteristics
example_waste_levelExample for measuring waste or material level height
I2C
i2c_distance_detectorI2C interface distance detector basic example
i2c_example_cargoI2C interface cargo detection example
i2c_presence_detectorI2C interface presence detector basic example
i2c_ref_app_breathingI2C interface breathing detection reference application

Lens Description

  • The reference lenses we provide are made of 3301PA material, featuring a solid monolithic structure design with good mechanical strength and stability. The lens assembly consists of the following key components:

1. Lens Holder

Used to secure the PCB and lens assembly, ensuring the relative positional accuracy between the lens and the chip, thereby improving system assembly stability and consistency.

2. Flat Cover

Primarily used to protect the photosensitive chip surface from scratches or contamination during assembly, transportation, or use. It does not introduce optical distortion to the imaging.

3. Fresnel Zone Plate

Achieves light focusing through phase modulation principles. It effectively reduces lens thickness and weight while maintaining focusing capability, making it suitable for applications with structural height constraints.

4. Hyperbolic Lens

Focuses incident light through refraction principles, effectively improving imaging quality, focusing accuracy, and image clarity of the optical system.


Detection Range

  • Flat Cover


  • Hyperbolic Lens


  • Fresnel Zone Plate


Other Information

  • For information on how to configure the A121 and other parameter descriptions, please click this link.

Dimensions



UART Firmware Usage

  • This section briefly explains the effects and usage of UART firmware. The default baud rate is 921600.
  • To test different functions, you need to flash different firmware. For flashing instructions, refer to the Flashing Firmware section above.

Hardware Connection

  • After flashing the firmware, connect the module to the computer via a Type-C cable. You can view information by selecting the USB-Enhanced -SERIAL-B CH342 port or through the TX pin on the MX1.25 connector.

Getting Started

  • example_bring_up effect:


  • example_control_helper effect:


  • example_detector_distance effect:


  • example_detector_presence effect:


  • example_service effect:


Reference Apps

  • ref_app_breathing effect:


  • ref_app_parking effect:


  • ref_app_smart_presence effect:


  • ref_app_tank_level effect:


  • ref_app_touchless_button effect:


Example Apps

  • example_cargo effect:


  • example_hand_motion_detection effect:


  • example_surface_velocity effect:


  • example_vibration effect:


  • example_waste_level effect:


I2C Firmware Usage

  • This section briefly explains the effects and usage of I2C firmware. The default slave address is 0x52.
  • To test different functions, you need to flash different firmware. For flashing instructions, refer to the Flashing Firmware section above.

Working with Raspberry Pi

Enable Raspberry Pi I2C

  • Enter the command in the Raspberry Pi terminal: sudo raspi-config nonint do_i2c 0

Hardware Connection

To access the Raspberry Pi I2C, refer to the following:

Install Library

  • C
git clone https://github.com/WiringPi/WiringPi.git
cd WiringPi/
./build debian
# Proceed to the next step based on the generated filename
sudo mv debian-template/wiringpi_*.*_arm64.deb .
sudo apt install ./wiringpi_*.*_arm64.deb
# Check if the installation was successful (a version number will appear)
gpio -v
  • Python
sudo apt install python-smbus2

Download Demo

cd ~
wget https://files.waveshare.com/wiki/A121_Range_Sensor/A121_Range_Sensor_Demo.zip
unzip A121_Range_Sensor_Demo.zip
cd A121_Range_Sensor_Demo/

Run C Demo

cd ~/A121_Range_Sensor_Demo/Raspberrypi/c/
# Choose the compilation target based on the flashed firmware. Options are:
make A121_APP=BREATHING -B
make A121_APP=CARGO -B
make A121_APP=PRESENCE -B
make A121_APP=DISTANCE -B
#Run the demo
./main
  • The terminal will output the relevant information, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Run Python Demo

cd ~/A121_Range_Sensor_Demo/Raspberrypi/python/example
# Choose the compilation target based on the flashed firmware. Options are:
python main.py breathing
python main.py cargo
python main.py presence
python main.py distance
  • The terminal will output the relevant information, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Working with ESP32S3

  • For ESP32S3 environment setup and basic usage, please refer to this link.
  • After setting up the environment, you can connect the sensor and download the Demo

Hardware Connection

  • Refer to the following diagram for connection:


Arduino esp32 Demos

  • Navigate to A121_Range_Sensor_Demo\ESP32S3\Arduino\*, where * is the demo corresponding to the firmware. Double-click the .ino file.
  • Select development board:


  • Select the port of the ESP32S3, and then compile and upload it
  • After the upload is completed, open the serial port monitor, and the relevant information will be output, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Micropython Demos

  • Navigate to A121_Range_Sensor_Demo\ESP32S3\micropython. Double-click the .py file corresponding to the firmware.
  • Select development board:


  • Select the port of the ESP32S3, and then run the demo
  • The shell will output the relevant information, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Working with Pico

  • For Pico environment setup and basic usage, please refer to this link.
  • After setting up the environment, you can connect the sensor and download the Demo

Hardware Connection

  • Refer to the following diagram for connection:


Arduino Pico Demos

  • Navigate to A121_Range_Sensor_Demo\pico\Arduino\*, where * is the demo corresponding to the firmware. Double-click the .ino file.
  • Select development board:


  • Select the port of the Pico, and then compile and upload it
  • After the upload is completed, open the serial port monitor, and the relevant information will be output, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Micropython Demos

  • Navigate to A121_Range_Sensor_Demo\pico\micropython. Double-click the .py file corresponding to the firmware.
  • Select development board:


  • Select the port of the ESP32S3, and then run the demo
  • The shell will output the relevant information, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

Working with Arduino

  • For Arduino environment setup and basic usage, please refer to this R4 link, R3 is installed by default.
  • After setting up the environment, you can connect the sensor and download the Demo

Hardware Connection

  • Refer to the following diagram for connection:


Arduino Demos

  • Navigate to A121_Range_Sensor_Demo\Arduino\*, where * is the demo corresponding to the firmware. Double-click the .ino file.
  • Select development board:


  • Select the port of the Pico, and then compile and upload it
  • After the upload is completed, open the serial port monitor, and the relevant information will be output, as shown below:
    • BREATHING:

    • CARGO:

    • PRESENCE:

    • DISTANCE:

FAQ

Support

Monday-Friday (9:30-6:30) Saturday (9:30-5:30)

Email: services01@spotpear.com



TAG: PC USB Secondary Screen Raspberry Pi Pico Buzzer ESP32 S3 Development Board 1.91 inch AMOLED Display Screen For Arduino LVGL With SD-Port/ QMI8658C 6-Axis Sensor Solar Charge Module SpotPear OLED-LCD-HAT-A user guide MPS2.5G Raspberry Pi 5 PCIe to NVME SSD And 2.5G Ethernet RJ45 HAT RTL8125 2280 2242 2230 Raspberry Pi 5 Camera ESP32 P4 Development Board 7-inch LCD Display 1024×600 7inch Touchscreen ESP32-C6 WiFi6 AI Deepseek 树莓派Pico 2 RP2350B-Plus-W开发板WIFI官方Radio Module 2 7inch Monitor Display Raspberry Pi Pico 2 RP2350B 1.46 inch Round LCD Touch Display 412x412 HMI LVGL QMI8658 6-axis 65K Colors Sipeed Lichee Tang Nano 4K FPGA MINI Development Board W1NSR-LV4C GOAI Gowin X1015 Raspberry Pi 5 PCIe to M.2 Key-M NVMe SSD Board Pi5 2280 Arduino 1.54inch OLED Raspberry Pi Pico RP2040 C Environment Window Raspberry Pi Pico LoRa32-Heltec V4 ESP32-S3 LoRa SX1262 Development Board 863-928MHz Meshtastic For Arduino Raspberry Pi 5 8 inch DSI LCD Captive TouchScreen MIPI Display 1280x800 Industrial One-Body Tablet PC With 5MP Front Camera ESP32