LRF200H UART protocol and integration
LRF200H 200 m Industrial DToF LiDAR Distance Sensor for Port Cranes, Long Conveyors and Tunnel Safety
Typical applications: Port & bridge crane positioning, Long conveyor protection, Tunnel collision avoidance.
At a glance
| Protocol family | Family B (5C, streaming) |
| Default baud | 460800 bps, 8N1 |
| Frame | 4 bytes |
| Distance unit on the wire | centimetres |
| Measurement range (datasheet) | 0.05–200 m (90% refl.) · 0.05–70 m |
Specification
Values come from the ERDI datasheet for this model. Where the datasheet gives a condition, it is shown.
| Parameter | Value | Condition |
|---|---|---|
| Laser wavelength | 905 nm | |
| Ranging range | 0.05–200 m (90% refl.) · 0.05–70 m | 10% refl. |
| Ranging accuracy | ±10 cm (<10 m) · 1% (≥10 m) | |
| Measurement frequency | 20 Hz–10 kHz, default 1 kHz | |
| Interface | UART / I²C | |
| Supply voltage | 9–36 V DC | |
| Dimensions | 33 × 34 × 18 mm | |
| Weight | 20 ± 2 g | |
| Laser safety class | Class 1 | |
| Operating temperature | -20 to +60 ℃ | |
| Field of view | ≈ 4 mrad | |
| Repeatability | ±5 cm (<10 m) · ±10 cm | 200 m |
| Ambient light immunity | 100 kLux | |
| Peak current | 100 mA | |
| Average current | 30 mA | |
| Average power consumption | 0.7 W | |
| Wire specification | 1.25 mm, 5-pin, 50 cm stranded wires | |
| Customization | Available in appearance / structure / output protocol |
Pinout and wiring
| No. | Definition / Wire Color | User Interface |
|---|---|---|
| 1 | 9-36V (Red) | External power positive |
| 2 | Power GND (Black) | External power negative |
| 3 | Port GND (Yellow) | GND |
| 4 | TX (Green) | Host RX |
| 5 | RX (Blue) | Host TX |
Cross TX and RX (module TX to host RX), share ground, and power the module from a supply that matches the supply voltage in the specification table. See Wiring and power.
Protocol summary
- Data frame: 4 bytes,
5C <dist_lo> <dist_hi> <check>, free-running. - Default baud: 460800 bps, 8 data bits, 1 stop bit, no parity.
- Distance: 2 bytes, little-endian, unit centimetres. The VB series reports millimetres and the H series centimetres, so
5C 02 11 ECis 4.354 m on a VB module and 43.54 m on an H module. - Out-of-range marker: the module outputs 65535 when there is no valid target. Treat it as no target, not as a distance.
- Checksum: bitwise inverse of the 8-bit sum of all bytes between the header and the check byte.
The full frame description is in Family B protocol. Try it without installing anything in the browser serial monitor.
Code examples
- Python
- Arduino
- ESPHome
- ROS 2
pip install erdi-lrf # PyPI, MIT
erdi-lrf --port /dev/ttyUSB0 --model LRF200H stream --count 20
from erdi_lrf import ErdiLRF
# COM3 on Windows, /dev/ttyUSB0 or /dev/serial0 on Linux
with ErdiLRF("/dev/ttyUSB0", "LRF200H") as lrf:
for r in lrf.stream():
print("out of range" if r.out_of_range else f"{r.metres:.3f} m", "raw", r.raw)
#include <ErdiLRF.h>
ErdiLRF lrf(Serial1, ERDI_LRF200H);
void setup() {
Serial.begin(115200);
Serial1.begin(erdiDefaultBaud(ERDI_LRF200H)); // 460800 baud; ESP32: Serial1.begin(baud, SERIAL_8N1, RX_PIN, TX_PIN)
lrf.setTimeout(1000);
}
void loop() {
ErdiMeasurement m;
if (lrf.measure(&m) == ERDI_OK) {
Serial.println(m.metres, 3);
}
delay(200);
}
external_components:
- source: github://ErdiTech/erdi-lrf-home-assistant
components: [erdi_lrf]
uart:
id: lrf_uart
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 460800
sensor:
- platform: erdi_lrf
uart_id: lrf_uart
model: LRF200H
name: "Laser distance"
update_interval: 1s
cd ~/ros2_ws/src && git clone https://github.com/ErdiTech/erdi_lrf_driver.git
cd ~/ros2_ws && rosdep install --from-paths src --ignore-src -y && colcon build --packages-select erdi_lrf_driver
source install/setup.bash
ros2 launch erdi_lrf_driver erdi_lrf.launch.py port:=/dev/ttyUSB0 model:=LRF200H rate:=10.0
ros2 topic echo /range
Platform status
Only rows with evidence say Verified. See the compatibility matrix for what that means and where the evidence is.
| Platform | Status | Guide |
|---|---|---|
| Python (erdi-lrf) | Untested | Python / Raspberry Pi / Jetson |
| Arduino / PlatformIO | Untested | Arduino / PlatformIO |
| ESPHome / Home Assistant | Untested | ESPHome |
| ROS 2 | Untested | ROS 2 |
| ArduPilot (Lua script) | Verified (SITL) | ArduPilot |
| ArduPilot native driver | In review (PR #34983, not merged) | ArduPilot |
Known issues
- UART logic level is not stated as a separate field for most models. Supply voltage is not the UART voltage: check the module's TX level against your host before wiring, or ask us.
Resources
- Model page with datasheet download: https://erdilrf.com/models/lrf200h/
- Datasheet and specification page: LRF200H datasheet and specs
- Interactive 3D view: LRF200H 3D viewer
- STEP model: available on request, Request STEP
- Drivers and protocol notes: ErdiTech/erdi-lrf-drivers
- Questions: tommy@erdimail.com, +86 133 0819 5790