0x416c6578.github.io

LDS-006 Lidar

Blog Posts

The blog posts are more related to some of the work that went into this page, as well as some of my thoughts on things:

(Mis)adventures With the LDS-006 Lidar
Updates on the LDS-006 Lidar
Fixing Periodic Resets of LDS-006 CPU
First Attempts at Decoding Serial Data
Hardware Hacking and other Serial Data Stuff

Hidden Driver Code

Thanks to the help of https://github.com/opravdin, the code and information for a driver for the LDS-006 was found on 19.11.21. The protocol seems to match up with the data I am receiving, although I am yet to do the calculations on distance etc. here is the link to the ungoogleable GitHub repository containing the code and info, put through Google translate to English from Chinese.

General Overview

The LDS-006 is a 360 degree lidar commonly found in the Ecovacs DeeBot line of robotic vacuums. Generally a part similar to the LDS-006 would cost over £50, with many higher end ones costing over £100 (see here for reference). However this lidar could be found for as little as $7 (plus shipping and tax) on Aliexpress, listed as being salvaged / taken from Ecovacs vacuums.

My motivation for messing with these modules came from a Marco Reps video where he messes with a Xiaomi vacuum lidar. The price of such modules put me off for some time, but after discovering the LDS-006 I knew I wanted to mess with it.

Hardware

There are 4 wires coming from the module. They are:

black: GND
red: VCC (5v)
blue: UART TX (3v3)
green: UART RX (3v3)

The module has two distinct parts to it; first is the spinning assembly with laser, and second is the motor control / serial comms board.

Spinning Assembly

The spinning assembly contains a main board which handles power supply stuff, and a daughter board which houses an ADC and a GD32F[something] microcontroller. [More info to come here in the future]

Power is inductively coupled to the spinning part, and data is sent back via an infrared LED and IR receiver on the controller board.

Controller Board and Motor Assembly

This board handles power supply stuff, data handling, and serial comms control. The main microcontroller is a GD32F130P6F6 on the top right of the board.

Connections to the uC

Serial Data

[TODO]