v1.0.7
-
Add M5Unified I2C_Class driver support for both Arduino and ESP-IDF platforms — New
begin(m5::I2C_Class*, ...)overloads (with and without hardware interrupt) allow initializing M5IOE1 using an M5Unified I2C_Class instance; the caller retains I2C bus ownership and lifecycle. -
Add compile-time feature detection for I2C backends — Introduce
M5IOE1_HAS_I2C_MASTER,M5IOE1_HAS_I2C_BUS, andM5IOE1_HAS_M5UNIFIED_I2Cmacros to auto-detect available I2C drivers based on IDF version, header availability, andCONFIG_I2C_BUS_BACKWARD_CONFIG. -
Add M5GFX/M5Unified coexistence conflict detection — Emit compile-time errors or silently disable
i2c_busmode when M5GFX/M5Unified is present, preventing runtimeabort()fromi2c_driver_install()vsi2c_new_master_bus()conflicts. -
Improve the log system with per-module tags and additional log levels — Split monolithic
M5IOE1tag intoM5IOE1_I2C,M5IOE1_GPIO,M5IOE1_ADC,M5IOE1_PWM,M5IOE1_LED,M5IOE1_AMP,M5IOE1_IRQ,M5IOE1_SYS; addLOG_D(debug) andLOG_V(verbose) levels; prefix Arduino log output with severity indicators[I]/[W]/[E]/[D]/[V]; forceLOG_LOCAL_LEVEL = ESP_LOG_VERBOSEfor ESP-IDF builds. -
Optimize I2C retry with configurable delay — Add
M5IOE1_I2C_RETRY_DELAY_MS(default 50ms) alongside existingM5IOE1_I2C_RETRY_COUNT, replacing hard-coded minimal delays. -
Rename I2C helper functions with platform prefix — Rename
M5IOE1_I2C_READ_BYTE→M5IOE1_I2C_ARDUINO_READ_BYTE(and all similar helpers); add newM5IOE1_M5UNIFIED_*wrapper set for I2C_Class communication. -
Add snapshot domain bitmask enum — New
m5ioe1_snapshot_domain_tenum withGPIO,PWM,ADC,AW8737A, andALLdomains for selective snapshot verification. -
Optimize i2c-related internal functions — Refactor I2C initialization, read/write paths, and conditional compilation guards for
i2c_masterandi2c_busbackends; move Arduino polling/interrupt task handles from static globals to instance members for multi-instance support. -
Add M5Unified as optional CMake dependency — Use
idf_component_optional_requires(PRIVATE M5Unified)so M5IOE1 auto-links M5Unified when present without hard dependency. -
Add include-order guidance and i2c_bus restriction notes in README — Document that
M5Unified.hmust be included beforeM5IOE1.hon ESP-IDF ≥ 5.3.0 to avoidi2c_config_tconflicts; note thati2c_busmode is unsupported when M5GFX/M5Unified is present; recommendbegin(&M5.In_I2C, addr, freq)instead. -
Update clang-format configuration and CI action — Revise
.clang-formatrules and updateclang-format-check.ymlworkflow. -
Bump library version from 1.0.6 to 1.0.7 — Update version in
idf_component.yml,library.json, andlibrary.properties.