Fork me on GitHub

Project Notes

#422 VL53L0X/LaserTapeMeasure

Using a VL53L0X ranging sensor to make a short-range laser tape measure with an Arduino and Nokia 5110 display.

Build

Notes

The VL53L0X is a very small Time-of-Flight (ToF) ranging sensor.

It is quite widely available as a module, including from Adafruit - see their information page.

For this project I’m taking the module for a test drive and building a short-range tape measure with an Arduino and Nokia 5110 display.

Robojax has a nice video on YouTube (and information page) that gives a good introduction to the chip and module:

clip

There are a few board designs around, this is quite common. It squeezes everything including regulator into a very small form factor:

module_front module_back

Construction

The VL53L0X module just needs power and I²C connections. Because the module has an onboard regulator, it can take either 3.3V or 5V from the Arduino.

Breadboard

Schematic

Code

The LaserTapeMeasure.ino sketch implements a simple tape measure with measurements displayed on a Nokia 5110 LCD.

Libraries used:

Note: I first tried to use the Adafruit PCD8544 and GFX libraries, but that proved just too much for the mighty memory of the Atmega328.

Library Hack

Adafruit_VL53L0X_Customised.h is a slightly customised version of Adafruit_VL53L0X.h from the Adafruit library. The change simply makes the DeviceInfo instance variable public so I can use that data in the splash screen.

Test Drive

The startup screen actually prints the device name and version as reported by the VL53L0X chip itself:

LaserTapeMeasure_startup

Range-finding in action:

Build

The effective range I’m seeing (with default settings) is from about 2cm to 50cm.

The device supports 4 different ranging profiles, including high accuracy and long range (up to 2m). I haven’t investigated those yet - and they don’t appear to be directly supported by the Adafruit_VL53L0X C++ interface class (requires going under the hood of the API).

Credits and References

About LEAP#422 SensorsArduinoLCD
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.