// the find
espressif/esp32-camera
Official Espressif camera driver for ESP32/S2/S3 chips, supporting 17 different image sensors from OV2640 to OV5640. This is the canonical way to get camera frames out of an ESP32-CAM or similar board — if you're building a battery-powered security cam, door bell, or ML inference device on ESP32 hardware, this is what you use.
Sensor coverage is genuinely wide — 17 sensors with per-sensor register tables in private_include means you're not stuck with the OV2640 that ships on cheap AI-Thinker boards. The DMA pipeline is well thought out: single-buffer mode trades throughput for control, multi-buffer continuous mode trades memory for frame rate, and the README is honest about the tradeoffs. The autofocus API for OV5640 is a nice addition — most competing examples just ignore AF entirely. Component Registry integration means `idf.py add-dependency` pulls a pinned version instead of you copying files around.
ESP32-C3 and ESP32-C6 are absent from the supported SoC list, which matters since those are the chips people are now buying for new designs — the older ESP32 with its I2S camera peripheral is effectively end-of-life for fresh work. The RGB/YUV performance warning (don't use non-JPEG if WiFi is on) is a real constraint that surfaces late: you build the thing, enable WiFi, and suddenly frames are corrupted. The test directory has three JPEG fixtures and a single test file — there's no CI coverage of actual frame capture, just build verification. PSRAM DMA mode defaults to false with no clear guidance on when you'd want it on, and the Kconfig option is buried.