ESP32 ULP Coprocessor Not Running in Sleep
DodaTech
Updated 2026-06-26
1 min read
In this tutorial, you'll learn about ESP32 ULP Coprocessor Not Running in Sleep. We cover key concepts, practical examples, and best practices.
The Problem
ESP32 ULP coprocessor program does not execute during deep sleep.
Quick Fix
Wrong
// No ULP program loaded or started
ULP does not run during sleep. No sensor data collected.
Right
// Load ULP program (binary blob)
ulp_set_wakeup_period(0, 100000); // Run every 100ms
ulp_load_binary(0, ulp_binary, ulp_binary_size);
ulp_run(ulp_entry_addr);
esp_sleep_enable_ulp_wakeup();
esp_deep_sleep_start();
ULP runs every 100ms during deep sleep. Wakes ESP32 when threshold exceeded.
Prevention
Compile ULP program with the RISC-V toolchain. Use ULP FW library for simplified programming. Set wakeup period (100ms-10s typical). ULP has limited instructions (8KB IROM). ULP can read I2C sensors during sleep.
DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro