Changelog

for the component nestorit/vl6180x v0.0.1
# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.0.1] - 2026-08-22

### Added

### Added

- `vl6180x_config_t.minimal_init`: when `true`, the AN4545-compatible
  initialization extras are skipped (clearing `SYSTEM__FRESH_OUT_OF_RESET`,
  configuring the range/ALS new-sample-ready interrupt status and setting the
  default inter-measurement periods). The default (`false`) applies the full
  AN4545 init that a genuine VL6180X needs; set to `true` for devices that
  misbehave with it (e.g. some VL6180-family clones).
- Initial production version of the VL6180X driver.
- Dual I2C transport in a single source file:
  - native ESP-IDF I2C master driver (`vl6180x_create()`);
  - ESP-IoT-Solution `i2c_bus` transport (`vl6180x_create_i2c_bus()`) behind
    `CONFIG_VL6180X_USE_I2C_BUS`.
- Device identification via MODEL_ID (0xB4) and firmware boot-up wait at
  creation.
- Single-shot and continuous ranging with range status / error code, raw
  range and signal rate reads.
- Ambient light sensing in lux (VL6180X), with configurable gain, integration
  period and lux resolution.
- Range and ALS interrupt configuration and status.
- Offset and crosstalk calibration.
- Runtime I2C address change with transport device-handle recreation.
- Host-side register-encoding unit tests (`tests/register_encoding`).
- Native and `i2c_bus` examples.

### Fixed

- Multi-byte register writes now use the MSB-first byte order required by the
  datasheet (crosstalk compensation rate, ALS integration period).
- Inter-measurement period is clamped after the wider-type computation, so
  periods above 2540 ms no longer wrap in the 8-bit register code.
- Continuous range/ALS stop now toggles the startstop bit (0x03) instead of
  writing 0x00, which did not halt the running operation. Stop is idempotent
  (tracked per sensor).
- A missing firmware bootup bit is now a warning instead of a hard init
  failure: some VL6180-family devices never assert it. MODEL_ID validation
  remains the init gate.
- SYSTEM__FRESH_OUT_OF_RESET is no longer cleared at init (the ST API only
  reads it); clearing it hung ranging on some devices.
- Error accumulation via bitwise OR replaced with early-return handling.