Skip to content

ESP32-CAM

Planned - not available in the current version

Camera capture is not yet supported at runtime. The camera module (mod_cam) is written but depends on camera syscalls that are not part of the ESPM ABI yet, so it cannot be loaded. This page documents the hardware and the provisioning support that already exist; live capture is targeted for a future release. See planned modules.

Espilon will support ESP32 camera boards for image capture, driven by the mod_cam module once the camera syscalls land. The board pin maps and provisioning profiles are already in place.

Camera board profiles

Camera pin maps are defined as board profiles in c3po/provision/config.py. Selecting a camera profile at provisioning fills in the pin map for the firmware.

Board profile Description
esp32s3-cam-n16r8 ESP32-S3 camera board, 16 MB flash / 8 MB PSRAM
esp32-cam-aithinker AI-Thinker ESP32-CAM (classic)

Pin maps

Signal esp32s3-cam-n16r8 esp32-cam-aithinker
XCLK 2 0
SIOD 4 26
SIOC 17 27
VSYNC 5 25
HREF 14 23
PCLK 6 22
PWDN -1 32
D0..D7 7,11,10,16,15,9,8,18 5,18,19,21,36,39,34,35

PSRAM

Camera frame buffers are large and require PSRAM. The S3 camera board ships with 8 MB PSRAM.

Planned commands

Once camera support lands, mod_cam will expose cam_snap, cam_stream, cam_probe, and cam_stop, streaming JPEG frames to C3PO over the encrypted C2 data channel.

See also