# 360 degree LIDAR module, M1C1, rotating, UART

- Page: https://sigmanortec.ro/en/360-degree-lidar-module-m1c1-rotating-uart
- Price: 137.08 RON
- Availability: Out of stock
- Reference: 9919 · EAN: 5949284991480
- Category: Mechatronics and IoT > Sensors and Modules > Distance and Presence Sensors > LIDAR and ToF Sensors
- Package (shipping data): 0.114 kg
- Updated: 2026-09-18
- Shop: [Sigmanortec.ro](https://sigmanortec.ro/en/llms.txt)
- Prices: RON, VAT included; prices and stock as of 2026-10-22 03:39 (Europe/Bucharest)

## Description

2D LiDAR sensor with 360° laser scanning, ideal for autonomous navigation, mapping and obstacle avoidance, quickly generates a detailed point cloud for precise positioning, detects up to 8 m with optimal performance between 0.1 and 6 m, angular resolution approx. 0.93° and scanning at 10 Hz, UART interface for easy integration and low typical consumption of 1 W.
The LiDAR M1C1 Mini sensor performs 360° 2D laser scanning and operates on the triangulation principle. It is intended for autonomous navigation and mapping. It generates a point cloud of the surrounding environment, useful for obstacle avoidance, autonomous positioning, SLAM mapping, and creating 2D maps. It can be used in mobile robots, AGV platforms, DIY robot vacuums, and educational projects.
The module base is fixed, while the upper head rotates continuously clockwise. Power and data are transmitted to the rotating part through a brush mechanism. Detection distance reaches up to 8 m, while the optimal range is between 0.1 and 6 m. Angular resolution is approximately 0.93°, scanning frequency is 10 Hz, and measurement frequency is 3860 points per second. The light source is a 780 nm laser, Class I, safe for people and animals. The sensor is highly resistant to ambient light interference and typically consumes only 1.0 W at 5 V power supply.
Angle and distance data are continuously transmitted via UART, in binary packets, at 115200 baud, with a 3.3 V logic level. Connection is made through a 4-pin PH1.25 connector. The sensor is compatible with any platform that has a hardware UART: ESP32, STM32, Arduino Mega (Serial1, Serial2, Serial3), Raspberry Pi (UART on GPIO or via USB adapter), and PC via USB-UART adapter. For real-time data decoding and processing, we recommend ESP32 or STM32. On Arduino Uno and Nano, the hardware UART is occupied by the USB connection, and SoftwareSerial does not work reliably at 115200 baud. The sensor’s 3.3 V TX output is read correctly by most 5 V boards. However, the sensor’s RX pin must not be connected directly to a 5 V output.
Specifications:
Supply voltage: 5VDC
Power consumption: typically 1.0W
Light source: 780nm laser, Class I
Operating principle: triangulation
Detection distance: 0.1 - 6m (maximum 8m)
Field of view: 360° horizontal
Angular resolution: approx. 0.93°
Measurement frequency: 3860 points/s
Scanning frequency: 10Hz
Rotation direction: clockwise
Interface: UART
UART parameters: 115200 baud, 8N1
UART logic level: 3.3V
Transmitted data: angle and distance, binary packets
Connector: 4 pins, PH1.25
Weight: 98g
Dimensions: 100.95 x 60.50 x 45.30 mm
Usage:
The module board comes with a 4-pin PH1.25 connector, providing access to the VCC (5VDC), TX, GND, and RX pins.
Pin
Function
VCC
5 VDC power supply
TX
Serial data output (LiDAR → microcontroller)
GND
Ground
RX
Command input (microcontroller → LiDAR), optional
Power the module with 5V from a stable source capable of supplying at least 500mA to cover the motor startup current.
Connect the sensor’s TX pin to the RX pin of the microcontroller or USB-UART adapter and connect the grounds (GND) together.
Configure the serial port to 115200 baud, 8 data bits, no parity, 1 stop bit (8N1).
After power-up, the sensor head begins to rotate, and once the speed stabilizes, the module continuously transmits scan data. The rotation speed cannot be adjusted externally.
Decode the packets according to the protocol below and verify the checksum of each packet before using the data.
Mount the sensor on the robot or equipment so that it has a clear view all around, without any elements touching or braking the rotating head.
Clean the optical window periodically to avoid errors caused by dust and dirt.
Communication protocol:
According to the manufacturer’s documentation, data is transmitted in binary packets, in little-endian format.
Bytes
Field
Description
2
PH
Packet header: AA 55
1
CT
Packet type: 0x01 = start of a rotation, 0x00 = data
1
LSN
Number of samples in the packet
2
FSA
Angle of the first sample
2
LSA
Angle of the last sample
2
CS
Checksum (XOR on 16-bit words)
2 × LSN
Si
Measured distances
Distance [mm] = Si >> 2
Raw angle [°] = (FSA >> 1) / 64, respectively (LSA >> 1) / 64. The angles of intermediate samples are obtained by linear interpolation between FSA and LSA.
An angle correction is applied to each sample: correction = arctan(19.16 x (d - 90.15) / (90.15 x d)), where d is the distance in mm (correction = 0 for d = 0). The correction is subtracted from the raw angle.
CS = 0x55AA ^ (CT | LSN << 8) ^ FSA ^ LSA ^ S1 ^ S2 ^ ... ^ Sn
Packets that begin with A5 5A are information packets (sensor model, firmware version) and are transmitted at startup.
Tutorial:
Real-time 2D map in Python, with FT232 USB-UART adapter:
Required:
M1C1 Mini LiDAR sensor.
FT232 USB-UART adapter, with the logic level jumper set to 3.3V.
5V power supply, minimum 500mA recommended.
Connection wires.
PC with Python 3.8 or newer.
Connections:
LiDAR M1C1
Connection
VCC
+5 V supply
GND
Supply GND and FT232 adapter GND
TX
FT232 adapter RXD
RX
Not connected
Do not power the sensor from the adapter’s VCC pin when it is set to 3.3V. The voltage is insufficient, and the available current is limited. Use a separate 5V supply or the adapter’s 5V pin, if it has one available separately.
Steps:
Set the FT232 adapter jumper to 3.3V and make the connections from the table above with the power disconnected.
Install the required libraries with the command below.
pip install pyserial matplotlib
Connect the adapter to the PC and identify the serial port. In Windows, the port appears in Device Manager, under "Ports (COM & LPT)", for example COM5. In Linux, the port is usually /dev/ttyUSB0, and the user must be part of the dialout group.
Power the sensor and wait for the rotation to stabilize.
Run the script with the command below, replacing COM5 with the identified port. If the port is not specified, the script selects it automatically. At startup, the script tests 115200 and 150000 baud rates and uses the one at which it receives valid packets.
python m1c1_viewer.py COM5
In the displayed window, the sensor is marked in the center, and 0° is oriented upward. In the upper-left corner, the communication speed (Baud), number of revolutions per second (Rev/s), number of points per second (Points/s), and number of valid and erroneous packets (Packets OK and Packets BAD) are displayed.
Troubleshooting:
Situation
Checks
No data received
Sensor TX to adapter RXD, common ground, 5 V present at the sensor, correct port selected
Sensor head does not rotate
Check the 5 V voltage at the connector and the power supply capacity. Some versions start rotation only on command: connect adapter TXD to sensor RX and set SEND_START_CMD = True in the script
Many erroneous packets
Check for wires that are too long or poor contacts, disconnected ground, and incorrect communication speed
Map is rotated
Adjust ANGLE_OFFSET_DEG in the script. The manufacturer indicates a 12° offset between the data zero point and the mark on the housing
Script in the Download section.
