Changelog

# ChangeLog

## v1.0.1 - 2026-09-11

* Perform bounded best-effort startup alignment on the first configured
  ordinary touch channel. Keep the best valid measured candidate, distinguish
  target reached from target not reached, and return hardware/read/period
  errors when no valid candidate can be used.
* Measure the complete configured scan when resolving timing so requested
  sample periods remain stable across channel, frequency, and output-mode
  changes while preserving the existing public API.
* Start V3 calibration frequencies at charge-time 200 with the fixed RES/CAP
  and COARSE/FINE defaults, disable hardware smooth by default, and use the
  platform-verified raw-equivalent data path for V2/V3.

### Startup and migration

* A normal stop/start reuses the selected runtime charge-time table. Delete
  and recreate to run startup alignment again. If a finger is present during
  startup, its fixed startup samples become the initial operating point and
  later recovery is intentionally slow.
* Remove the high/low V3 profile choice and per-frequency `PRESETx_TIMES`
  defaults. Applications that used those private overrides must replace them
  with the fixed defaults or an explicit runtime sample configuration.

## v1.0.0 - 2026-07-10

### Bugfixes

* Correct scan-period calculation for power-on, charge, divider, timeout, and
  active sample-count costs.
* Return raw polling values on V2 targets and preserve the configured V3 data
  behavior.
* Validate null configurations, empty lists, unsupported or duplicate channels,
  and invalid channel types before creating the instance.
* Correct multi-channel and multi-frequency Linux replay indexing and cleanup.
* Return `ESP_ERR_INVALID_STATE` when a second singleton instance is created
  before the first one is deleted.

### Features

* Promote `touch_sensor_lowlevel` to the v1.0.0 component release and add
  ESP32-S31 support.
* Add `sample_cfg_num` to select the number of valid sample configurations and
  `touch_sensor_lowlevel_get_info()` to read the effective layout and period.
* Add bounded automatic startup alignment. On hardware, the first configured
  channel is used as the reference and alignment is completed inside
  `touch_sensor_lowlevel_start()`; failures are returned by that call. Linux
  replay keeps its supplied raw values unchanged.
* Add application-level default override support through
  `main/touch_sensor_lowlevel_config.h`.
* Add grouped multi-frequency Linux replay providers and keep the replay data
  format documented as timestamp/raw rows.
* Add the `examples/lowlevel` example path to the component manifest.
* Extend configuration validation, sample-count handling, and ESP32-S31 CI
  build/test coverage.

### Breaking Changes

* Remove the public include dependency on `touch_sensor_lowlevel_config.h`;
  default headers are private to the component.
* Move compile-time overrides to the application-level
  `main/touch_sensor_lowlevel_config.h` mechanism.
* Gate development-only runtime configuration APIs behind
  `CONFIG_TOUCH_SENSOR_LOWLEVEL_DEBUG_CONFIG`.
* Change Linux weak-provider rows to `{timestamp, raw_value}` and use grouped
  rows for multi-frequency data.
* Exclude simulator data and test apps from the published component package.

## v0.10.0 - 2026-02.06

* Using esp_driver_touch_sens as basic driver, only support IDF >= v5.5
* Support ESP32-H4

## v0.9.1~1 - 2025-06-11

* Suppress legacy driver deprecated warning in IDF 5.5

## v0.9.1 - 2025-06-13

- Fix measurement interval for ESP32-P4

## v0.9.0 - 2025-06-09

* **Feature**: Add configurable sampling period via `sample_period_ms` parameter

## v0.8.2 - 2025-05-30

* Using fixed sample rate

## v0.8.1 - 2025-03-26

* Support IDF 5.4
* Add debug GPIO
* Decrease ESP32-P4 measurement interval

## v0.8.0 - 2025-03-24

* Support ESP32

## v0.7.0 - 2025-03-20

* Opensource the component

## v0.6.0 - 2025-02-18

* Change the returned data type of `touch_lowlevel_state_cb_t`
* Fix build with libs

## v0.5.1 - 2025-02-17

* Fix simulate data when choose esp32s3

## v0.5.0 - 2025-01-23

* Support linux target with simulated touch sensor data

## v0.4.1 - 2025-01-19

* Fix library import bug

## v0.3.0 - 2025-01-18

* Add touch_sensor_lowlevel_delete function

## v0.2.0 - 2025-01-14

* Add esp32p4 support

## v0.1.0 - 2025-01-09

* Add Initial version of the touch sensor FSM