executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
ESP32Avoid common ESP32 mistakes — GPIO conflicts, WiFi+ADC2 trap, deep sleep gotchas, and FreeRTOS pitfalls.
Independent GitHub snapshot · Automated classification · Original documentation governs
RTC_DATA_ATTR for persistent variables — regular RAM lost in deep sleepesp_sleep_enable_ext0_wakeup() for single pin — ext1 for multiple pinsWiFi.mode() before WiFi.begin() — mode affects behaviorWiFi.setAutoReconnect(true) doesn't always work — implement reconnect in loopWiFi.onEvent() more reliable — don't poll WiFi.status()vTaskDelay() or feed watchdogxTaskCreatePinnedToCore() for core affinity — WiFi on core 0, your code on core 1delay() yields to scheduler — vTaskDelay(pdMS_TO_TICKS(ms)) in tasksESP.getFreeHeap() for monitoring — log periodically in long-running appsheap_caps_malloc(size, MALLOC_CAP_SPIRAM)reserve() or char arraysanalogWrite() — use LEDC: ledcSetup(), ledcAttachPin(), ledcWrite()SPI.begin() doesn't auto-configureESP.getFreeSketchSpace() — OTA fails silently if not enough spaceArduinoOTA blocks during update — handle in loop, not in time-critical codeesp_brownout_disable() if using battery