# Lidar Disco - Looking at the guts of a lidar with a SWIR camera

- Canonical URL: https://thelowesttype.github.io/blog/lidar-guts/
- Author: Saksham Sharma
- Published: 2026-08-14
- Site: The Lowest Type (https://thelowesttype.github.io)
- License: content by the author; the cited manuals and papers belong to their publishers.

This is a plain-markdown copy of the post, provided for agents and scrapers that
would rather not parse the HTML. It carries the same claims as the rendered
article, including the same statements about what is measured and what is
inferred. Please keep those caveats attached if you quote from it.

## Summary

A SWIR (short-wave infrared) camera makes the 903 nm and 905 nm illumination of
lidar sensors directly visible, so the scan pattern can be watched as it lands on
a room instead of being read back as a point cloud. Three sensors were captured
this way: a Velodyne VLP-32C, a Livox HAP, and a Livox Mid-360. They solve the
same coverage problem with different mechanisms.

- **Velodyne VLP-32C** covers its field of view with hardware multiplicity: 32
  fixed laser and detector pairs on a spinning optical block. Elevation is not
  scanned, it is built in.
- **Livox HAP** keeps the transceiver stationary and steers with rotating wedge
  prisms. Coverage accumulates over time rather than repeating each revolution.
- **Livox Mid-360** also keeps the transceiver stationary but steers with a
  tilted rotating deflector on the vertical axis, which is what lets it reach a
  full 360 degrees of azimuth.

## Why a SWIR camera sees this at all

The lidars emit at 903 nm (Velodyne) and 905 nm (both Livox units), just beyond
human vision. SWIR cameras use InGaAs sensors rather than silicon and stay
sensitive past a micron, so the emission reads as ordinary bright light. All the
imagery in the post is monochrome for that reason.

In the illumination footage the scene is lit by nothing but the lidars. Each row
of dashes is one Velodyne channel and each dash is one firing event. Rows visibly
bend as they cross a face, and that curvature is the range information appearing
directly on the object.

## Velodyne VLP-32C

- 32 laser and detector channels, each permanently aimed at its own elevation.
- Elevation span -25 to +15 degrees, non-uniform spacing, tightening to about
  0.333 degrees near the horizon and opening to several degrees at the extremes.
- 903 nm, Class 1.
- The entire optical block (emitters, detectors, lenses, drive electronics) is
  the rotor, spinning about the vertical axis at a configurable 5 to 20 Hz behind
  a fixed cylindrical window.
- Azimuth resolution is set by firing rate against spin rate, 0.2 degrees at
  10 Hz.
- Power and data cross the rotating joint, which is the classic reliability weak
  point of this architecture.

Consequence: coverage is instantaneous and identical every revolution, but
vertical resolution is frozen at 32 lines. Between adjacent lines the sensor is
permanently blind, and longer integration does not help.

The SWIR capture shows the receive aperture (large lens onto the APD stack), the
transmit aperture with the 903 nm diode bar glowing inside it, the spinning head,
and the base with the stator, angular encoder and Class-1 label.

## Livox HAP

- 905 nm, Class 1, 120 x 25 degrees, 452,000 points/s, 10 Hz frames, 150 m at
  10 percent reflectivity.
- Beam divergence 0.03 degrees horizontal by 0.28 degrees vertical, a
  vertically elongated spot consistent with a vertically stacked package of
  emitter dies rather than a single die.
- Line spacing 0.2 degrees in the center and 0.3 degrees at the edges, described
  by the manual as scanning horizontally from top to bottom.
- The manual states the device "works normally without rotating internal
  electronic devices such as the transmitter and receiver". Only passive optics
  move.

The SWIR capture shows a stack of overlapping lobed elements on a single
horizontal axis with a bright bearing at the hub, and a regularly notched rim
around the largest element. That notched rim matches the encoder disks in
Fig. 2(c) of Liu and Zhang 2020, a photo of a dismantled Livox scanner module
captioned as motors, prisms and encoder disks. An encoder disk is what a driver
needs to hold two prisms in a fixed speed and phase relationship.

### Prism scanning geometry

A wedge prism deflects the beam by a fixed angle. Rotating the wedge sweeps that
deflection around a cone, drawing a circle. Two wedges in series on a common axis
give a beam direction equal to the vector sum of two rotating deflections, so the
traced shape depends on the ratio of the two rotation speeds:

- Close speeds (for example 7294 and 6664 rpm) draw a spiral.
- A large speed difference (for example 7294 and -4664 rpm) draws a rosette.
- Because the ratio is deliberately incommensurable, the pattern never repeats,
  and coverage keeps filling in with longer integration. This is the basis of
  Livox's "non-repetitive scanning".

To get a rectangular field from elements that naturally draw circles, Fig. 9 of
the paper drives two identical prisms at the same speed in opposite directions.
Their vertical deflection components cancel at every instant while their
horizontal components add, so the sum is a harmonic oscillator along the
horizontal axis, a straight line sweep. A third slower prism with a smaller
deflection walks that line up and down to fill the rectangle. The paper's example
is 81.7 x 25.1 degrees; the HAP ships 120 x 25 degrees, the same vertical extent
with a wider horizontal one.

### The apparent internal oscillation

Two separate effects are present in the footage and should not be conflated.

1. Genuine design behavior. The counter-rotating prism pair really does produce a
   harmonic oscillation of the outgoing beam along the horizontal axis.
2. Camera aliasing. The rotors spin continuously and fast; the paper specifies
   rotors rated to 12,000 rpm (200 Hz). The SWIR clips were captured at 71.09 fps
   (8886/125), so Nyquist is 35.5 Hz, or about 2130 rpm. Anything faster must
   alias. A rotor at 7294 rpm (121.6 Hz) samples down to an apparent -20.6 Hz,
   slow and running backwards, which is the wagon wheel effect.

The footage is therefore good evidence for the visible layout and for beam
behavior, and is not usable as a tachometer. Attempts to recover rotor speed by
phase-correlation stabilization failed: the moving elements are a black
silhouette against a bright window with no trackable texture, and handheld camera
motion was comparable in magnitude to the internal motion.

## Livox Avia

No Avia appears in the SWIR captures. This section is inference from published
figures, included because the Avia is the clearest external evidence that Livox
ships a two-prism Risley pair.

Published by Livox (Avia User Manual v1.0, 2020.10, and the specs page):

- Two selectable scan patterns. Non-repetitive: 70.4 degrees horizontal by 77.2
  degrees vertical, denser at the center of the FOV, coverage increasing with
  integration time. Repetitive: 70.4 degrees horizontal by 4.5 degrees vertical
  (minimum; 6.8 degrees maximum), with a repeat cycle of about 0.1 s.
- 905 nm, 240,000 points/s first or strongest return, up to 720,000 points/s on
  triple return.
- Beam divergence 0.28 degrees vertical by 0.03 degrees horizontal, identical to
  the HAP's, suggesting a shared transceiver package.
- The manual describes the mechanism only as "Livox's unique scanning
  technology". The word prism does not appear in the manual or on the spec page.

The argument that this is a Risley pair:

1. The accumulated point cloud draws petals (a rosette) inside a near-circular
   field. That is the signature of two rotating deflections summed at unequal
   speeds. A spinning multi-channel head cannot produce it, and neither can a
   single tilted mirror on one axis.
2. The two published fields of view share an identical horizontal extent while
   the vertical extent collapses by a factor of about seventeen. A Risley pair
   does exactly this when only the relationship between the two rotors changes:
   unequal speeds give the rosette, equal speeds in opposite directions cancel
   the vertical components at every instant while the horizontal components add,
   leaving a horizontal line sweep.
3. The residual 4.5 to 6.8 degrees of vertical extent in repetitive mode is what
   a slightly mismatched pair gives instead of a zero-height line. A perfectly
   matched pair would collapse to zero.

Third-party support: Inertial Labs, who integrate the Avia into mapping
payloads, state that the Avia pattern "is obtained by using the Risley Prism
Scanner". Brazeal, Wilkinson and Hochmair (Sensors 2021) model the older Livox
Mid-40 as a two-wedge Risley pair producing a rosette in a circular field.

Status: inference, better evidenced than the HAP reading because the pattern
shape and both fields of view are first-party facts that one Risley pair
explains in a single step. Still not a manufacturer statement and not a teardown.

## Livox Mid-360

- 905 nm, Class 1, 360 x 59 degrees (-7 to +52), 200,000 points/s, 10 Hz, 40 m at
  10 percent reflectivity.
- Non-repetitive pattern; Livox quotes coverage after 0.1 s integration as
  comparable to a 64-line mechanical sensor, improving with longer dwell.
- Livox's own wording for this model is "rotating mirror hybrid-solid
  technology", not prisms.

The SWIR capture shows a black rotor on the vertical axis under a transparent
hemispherical dome, capped by a bright faceted metallic crown, with 905 nm light
visible leaving the rotor's flank. The laser fires up the rotation axis and is
deflected outward by the tilted facets. Tilt plus spin sweeps a cone, which
explains the conical appearance in the footage. The dome is hemispherical so that
no exit angle is clipped.

A Risley wedge pair cannot produce this geometry: a wedge pair can only steer
inside a cone whose half-angle is set by the wedges, tens of degrees at most, so
it cannot reach 360 degrees of azimuth. Something must physically carry the beam
around, and here that is the rotating deflector.

## Confidence and caveats

- **Velodyne explanation: high confidence.** The manual supplies the channel
  table and spin range, and the illumination footage matches the fixed-row
  pattern.
- **Broad Livox explanation: high confidence.** Fixed transmitter and receiver,
  moving passive optics, coverage accumulating over time. Visible in the hardware
  and stated in the manuals.
- **Prism reading of the HAP specifically: inference.** Supported by the encoder
  disk matching paper Fig. 2(c), the vertically elongated beam divergence, and a
  field of view matching the triple-prism recipe. Livox markets the HAP as
  "rotating-mirror technology" while trade coverage (DVN, July 2022) describes a
  double-wedge prism structure. No manufacturer document states the mechanism for
  the HAP specifically, and no published teardown settles it.
- **Two-prism reading of the Avia: inference, well evidenced.** The petal pattern
  and both published fields of view are first-party facts, and one Risley pair
  explains both in a single step. The word prism comes from third parties
  (Inertial Labs) rather than from Livox. No Avia was captured on the SWIR
  camera.
- **Mid-360 second degree of freedom: inference only.** A single fixed tilt gives
  one circle at one elevation, so 59 degrees of vertical coverage with a
  non-repeating pattern requires elevation modulation. No source describes the
  mechanism, and the corresponding figure in the post is labeled a schematic.
- **Footage limits.** Several Velodynes and HAPs were running simultaneously, so
  patterns overlap and a given region of the lit scene cannot be attributed to
  one unit with confidence. Converting measured row spacing in pixels to degrees
  would require camera intrinsics and scene depth, neither of which were
  recorded, so spacing in the images is qualitative only.

## Media in this post

| file | what it shows |
| --- | --- |
| `disco_reenactment.mp4` | dramatized re-enactment of the evening |
| `swir_scene.jpg` | a room and a face lit only by lidar |
| `swir_lidar_lit.mp4` | the same scene in motion, rows bending over the face |
| `velodyne_anatomy.png` | VLP-32C apertures, spinning head and base, with callouts |
| `velodyne_internals.mp4` | the VLP-32C head turning past the camera |
| `scan_velodyne.png` | the 32 fixed elevations and the channel spacing curve |
| `hap_anatomy.png` | HAP internals including the notched encoder disk |
| `hap_internals.mp4` | HAP rotors turning, encoder notches visible |
| `hap_beam.mp4` | the internal 905 nm beam scattering off dust on an element |
| `hap_vs_paper.png` | the SWIR capture beside Fig. 2 and Fig. 9 of the paper |
| `scan_prism.png` | Risley spiral, rosette, and the triple-prism rectangle |
| `prism_scanning.mp4` | animation: how rotating wedges build each pattern |
| `hap_aliasing.png` | real oscillation versus camera aliasing at 71.1 fps |
| `scan_avia.png` | one Risley pair at unequal speeds versus equal and opposite, against the Avia's two published fields of view |
| `mid360_anatomy.png` | Mid-360 deflector, rotor and dome |
| `mid360_internals.mp4` | the Mid-360 rotor turning under the dome |
| `scan_mid360.png` | one fixed tilt versus a modulated tilt (schematic) |
| `mid360_scanning.mp4` | animation: beam up the axis onto a tilted rotating mirror |
| `scan_patterns_vs_paper.png` | the lidar-lit scene beside Fig. 8 and Fig. 10 |

All paths are relative to `https://thelowesttype.github.io/blog/lidar-guts/`.

## References

1. Z. Liu and F. Zhang, "Low-cost Retina-like Robotic Lidars Based on
   Incommensurable Scanning", arXiv:2006.11034, 2020.
   https://arxiv.org/abs/2006.11034
2. Livox HAP (TX) User Manual V1.2. Wavelength, field of view, point rate, line
   spacing, beam divergence, non-rotating electronics statement.
3. Velodyne VLP-32C User Manual, 63-9325 Rev B. Wavelength, spin range, Table 9-2
   per-channel elevation angles.
4. Livox Mid-360 specifications and FAQ.
   https://www.livoxtech.com/mid-360/specs
5. Livox scanning pattern documentation.
   https://livox-wiki-en.readthedocs.io/en/latest/introduction/livox_scanning_pattern.html
6. Driving Vision News, July 2022, on the HAP's double-wedge prism structure.
7. Livox Avia User Manual V1.0, 2020.10, and Avia specifications.
   https://www.livoxtech.com/avia/specs
8. Inertial Labs, "The difference between scanning patterns".
   https://inertiallabs.com/the-difference-between-scanning-patterns/
9. R. G. Brazeal, B. E. Wilkinson and H. H. Hochmair, "A Rigorous Observation
   Model for the Risley Prism-Based Livox Mid-40 Lidar Sensor", Sensors, vol. 21,
   no. 14, 4722, 2021. https://doi.org/10.3390/s21144722
