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:
- Open Arduino IDE
- Go to File → Preferences
- Add the following URL to Additional Boards Manager URLs
- https://dl.espressif.com/dl/package_esp32_index.json
- Open Tools → Board → Boards Manager
- 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:
- Connect ESP32-CAM to FTDI programmer
- Connect GPIO0 to GND
- Power the board
- Click Upload in Arduino IDE
- Remove GPIO0 → GND connection after upload
- 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
Embedded Systems | Full-Stack | IoT | AI | Full Stack Developer
Founder of MKTechs & Zervista
This project demonstrates expertise in embedded systems, IoT, and edge AI technologies by Mayank Kulkarni, leading developer at MKTechs.