LR2000E4 UART protocol and integration
LR2000E4 905 nm Laser Ranging Module
Typical applications: Long-range industrial, Outdoor systems, Surveying.
At a glance
| Protocol family | Family A (55 AA, polled) |
| Default baud | 115200 bps, 8N1 |
| Frame | 8 bytes |
| Distance unit on the wire | metres x 10 |
| Measurement range (datasheet) | 4–2,000 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 ± 5 nm | |
| Ranging range | 4–2,000 m | Target and ambient conditions not stated |
| Ranging accuracy | ±1 m (≤400 m) · D×0.4% (400–2,000 m) | |
| Ranging frequency | 2–10 Hz adaptive | Adaptive |
| Interface | UART-TTL | Customizable |
| Supply voltage | 3.3–5 V | |
| Dimensions | On request | |
| Weight | On request | |
| Protection rating | On request | |
| Operating temperature | On request |
Pinout and wiring
The pin table for this exact variant is in the model datasheet (see Resources). The connector and wire specification is in the specification table above.
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
- Frame: 8 bytes, header
55 AA, then function code, four data bytes, checksum. - Default baud: 115200 bps, 8 data bits.
- Transmit checksum: lower 8 bits of function code + D1..D4 (the header is not included).
- Reply checksum: lower 8 bits of header H + header L + function code + D1..D4 (the header is included). The two formulas differ on purpose.
- Reply to a ranging command:
55 AA <fn> STA FF DIS_H DIS_L SUM.STA = 1means the measurement succeeded. - Distance:
DIS_H:DIS_Lis the measured value in metres multiplied by 10.
| Command | Request frame |
|---|---|
| Single-shot ranging | 55 AA 88 FF FF FF FF 84 |
| Continuous ranging | 55 AA 89 FF FF FF FF 85 |
| Stop ranging | 55 AA 8E FF FF FF FF 8A |
| Angle measurement | 55 AA 8A FF FF FF FF 86 |
The full frame description is in Family A 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 LR2000E4 measure
from erdi_lrf import ErdiLRF
with ErdiLRF("/dev/ttyUSB0", "LR2000E4") as lrf: # COM3 on Windows
r = lrf.measure() # single-shot (0x88)
print(f"{r.metres:.3f} m", "raw", r.raw)
#include <ErdiLRF.h>
ErdiLRF lrf(Serial1, ERDI_LR2000E4);
void setup() {
Serial.begin(115200);
Serial1.begin(erdiDefaultBaud(ERDI_LR2000E4)); // 115200 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: 115200
sensor:
- platform: erdi_lrf
uart_id: lrf_uart
model: LR2000E4
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:=LR2000E4 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) | Untested | ArduPilot |
| ArduPilot native driver | No driver yet | 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/lr2000e4/
- Datasheet and specification page: LR2000E4 datasheet and specs
- Interactive 3D view: LR2000E4 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