vl53l4cd-ulp

Crates.iovl53l4cd-ulp
lib.rsvl53l4cd-ulp
version0.1.1
created_at2025-08-22 17:19:48.094628+00
updated_at2025-08-22 17:59:02.545012+00
descriptionno_std ultra-low-powerdriver for the VL53L4CD
homepage
repositoryhttps://github.com/liebman/vl53l4cd-ulp
max_upload_size
id1806664
size93,035
(liebman)

documentation

https://docs.rs/vl53l4cd-ulp

README

vl53l4cd-ulp

Crates.io Documentation License

An ultra-low-power Rust driver for the VL53L4CD time-of-flight distance sensor. This no_std crate provides both sync and async variants that integrates with the embedded-hal ecosystem.

Getting Started

Add the dependency to your Cargo.toml:

[dependencies]
vl53l4cd-ulp = "0.1.1"

Basic Usage

use vl53l4cd_ulp::VL53L4cd;

let i2c = /* your I2C implementation */;
let delay = /* your delay implementation */;

let mut sensor = VL53L4cd::new(i2c, delay);
sensor.sensor_init().unwrap();
sensor.start_ranging().unwrap();

if sensor.check_for_data_ready().unwrap() {
    let measurement = sensor.get_estimated_measurement().unwrap();
    println!("Distance: {} mm", measurement.estimated_distance_mm);
    sensor.clear_interrupt().unwrap();
}

Power Optimization

// Use minimum ROI for lowest power consumption
sensor.set_roi(4).unwrap();

// Set longer measurement intervals
sensor.set_inter_measurement_in_ms(1000).unwrap();

// Configure interrupt thresholds
sensor.set_interrupt_configuration(
    100, 500, InterruptOn::InWindow
).unwrap();

Crate Features

The crate can be compiled with the following features:

  • async: Enables async I²C support
  • log: Enables logging via the log crate
  • defmt: Enables logging via the defmt crate

Error Handling

use vl53l4cd_ulp::Error;

match sensor.sensor_init() {
    Ok(()) => println!("Sensor initialized"),
    Err(Error::Timeout) => println!("Initialization timed out"),
    Err(Error::I2cError(e)) => println!("I2C error: {:?}", e),
    _ => println!("Other error"),
}

License

Licensed under either of

at your option.

References

Commit count: 7

cargo fmt