ESP32-CAM Eyes

v1.0.0

Set up ESP32-S3-CAM modules as visual sensors (eyes) for OpenClaw agents. Covers hardware identification, firmware flashing, WiFi configuration, and HTTP cam...

0· 313· 1 versions· 1 current· 1 all-time· Updated 1mo ago· MIT-0
byCavano@p697

ESP32-CAM Eyes

Give your OpenClaw agent physical eyes using ESP32-S3-CAM modules.

Overview

Each ESP32-CAM module runs a lightweight HTTP server exposing /capture (single JPEG snapshot) and /stream (MJPEG live stream). Once connected to WiFi, the agent can grab images via curl for vision analysis.

Prerequisites

  • Hardware: ESP32-S3 development board with camera sensor (Hiwonder, Freenove, or similar)
  • Software: macOS or Linux with Python 3 installed
  • Tools: PlatformIO CLI (pip3 install platformio), pyserial (pip3 install pyserial)

Quick Start

  1. Plug in the ESP32-CAM via USB
  2. Identify the serial port: ls /dev/cu.usb* (macOS) or ls /dev/ttyUSB* (Linux)
  3. Identify the sensor model (critical — determines firmware config)
  4. Create PlatformIO project, flash firmware
  5. Connect to WiFi, test with curl -o photo.jpg http://<IP>/capture

For the complete step-by-step guide with firmware code, pin definitions, performance benchmarks, and troubleshooting: read references/setup-guide.md.

Key Decision: Sensor Type

The sensor model determines your firmware strategy:

SensorPIDHardware JPEGRecommended Format
OV26400x2640✅ YesPIXFORMAT_JPEG directly
OV56400x5640✅ YesPIXFORMAT_JPEG directly
GC21450x2145❌ NoPIXFORMAT_RGB565 + software frame2jpg()

If buying new boards, prefer OV2640 — hardware JPEG is significantly faster.

API Endpoints

Once flashed and connected:

PathFunction
/captureSingle JPEG snapshot
/streamMJPEG live stream
/Web UI with stream viewer

Multi-Camera Deployment

Multiple ESP32-CAMs can join the same WiFi network for multi-angle coverage. Bind fixed IPs via router DHCP reservation to avoid IP changes on reboot.

Common Pitfalls

  • Wrong sensor ID: Always verify PID before choosing firmware config
  • Upload speed: Use 460800 baud, not 921600 (causes flash verification failures on many boards)
  • WiFi band: ESP32 only supports 2.4GHz — ensure your router has a 2.4GHz SSID available
  • QQVGA is slower than VGA: Counter-intuitive but true due to PSRAM DMA buffer efficiency; use XGA (1024×768) for best speed/quality balance

Version tags

latestvk979mk1zkt8y4ht5tkhzm1ewa982m21x