Skip to main content

LRF50VB UART protocol and integration

LRF50VB 50m Single-Point DToF LiDAR Sensor for Industrial Automation, AGV and Traffic Safety Monitoring

Typical applications: Industrial automation, AGV & robot obstacle avoidance, Traffic safety monitoring.

At a glance​

Protocol familyFamily B (5C, streaming)
Default baud460800 bps, 8N1
Frame4 bytes
Distance unit on the wiremillimetres
Measurement range (datasheet)0.05–50 m (90% refl.) · 0.05–20 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–20 m10% refl.
Ranging accuracy±5 cm (<5 m) · 1% (≥5 m)
Measurement frequency100 Hz
InterfaceUART / I²C
Supply voltage3.3–5 V DC
Dimensions18.7 × 11.8 × 13.3 mm
Weight1.3 g
Laser safety classClass 1
Operating temperature-20 to +60 ℃
Field of view1.9°
Repeatability±30 mm
Ambient light immunity10 m60 kLux
Peak current70 mA5 V
Average current40 mA5 V
Average power consumption0.2 W
Wire specification4-pin 1.0 mm terminal, 10 cm tinned stranded wires
CustomizationAvailable in appearance / structure / output protocol

Pinout and wiring​

PINDefinition / Wire ColorUser Interface
1GND (Black)External Power -
23.3-5V (Red)External Power +
3RX (SDA) (Green)TX (SDA)
4TX (SCL) (Yellow)RX (SCL)

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 millimetres. 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 50000 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 LRF50VB stream --count 20
from erdi_lrf import ErdiLRF

# COM3 on Windows, /dev/ttyUSB0 or /dev/serial0 on Linux
with ErdiLRF("/dev/ttyUSB0", "LRF50VB") 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)UntestedArduPilot
ArduPilot native driverIn review (PR #34983, not merged)ArduPilot

Known issues​

  • The printed example request for reading the serial number does not reproduce with the datasheet's own checksum function. The streaming data frames follow the checksum rule above; build command frames with the rule, not by copying the printed bytes.
  • 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​