MysteryLidar: Difference between revisions
Jump to navigation
Jump to search
Line 22: | Line 22: | ||
From the Aliexpress page: | From the Aliexpress page: | ||
<blockquote> | <blockquote> | ||
Baud: 230400; Packet_length=60Bytes (in every ~4ms period) B0= 0x55 B1=0xAA B2=0x23 B3=0x10 B4+B5=current resolution LSB+MSB B6+B7= Start Angle of this packet LSB+MSB 16x: B8:B9= Distance LSB+MSB B10= Quality (1 byte only) . . . B56+B57= Final Angle of this packet (LSB+MSB) B58+B59= CRC | Baud: 230400; | ||
Packet_length=60Bytes (in every ~4ms period) | |||
* B0= 0x55 | |||
* B1=0xAA | |||
* B2=0x23 | |||
* B3=0x10 | |||
* B4+B5=current resolution LSB+MSB | |||
* B6+B7= Start Angle of this packet LSB+MSB | |||
* 16x: | |||
** B8:B9= Distance LSB+MSB | |||
** B10= Quality (1 byte only) . . . | |||
* B56+B57= Final Angle of this packet (LSB+MSB) | |||
* B58+B59= CRC | |||
</blockquote> | </blockquote> | ||
Revision as of 23:48, 3 August 2024
Project MysteryLidar | |
---|---|
Aliexpress Mystery Lidar | |
Status | In progress |
Contact | bertrik |
Last Update | 2024-08-03 |
Introduction
I bought a cheap lidar from AliExpress, no guarantees, no datasheets. This page is about understanding it and reverse engineering the protocol
Hardware
Has stickers with the following codes:
- on the side of the plastic casing: data matrix HHCT3B6X9K00863
- on the PCB: data matrix FW0251022426001437
- next to the power/data connector: 2d bar code 20617158
Protocol
Serial bit rate is 23400 bps
From the Aliexpress page:
Baud: 230400; Packet_length=60Bytes (in every ~4ms period)
- B0= 0x55
- B1=0xAA
- B2=0x23
- B3=0x10
- B4+B5=current resolution LSB+MSB
- B6+B7= Start Angle of this packet LSB+MSB
- 16x:
- B8:B9= Distance LSB+MSB
- B10= Quality (1 byte only) . . .
- B56+B57= Final Angle of this packet (LSB+MSB)
- B58+B59= CRC
The angle is encoded in steps of 1/64 degree, with a 640 offset.
Some numbers:
- each packet is 60 bytes
- each packet contains 16 measurements
- each packet contains data for 10 degrees
- there are about 35 packets per rotation
- there are about 6 rotations per second
=> 6 rotations/s * 36 packets * 60 bytes = 12960 bytes/s
Example packet:
55 aa 23 10 ec 59 ac f7 7f 40 cd 7f 40 cc 7f 40 cf 7f 40 c6 7f 40 bf 7f 40 b4 80 40 b9 80 40 ba 80 40 bc 80 40 ba 80 40 b5 80 40 d0 81 40 ca 81 40 c2 82 40 c2 82 40 c8 0e a0 cd 2e
angle
number encoded = 640 + 64*angle, for example