# 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