

The RPLiDAR A2M8-R3 is a 360-degree laser scanner designed for mapping, navigation, and obstacle detection in robotics and automation systems. It provides high-resolution distance measurements by emitting laser pulses and analyzing their reflections. This compact and lightweight LiDAR sensor is capable of operating in various environments, making it ideal for applications such as autonomous robots, drones, SLAM (Simultaneous Localization and Mapping), and smart home devices.








| Parameter | Specification |
|---|---|
| Scanning Range | 0.15 m to 12 m (indoor) |
| Scanning Angle | 360° |
| Angular Resolution | 0.45° - 1.35° (adjustable) |
| Sample Rate | Up to 8000 samples per second |
| Communication Interface | UART (3.3V TTL) |
| Input Voltage | 5V DC |
| Power Consumption | 4W (typical) |
| Operating Temperature | 0°C to 40°C |
| Dimensions | 70 mm (diameter) x 41 mm (height) |
| Weight | 190 g |
The RPLiDAR A2M8-R3 uses a 5-pin connector for communication and power. Below is the pinout:
| Pin Number | Name | Description |
|---|---|---|
| 1 | VCC | 5V DC power input |
| 2 | GND | Ground |
| 3 | TX | UART Transmit (3.3V TTL) |
| 4 | RX | UART Receive (3.3V TTL) |
| 5 | MOTOCTL | Motor control signal (PWM input) |
VCC pin to a stable 5V DC power source and the GND pin to ground.TX and RX pins to establish UART communication with a microcontroller or computer. Ensure the UART voltage level is 3.3V TTL.MOTOCTL pin can be used to control the motor speed via a PWM signal. Alternatively, the motor can run at a default speed if this pin is left unconnected.Below is an example of how to connect the RPLiDAR A2M8-R3 to an Arduino UNO and read data using the official SDK.
| RPLiDAR Pin | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TX | RX (Pin 0) |
| RX | TX (Pin 1) |
| MOTOCTL | Not connected (default motor speed) |
#include <RPLidar.h> // Include the RPLiDAR library
RPLidar lidar; // Create an RPLidar object
void setup() {
Serial.begin(115200); // Initialize serial communication
lidar.begin(Serial); // Start communication with the RPLiDAR
// Wait for the RPLiDAR to initialize
while (!lidar.checkHealth()) {
Serial.println("RPLiDAR health check failed. Retrying...");
delay(1000);
}
Serial.println("RPLiDAR is ready.");
}
void loop() {
if (IS_OK(lidar.waitPoint())) {
// Retrieve the distance and angle of the current scan point
float distance = lidar.getCurrentPoint().distance; // Distance in mm
float angle = lidar.getCurrentPoint().angle; // Angle in degrees
// Print the data to the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" mm, Angle: ");
Serial.print(angle);
Serial.println(" degrees");
} else {
Serial.println("Failed to retrieve data from RPLiDAR.");
}
}
No Data Output:
Motor Not Spinning:
MOTOCTL pin not configured.MOTOCTL pin is left unconnected or driven with a valid PWM signal.Inaccurate Measurements:
Health Check Fails:
Can the RPLiDAR A2M8-R3 be used outdoors? Yes, but avoid direct sunlight and extreme weather conditions for optimal performance.
What is the maximum range of the sensor? The maximum range is 12 meters indoors, but it may vary depending on environmental conditions.
Is the RPLiDAR compatible with Raspberry Pi? Yes, the RPLiDAR can be used with Raspberry Pi via UART or USB using the official SDK.
How do I clean the sensor? Use a soft, lint-free cloth to gently clean the LiDAR's lens. Avoid using liquids or abrasive materials.
This documentation provides a comprehensive guide to using the RPLiDAR A2M8-R3 effectively in your projects. For further details, refer to the official datasheet and SDK documentation.