JetsonHacks

Developing on NVIDIA® Jetson™ for AI on the Edge

Single Chip LIDAR – VL53L0X – NVIDIA Jetson Dev Kits

ST Microelectronics recently introduced an inexpensive single chip time of flight sensor. The VL53L0X can be interfaced to a Jetson Development Kit (either TX1 or TK1) over I2C. Looky here:

Background

The last couple of years have seen a major push towards solid state LIDAR. As autonomous vehicles, robotics and mobile technologies become more prevalent, LIDAR sensing is working towards becoming less expensive and more robust. There have been several announcements for solid state LIDARs recently, ST Microelectronics has begun shipping a new generation of Time-of-Flight laser-ranging module housed in the smallest package on the market today, the VL53L0X.

Here’s a quick view from the ST Microelectronics web site:

The VL53L0X is a new generation Time-of-Flight (ToF) laser-ranging module housed in the smallest package on the market today, providing accurate distance measurement whatever the target reflectances unlike conventional technologies. It can measure absolute distances up to 2m, setting a new benchmark in ranging performance levels, opening the door to various new applications.

The VL53L0X integrates a leading-edge SPAD array (Single Photon Avalanche Diodes) and embeds ST’s second generation FlightSenseTM patented technology.

The VL53L0X’s 940nm VCSEL emitter (Vertical Cavity Surface-Emitting Laser), is totally invisible to the human eye, coupled with internal physical infrared filters, it enables longer ranging distance, higher immunity to ambient light and better robustness to cover-glass optical cross-talk.

The package is 4.4 x 2.4 x 1.0 mm.

VL53L0X Carrier Board

Pololu Robotics & Electronics sells a carrier/breakout board for the VL53L0X for ~ $14 USD at the time of this writing. Money quote from the Pololu website:

The VL53L0X is a great IC, but its small, leadless, LGA package makes it difficult for the typical student or hobbyist to use. It also operates at a recommended voltage of 2.8 V, which can make interfacing difficult for microcontrollers operating at 3.3 V or 5 V. Our breakout board addresses these issues, making it easier to get started using the sensor, while keeping the overall size as small as possible.

The carrier board includes a low-dropout linear voltage regulator that provides the 2.8 V required by the VL53L0X, which allows the sensor to be powered from a 2.6 V to 5.5 V supply. The regulator output is available on the VDD pin and can supply almost 150 mA to external devices. The breakout board also includes a circuit that shifts the I²C clock and data lines to the same logic voltage level as the supplied VIN, making it simple to interface the board with 3.3 V or 5 V systems, and the board’s 0.1″ pin spacing makes it easy to use with standard solderless breadboards and 0.1″ perfboards. The board ships fully populated with its SMD components, including the VL53L0X, as shown in the product picture.

For a similar but shorter-range sensor (up to 20 cm, or 60 cm with reduced resolution) that includes ambient light sensing functionality, see our VL6180X carrier.

In addition, Pololu wrote a library for the VL53L0X to interface with an Arduino. The JetsonHacks library JHVL53L0X is based on the Pololu library.

Wiring

Make sure that the Jetson is turned off before wiring.

NVIDIA Jetson TX1 Development Kit

The software library defaults to using I2C bus 0. Wire the Jetson TX1 J21 header to the VL53LV0X carrier board as follows:

Jetson TX1
J21 Pin 1 (3.3V) → VL53L0X Vin
J21 Pin 6 (GND) → VL53L0X GND
J21 Pin 3 (SDA) → VL53L0X SDA
J21 Pin 5 (SCL) → VL53L0X SCL

NVIDIA Jetson TK1 Development Kit

The software library defaults to using I2C bus 0. Wire the Jetson TK1 J3A1 header to the VL53LV0X carrier board as follows:

Jetson TK1
J3A1 Pin 10 (3.3V) → VL53L0X Vin
J3A1 Pin 2 (GND) → VL53L0X GND
J3A1 Pin 21 (SCL) → VL53L0X SCL
J3A1 Pin 23 (SDA) → VL53L0X SDA

Software Setup and Installation

Note: The demonstration was filmed after flashing the Jetson with JetPack 2.3.
Once the board is wired up, turn the Jetson on.
Install the JHVL53L0X library:

$ git clone https://github.com/jetsonhacks/JHVL53L0X.git
$ cd JHVL53L0X
$ ./installPre.sh

The install script installs the i2c tools and development libraries, and enables I2C to be accessed from user space.

After installation, in a Terminal execute:

$ sudo i2cdetect -y -r 0

ubuntu@tegra-ubuntu:~$ sudo i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: — — — — — — — — — 29 — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — —

You should see an entry of 0x29, which is the default address of the VL53L0X.

Example Demos

The directory ‘example’ contains two examples. The first example prints the distance in millimeters of an object from the sensor to the console.

$ cd example
$ make
$ ./example

The second example plots the distance of an object from the sensor. The second example assumes that Qt Creator is installed. In a file browser, open JHVL53L0X->example->LidarPlotExample. The project file is named LidarPlotExample.pro. Compile and run the example.

Equipment and Supplies

Here’s some of the equipment used in the video:

New to electronics? This is a pretty easy project, looky here: Electronics Tutorials for some introductory material on how to start becoming a master.

Conclusion

There are many uses for an inexpensive 1D LIDAR. Availability of an inexpensive 1D LIDAR chip for close range sensing marks an important stepping stone to bringing autonomous robots into more wide spread use. By placing the VL53L0X on a hobbyist accessible carrier board, Pololu is enabling an intriguing number of possibilities for new projects.

Facebook
Twitter
LinkedIn
Reddit
Email
Print

6 Responses

  1. Perfect for the blind spot the Zed camera has up close. Although one this size and price point with say a 30m range would really be awesome. Nice find.

    1. One fun idea on a robotic application is to replace what is typically a sonic or IR sensor bumper ‘skirt’ which is used to stop when objects are extremely close. There will be several sonar or IR sensors used to help avoid objects that are very close.

      The one chip application weight and size makes it relatively easy to scatter several around the robot. A lot of robots don’t have a good ‘backup sensor’ for when the robot runs into something going forward and then reverses, some just backup assuming that the coast is clear.

Leave a Reply

Your email address will not be published. Required fields are marked *

Disclaimer

Some links here are affiliate links. If you purchase through these links I will receive a small commission at no additional cost to you. As an Amazon Associate, I earn from qualifying purchases.

Books, Ideas & Other Curiosities