Platform agnostic driver for TSL256x series light intensity sensors built using the embedded-hal
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

tsl256x Light-To-Digital Converter Docs Docs

Platform agnostic driver for TSL256x series of light intensity sensors built using the embedded-hal

What works

  • Getting raw sensor readings for both visible+IR spectrum and IR-only spectrum
  • Using one of the three built in slave addresses, or any custom address
  • Powering the chip on/off to conserve energy
  • Setting sensor gain and integration time


  • Add method to perform lux calculation (requires nostd implementation of exponentiation for f32)
  • Add method to setup interrupts
  • Support the TSL2560 (SPI version)


    extern crate tsl256x;
    use tsl256x::{Tsl2561, SlaveAddr};
    let sensor = Tsl2561::new(&mut i2c, SlaveAddr::default().addr()).unwrap();
    sensor.power_on(&mut i2c); 
    // Note sensor readings are zero until one integration period (default 400ms) after power on
    iprintln!(&mut cp.ITM.stim[0], "IR+Visible: {}, IR Only: {}",
                        sensor.visible_and_ir_raw(&mut i2c).unwrap(),
                        sensor.ir_raw(&mut i2c).unwrap());


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.