finds.dev← search

// the find

espressif/esp32-camera

★ 2,726 · C · Apache-2.0 · updated Jun 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →