Skip to content

camera.brownout.disable() Causes Immediate Crash/Reset on ESP32-S3 #55

@VietLong-DG

Description

@VietLong-DG

Calling camera.brownout.disable() on an ESP32-S3 board (specifically tested with ESP32-S3-WROOM on an "ESP32S3 Dev Module" board type) causes the device to immediately crash or reset. The standard bootloader messages appear on the serial monitor, but no output from the setup() function (not even Serial.println calls placed before the camera.brownout.disable() line) is ever printed.

Removing the camera.brownout.disable() call allows the program to proceed normally, initialize the camera (camera.begin()), and capture images successfully.

Steps to Reproduce:

  1. Use an ESP32-S3 board (e.g., ESP32-S3-WROOM Dev Kit).
  2. Configure the Arduino IDE with the settings listed below (especially PSRAM enabled).
  3. Upload the following minimal sketch:
#include <eloquent_esp32cam.h>
using eloq::camera;

void setup() {
  Serial.begin(115200);
  delay(2000); // Wait for serial connection
  Serial.println("--- Sketch Start ---"); // This line WILL NOT print

  // Configure necessary settings that worked previously
  camera.pinout.wroom_s3();

  // This is the problematic line
  camera.brownout.disable(); // <--- CRASHES HERE

  // Code below this point is never reached
  Serial.println("--- Brownout Disabled (Should Not Print) ---");

  camera.resolution.vga();
  camera.quality.high();

  while (!camera.begin().isOk()) {
      Serial.println(camera.exception.toString());
      delay(1000);
  }

  Serial.println("Camera OK");
  Serial.println("--- Sketch Setup Finished ---");
}

void loop() {
  Serial.print(".");
  delay(1000);
}
  1. Observe the Serial Monitor. Only the ESP32 bootloader messages will appear, followed by silence or repeated resets.

Expected Behavior:

The camera.brownout.disable() function should execute without crashing the ESP32-S3, allowing the rest of the setup() function to proceed. The brownout detector should ideally be disabled (though the primary issue here is the crash itself).

Actual Behavior:

The ESP32-S3 crashes or resets immediately upon execution reaching the camera.brownout.disable() line. No further code in setup() executes, and no serial output from the sketch appears.

Hardware:

  • Board: ESP32-S3 Dev Module (containing ESP32-S3-WROOM-1)
  • Camera Module: ESP32-S3 CAM N16R8 OV2640

Software/Environment:

  • Arduino IDE Version: 2.3.6
  • EloquentEsp32cam Library Version: 2.7.15
  • Operating System: Windows 10
  • Arduino IDE Board Settings:
    • Board: "ESP32S3 Dev Module"
    • PSRAM: "OPI PSRAM" (Enabled)
    • Flash Size: "8MB"
    • Partition Scheme: "Default 4MB with spiffs

Workaround:

Commenting out or removing the camera.brownout.disable(); line allows the sketch to run correctly and use the camera functions.

Additional Context:

Through step-by-step testing, it was confirmed that including the library and calling other setup functions like camera.pinout.wroom_s3(), camera.resolution.vga(), camera.quality.high(), and camera.begin() works fine as long as camera.brownout.disable() is not called. The issue seems isolated to this specific function call on the ESP32-S3 platform.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions