XLIDAR Is A Merry-Go-Round Of Time-Of-Flight Sensors

[JRodrigo]’s xLIDAR project is one of those ideas that seemed so attractively workable that it went directly to a PCB prototype without doing much stopping along the way. The concept was to mount a trio of outward-facing VL53L0X distance sensors to a small PCB disk, and then turn that disk with a motor and belt while taking readings. As the sensors turn, their distance readings can be used to paint a picture of the immediate surroundings (at least within about 1 meter, which is the maximum range of the VL53L0X.)

The hardware is made to be accessible and has a strong element of “what you see is what you get.” The distance sensors are on small breakout boards, and the board turns the sensor disk via a DC motor and 3D printed belt drive. Even the method of encoding the disk’s movement and zero position has the same WYSIWYG straightforwardness: a spring contact and an interrupted bare copper trace on the bottom of the sensor disk acts as a physical switch. In fact, exposed copper traces in concentric circular patterns and spring pins taken from an SD card socket are what provide power and communications as the disk turns.

The prototype looks good and sounds like it should work, but how well does it hold up? We’ll find out once [JRodrigo] does some testing. Until then, the board designs are available on the project’s GitHub repository if anyone wants to take a shot at their own approach without starting from scratch.

38 thoughts on “XLIDAR Is A Merry-Go-Round Of Time-Of-Flight Sensors

    1. Based on the datasheet it depends which operating mode you are in.

      The speed of acquisition affects the maximum range but off the top of my head (read this 2 days ago) in normal mode, one read takes approx 90ms.. then a 360 scan is dependent upon the number of steps, speed of the stepper etc..

    2. I have used a lot of the VL6180X sensors recently, from the same family. There is different settings that could improve the measuring time. The best I have get is about 12ms on a white reflector into complete dark environment for a distance from 10mm to a bit more than 160mm, with a repeatability of about +/-2mm. After calibration and filtering you can hope to get 1mm precision at lower speed.
      With a VL53L0X on a open environment and others light source, there will certainly need many measures of the same point to get any usable precision. This will be a very very slow LIDAR.
      Passing I2C over a slip ring is usually not a problem as long as you don’t have any electrostatic discharge. This sensors have a unique ID and a writable I2C address, allowing to set each of then with a different I2C address. So If you know where are physically each sensors from there unique ID you can manage them from a single I2C bus.

    3. I looked at using these sensors for something like this a while back, but abandoned the idea when I saw how wide the spread on the sensor was. (more like a flashlight than a laser) Still, I would be interested in seeing how the scans compare to test scenes, especially with some software trickery to try and get a better picture (perhaps paying close attention to the rise/fall of distance measurements relative to position as it rotates to get something more related to a narrow cone in front of the sensor?)

          1. Mirrors from old HDD platters are near perfect.
            Mirrors out of old fladbed scanners are near perfect.
            Laserprinters are another hacker’s source of quality mirrors.
            Laserprintes also have a (6 to 12) faceted rotating mirror which might be excellent for this application.
            Small first-surface mirrors are … affordable. (CO2 lasers and such).

            Also, the VL53L0x only needs a very small mirror. Sawing off the axle of a small stepper motor under 45 degree and polishing it probably works, but glueing on a small piece of polished stainless steel or aluminimum is probably easier to do.

      1. Sending data through a makeshift slip ring is neither easy nor accurate. Can you explain this cross-talk and spherical aberration? One, it’s a single-point sample so even if you needed to use a curved mirror, distortion shouldn’t matter. Besides, if you’re spinning the mirror it can be flat.

        I’d bet that slip ring using pcb traces and sd card reader springs is going to be incredibly noisy and will require serious debounce and cleaning up in software. But we’ll see.

          1. I’d still be tempted to add a little conducive lubricant.
            I’ve played with inductive power and data transfer before now. If it were one sensor I’d be tempted to make a circular light pipe and add an IR link for the data. Sort of like an optocouper but able to rotate 360 degrees.

        1. If you are concerned with noise through the slip ring you could always use a differential pair.

          About 3/4 of the way through the datasheet of the sensor (see st.com) it gives you a very good explanation of the cross-talk so I won’t go into detail here :)

          Also regarding mirrors see my reply above.

          1. Does a differential pair help mitigate spikes caused by intermittent disconnects through the brushes? I was thinking about that moreso than EMI.

            The datasheet says those sensors have pretty sophisticated countermeasures against cross-talk specifically for a piece of glass or mirror between the sensor and the subject.

            And an imperfect or even fully curved mirror still wouldn’t be of concern for a point sample. it’s not capturing a 2d image. The angle of the glass at that point is the angle, the rest of the mirror can be ignored–or am I missing something important here?

          1. My idea also. The “normal” wire is not really usable forlongevety and you need to use very thin multi stranded wires and make sure it is not bent sharply. Bending the wire 3 to 8 times around the axle in a spiral form (with some guides on the side) would be excellent.

        2. Xiaomi uses very interesting way to transmit data – LED and light senson placed on axis of rotation.
          It could be small stm32 or avr on rotating platform gathering data via i2c and serialize it to LED. MCU even can make some filtering.

  1. It would be interesting to see if the range of these could be increased with some optics on the front. I successfully coupled the previous version of this sensor to some optic fibres, but the sensor still “times out” if you have more than ~100mm of fibre.

  2. Some thoughts: You could angle the sensors at different elevations to provide some ability to detect height. Also you could send the signals wirelessly so that the slip rings are only required to supply power. This could be done using an IR LED and detector facing downwards/upwards on the axis. Alternatively you could use an ESP8266 module using wifi or a small Bluetooth module or some other wireless module. They are cheap and small enough to make that viable.

    1. I like this idea. Make it more radical. This sensor’s Field Of View (FOV) is 25 degrees. Mount one at 0 one +25 other -25 then you will get an up and down FOV of 100 degrees. Would be interesting. I have played with these chips they are great chips.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.