Skip to main content

LRF50H UART protocol and integration

LRF50H High-Speed 50 m LiDAR Distance Sensor for Overhead Cranes, Carriage Distance Control and Industrial Safety

Typical applications: Overhead crane positioning, Carriage distance control, Industrial safety.

At a glance​

Protocol familyFamily B (5C, streaming)
Default baud460800 bps, 8N1
Frame4 bytes
Distance unit on the wirecentimetres
Measurement range (datasheet)0.05–50 m (90% refl.) · 0.05–15 m

Specification​

Values come from the ERDI datasheet for this model. Where the datasheet gives a condition, it is shown.

ParameterValueCondition
Laser wavelength905 nm
Ranging range0.05–50 m (90% refl.) · 0.05–15 m10% refl.
Ranging accuracy±5 cm (<10 m) · 1% (≥10 m), 2σ
Measurement frequency20 Hz–10 kHz, default 1 kHz
InterfaceUART
Supply voltage9–36 V DC
Dimensions38 × 20 × 30 mm
Weight15 ± 2 g
Laser safety classClass 1
Operating temperature-20 to +60 ℃ (non-condensing)
Field of view≈ 4 mrad
Repeatability±5 cm
Ambient light immunity45 m100 kLux
Aiming light650 nm visible red, Class 2 (switchable; auto-off below -20 ℃)
Peak current100 mA24 V
Average current34 mA24 V
Average power consumption0.8 W
Wire specification5-pin 1.25 mm terminal (M1250V-05P), 50 cm tinned loose wire
CustomizationAvailable in appearance / structure / output protocol

Pinout and wiring​

No.Definition / Wire ColorUser Interface
19~36V (Red)External Power +
2GND (Black)GND
3GND (Yellow)GND
4TX (Green)RX
5RX (Blue)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 EC is 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.
CommandRequest frame
Start ranging5A 0A 02 02 00 F1
Stop ranging5A 0A 02 00 00 F3

The full frame description is in Family B protocol. Try it without installing anything in the browser serial monitor.

Code examples​

pip install erdi-lrf # PyPI, MIT
erdi-lrf --port /dev/ttyUSB0 --model LRF50H stream --count 20
from erdi_lrf import ErdiLRF

# COM3 on Windows, /dev/ttyUSB0 or /dev/serial0 on Linux
with ErdiLRF("/dev/ttyUSB0", "LRF50H") 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)

Platform status​

Only rows with evidence say Verified. See the compatibility matrix for what that means and where the evidence is.

PlatformStatusGuide
Python (erdi-lrf)UntestedPython / Raspberry Pi / Jetson
Arduino / PlatformIOUntestedArduino / PlatformIO
ESPHome / Home AssistantUntestedESPHome
ROS 2UntestedROS 2
ArduPilot (Lua script)Verified (SITL)ArduPilot
ArduPilot native driverIn review (PR #34983, not merged)ArduPilot

Known issues​

  • Factory bench capture, 2026-11-06, wall at 1.9 m: 3 of 2000 frames carried a distance of 315 to 397 m with a valid checksum, far past the 50 m rating. Filter outliers in your application (median of a few readings). Capture notes.
  • 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​