Files
AutoFilm-ESP32/docs/megaplans/integration/I02-temp-fix.md
gronod a33b4b0c74
ci / test (push) Successful in 1m4s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (push) Successful in 3m56s
ci / firmware (wroom, sdkconfig.wroom, esp32) (push) Successful in 3m57s
ci / test (pull_request) Successful in 1m22s
ci / firmware (wroom, sdkconfig.wroom, esp32) (pull_request) Successful in 4m42s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (pull_request) Successful in 4m47s
Mark I01 status DONE
2026-09-16 21:05:57 +01:00

1.2 KiB

STATUS: TODO DEPENDS: I01

READ: docs/megaplans/INTEGRATION-MEGAPLAN.md, main/main.c, components/hal_temp/*

IN:

  1. hal_temp: Generalize hal_temp.c to use board_pin_temp() instead of hardcoded macros. Compile for both targets via CMake (IDF_TARGET esp32|esp32s3 → shared source, PRIV_REQUIRES board_wroom|board_jc4827w543).
  2. main.c bug fix: temp_task currently calls autofilm_temp_tick() only #ifdef AUTOFILM_BOARD_WROOM and has no vTaskDelay — on S3 it spins at priority 2 and starves the idle task (task-WDT risk). Move the tick loop into a hal_temp-level poll (e.g. hal_temp_tick() weak per-board) or add vTaskDelay(pdMS_TO_TICKS(750)) on the non-WROOM path so the task always blocks.

OUT: Motor logic, audio logic. FORBIDDEN: Removing the watchdog, deleting the temp task.

VERIFY: idf.py build succeeds for both esp32 and esp32s3. Flash to S3 and verify no task watchdog panics occur in the console.

COMMITS:

  1. Share onewire temp HAL across both boards
  2. Fix temp_task starvation bug on non-WROOM

DoD checkboxes:

  • hal_temp generalized to use board accessors.
  • temp_task starvation bug fixed.
  • Build succeeds on both targets.