Two ERDILRF 905 nm modules can both be sold as “1,200 m” and still disagree about the closest thing they can measure: the published floor is 0.1 m on the SPD1200S2G, 0.2 m on the SPD1200N0/N2/N4 and SPD1200D03, 4 m on the LR1200E2, and 5 m on the LRF1200A1. If a calibration plate or fixture wall sits 1 m in front of the lens, the last two report no target at any distance. The datasheet headline is a maximum; the floor is a separate specification, and its raw marker is often the same code the documentation uses for “no target.”
The published floor is not one number
Read from ERDILRF’s current model documentation on 8 October 2026, the closest stated measuring distance across the published catalogue is:
| Family or model | Closest stated distance | Stated maximum |
|---|---|---|
| LRF50H · LRF100H · LRF200H · LRF300H · LRF600H · LRF1500H | 0.05 m | 50 – 1,500 m |
| LRF50VB · LRF22VB · LRF10VB | 0.05 m | 50 m · 20 m · 9 m |
| SPD1200S2G | 0.1 m | 1,200 m (max 1,400 m) |
| SPD1200N0 · SPD1200N2 · SPD1200N4 | 0.2 m | 1,200 m |
| SPD1200D03 | 0.2 m | ≥1,200 m |
| LR1000E2 · LR1000E4 · LR1200E2 · LR1200E4 · LR1500E2 · LR1500E4 · LR2000E2 · LR2000E4 | 4 m | 1,000 – 2,000 m |
| LRF1200A1 | ≥5 m | 1,200 m |
| LRF3000A1 | 1 m | ≥3,000 m |
Three consequences follow directly from the table. The floor does not track the maximum: the shortest-range module here (LRF10VB, 9 m) and the longest-range one (LRF1500H, 1,500 m) share the same 0.05 m figure, while the LRF1200A1 floor is 50 times further out than the SPD1200S2G’s. A family is not a substitute for a model: the eight LR-E models share a 4 m floor across a 1,000–2,000 m spread, and that 4 m is not the figure to carry over to an H-series or SPD unit. And the SPD1200N0, N2 and N4 do not all document the entry in the same terms — N0 and N2 state a measurement range of 0.2–1,200 m, whereas the N4 documentation states the same 0.2–1,200 m under a ranging-distance row. Read the row in the file for the specific part number.
What the floor actually is
A time-of-flight module decides when the receive window opens, and a return that arrives earlier than that is not recorded as
a short distance; it is simply not recorded. The floor is therefore a timing and detection property of the module, not an accuracy statement. It is the distance below which a real echo is no longer counted, and it is set independently of how far the module can measure. Moving a target closer than the floor does not produce a smaller number.
ERDILRF’s own documentation does not give a per-model optical explanation for each floor value, and this note does not invent one: only the floor distances above are documented figures. What the documentation does show is how the floor is reported at the interface, and that part is measurable from the frames in the same pages.
The same marker is used for “too close” and “no target”
Across both protocol families documented by ERDILRF, the out-of-range value is a single reserved raw code, and it is not a distance:
| Model | Distance field and reserved code |
|---|---|
| LRF50H · LRF100H · LRF200H | 2 bytes, centimetres, range 0–65535; out of range outputs 65535 |
| LRF300H · LRF600H | 2 bytes, centimetres, range 0– 65535; out of range outputs 65535 |
| LRF1500H | 3 bytes, centimetres, range 0– 16777215; out of range outputs 16777215 |
| LRF50VB | 2 bytes, millimetres, range 0–50000; out of range outputs 50000 |
| LRF22VB | 2 bytes, millimetres, range 0– 20000; out of range outputs 20000 |
| LRF10VB | 2 bytes, millimetres, range 0–65535; out of range outputs 65535 |
Two host-side traps sit in that table. First, the reserved code is family-dependent, and the same decimal 65535 means two different things. In the H-family it is a centimetre-scale marker; in the LRF10VB it is a millimetre-scale marker. A parser written from one model and reused on the other family keeps decoding a number that is not a distance. Second, a decoder that subtracts or scales without checking the sentinel first turns 65535 into a plausible large reading, and 16777215 into a value larger than any real target on that model.
Where the module reports the reserved code, the raw frame cannot distinguish “echo arrived earlier than the receive window” from “no echo at all.” A unit standing 0.5 m from a plate can therefore look identical on the wire to one pointed at empty sky. Only the mounting geometry says the target is inside the floor; the frame does not.
This also explains a common bring-up report. If a test fixture places a reference surface inside the module’s floor, the host loop legitimately sees the reserved marker. That is not a decoding bug and not necessarily a faulty unit, and no setting in the protocol pages moves the optical floor. Change the geometry or the part, not the parser.
A quick check that survives a real fixture
Before blaming firmware or hardware during a bring-up, run the following in order and keep the raw frames:
- Read the floor and validity row for the exact part number you mounted — not for the family, and not for another model with the same headline maximum.
- Measure the true lens-to-nearest-surface distance, including any plate, fixture wall or protective window, and record it next to the datasheet floor with its unit.
- Decode the sentinel before any scaling or averaging, and log the raw two- or three-byte field plus the decode result.
- If the target is inside the floor, reproduce the reserved code with a target far outside the floor, and compare the two raw frames.
- Move the reference target outside the floor and confirm the code clears, without changing any host setting in between.
- Keep both records. A marker that appears inside the floor and disappears outside it documents the behaviour far better than a screenshot of a blank display.
A marker alone is not a defect, and a successful long-range reading does not establish the floor. Treat both as untested until your own geometry is measured.
Why a single number needs its condition attached
A floor quoted as “0.05 m” looks like a calibrated measurement, so it is worth separating what that number can and cannot mean. The official NIST Technical Note 1297 on evaluating and expressing uncertainty treats a manufacturer’s specification as a Type B input — a value based on scientific judgement and available information — rather than a Type A result obtained from a statistical analysis of repeated observations. Its section 4 also explains how a quoted interval with a stated confidence level is converted to a standard uncertainty by dividing by a coverage factor, 1.960 at 95 percent confidence and 2.576 at 99 percent. The point for a specification table is not that the floor value is wrong: it is that repeating one number without its condition, its unit and its purpose restates a specification rather than a measured result. Keep the condition beside the number.
That is also why the guide to the fields in a laser rangefinder module datasheet separates range, minimum range and validity handling, and If your integration places a target inside the floor, or you are comparing two part numbers whose floors differ, send the model you are evaluating, your closest lens-to-target surface distance and the raw frames you captured. Documentation-level questions of that kind are answered through the ERDILRF contact page.