Skip to content

VEML6075

Vishay VEML6075 UVA / UVB light sensor over I²C.

Live catalog

Prefer labwired_describe with the catalog id over guessing pins or addresses.

Status at a glance

Aspect Status
Catalog id veml6075
Bus I²C
Address 0x10 (fixed)
Datasheet Vishay VEML6075 Document 84304 Rev. 1.2: Table 1 command codes, Table 2 UV_CONF, Table 5, basic characteristics
Source configs/devices/veml6075.yaml (declarative, no Rust model)
Tier smoke-proven (register-level tests: crates/core/tests/parts_batch5.rs)

Pins / attachment

Pin / net Role
SDA / SCL I²C
VDD/GND Power (digital twin)

Support matrix

Behavior Status Notes
ID 0x0026, UV_CONF 0x0000 ✅
UVA 0.93 / UVB 2.1 counts per µW/cm² at 50 ms ✅ Scaled by UV_IT (×1 … ×16)
UVCOMP1 / UVCOMP2 ✅ Stimulus in counts at 50 ms
UV_TRIG self-clear, reserved bits fixed ✅
HD, shutdown freeze, active-force timing ❌

Stimulus

Host inputs: uva, uvb (µW/cm²), uv_comp1, uv_comp2 (counts).

How to run

  1. Place the part and an MCU in Playground, or add it to a system YAML:
    external_devices:
      - id: "veml6075"
        type: "veml6075"
        connection: "i2c1"
    
  2. Agent: labwired_list → labwired_describe id=veml6075 → wire → labwired_validate → labwired_run / labwired_verify.
  3. Register-level smoke: cargo test -p labwired-core --test parts_batch5 — ID, UV_CONF and the four channels at default stimulus; veml6075_counts_follow_integration_time_and_stimulus covers the integration time, write mask and read-only ID. The same file's negative control proves the check fails against a stand-in that answers only 0x00 or only 0xFF.

Limitations

  • SD does not freeze the outputs; HD is stored only.

See the YAML header for the full datasheet trace and every named approximation.