Software Requirements

This section describes the software tools, libraries, and configurations required to build, upload, and run the ESP32-CAM Intelligent Camera Web Server.

Development Environment

Arduino IDE

The project is developed and uploaded using the Arduino IDE.

Recommended Versions:

  • Arduino IDE 1.8.19 or newer
  • Arduino IDE 2.x is also supported

Supported Operating Systems:

  • Windows
  • macOS
  • Linux

Why Arduino IDE:

  • Simple setup for ESP32 development
  • Integrated serial monitor
  • Easy board and library management
  • Widely used and well documented

ESP32 Board Package

The ESP32 board definitions by Espressif are required.

Package Name:

  • ESP32 by Espressif Systems

Recommended Version:

  • 2.0.9 or newer

Installation:

  1. Open Arduino IDE
  2. Go to File → Preferences
  3. Add the following URL to Additional Boards Manager URLs
  4. https://dl.espressif.com/dl/package_esp32_index.json
  5. Open Tools → Board → Boards Manager
  6. Search for ESP32 and install the package

Required Libraries

All required libraries are provided by the ESP32 board package.

Used Libraries:

  • esp_camera – Camera driver and frame capture
  • esp_http_server – Embedded HTTP server
  • WiFi – Wi-Fi connectivity

No external Arduino libraries are required for this project.

Board Configuration (Arduino IDE)

Correct board settings are critical for successful compilation and stable operation.

Board Selection

Board Selection:

  • Board: ESP32 Wrover Module

This selection enables PSRAM support required by ESP32-CAM.

Recommended Tool Settings:

  • Upload Speed: 921600
  • CPU Frequency: 240 MHz (WiFi/BT)
  • Flash Frequency: 40 MHz
  • Flash Mode: QIO
  • PSRAM: Enabled

Partition Scheme

Partition Scheme:

  • Partition Scheme: Huge APP (3MB No OTA / 1MB SPIFFS)

Why Required:

  • Camera web server firmware is large
  • Face detection code significantly increases binary size
  • Smaller partition schemes will cause compilation errors

Programming and Upload

Upload Mode Requirements:

Because the ESP32-CAM has no USB interface, it must be placed in programming mode manually.

Steps:

  1. Connect ESP32-CAM to FTDI programmer
  2. Connect GPIO0 to GND
  3. Power the board
  4. Click Upload in Arduino IDE
  5. Remove GPIO0 → GND connection after upload
  6. Press Reset

Runtime Configuration

Once flashed, the system requires minimal runtime configuration.

  • Wi-Fi credentials are defined in main.cpp
  • Camera settings are adjustable via the web interface
  • No filesystem (SPIFFS) or external storage is required

Alternative Development Options (Optional)

These tools were not used in this project but may be explored in future work.

PlatformIO

VS Code based environment:

  • Better dependency management
  • Advanced debugging features

ESP-IDF

Espressif's native development framework:

  • Lower-level hardware access
  • More complex setup

The current implementation uses Arduino framework only.

Author Information

Mayank Kulkarni - Founder of MKTechs & Zervista

Mayank Kulkarni

Embedded Systems | Full-Stack | IoT | AI | Full Stack Developer

Founder of MKTechs & Zervista

https://mayank.wiki

This project demonstrates expertise in embedded systems, IoT, and edge AI technologies by Mayank Kulkarni, leading developer at MKTechs.