Skip to content

Latest commit

 

History

History
320 lines (215 loc) · 12.6 KB

File metadata and controls

320 lines (215 loc) · 12.6 KB

ESP32-S3-CAM Development Board

Introduction

ESP32S3-CAM Board

The ESP32S3-CAM is a high-performance, low-power development board based on the Espressif ESP32-S3 SoC. It features an integrated camera interface, TF card slot, and USB-C USB for easy debugging. Equipped with dual-core LX7 processors and AI acceleration capabilities, it is ideal for AIoT applications such as image recognition, wireless monitoring, and smart home gateways.

Key Features

  • Powerful Processing: Xtensa® 32-bit LX7 dual-core processor, up to 240MHz.
  • AI Acceleration: Built-in vector instructions to accelerate neural network computing and signal processing.
  • Easy Programming: Onboard USB-to-Serial (Native USB) via Type-C interface—no external downloader required.
  • Rich Storage: Large 8MB PSRAM and 16MB Flash for complex image processing tasks.
  • Expandability: Supports TF card (up to 4G) and features multiple GPIOs for sensors.
  • Seamlessly Compatibility: Fully compatible with existing ESP32-S3-CAM models, providing access to a wealth of online tutorials and community resources.
  • Applications: Home smart devices & video doorbells; Industrial wireless monitoring; QR code recognition & Face detection; DIY educational robot vision, and more.
  • Download: Programming can be done directly via the USB-C port without requiring an external download module. Its usage is fully compatible with commercially available ESP32S3-CAM models.

Hardware

Specifications

Feature Specification
Microcontroller ESP32-S3R8 (Dual-core, 240MHz)
Wireless 2.4GHz Wi-Fi & Bluetooth 5 (LE)
SRAM/PSRAM 512KB SRAM / 8MB Octal PSRAM
Flash 16MB
Support Camera OV3660/0V2640
Interface Type-C USB, TF Card Slot, PH2.0 Battery JST
Onboard Peripherals Reset/Boot Buttons, Double LED Flashlight, Power Indicator, Charging Circuit
Digital I/O GPIO, SPI, I2C, UART, ADC, PWM

Pin Definition

ESP32S3-CAM Pinout

  • Camera Interface: DVP 8-bit interface.
  • TF Card: SPI/SDIO (Check schematic for specific GPIO mapping).
  • USB: GPIO 19 (D-), GPIO 20 (D+).

Camera pin

CAMERA ESP32S3
I2C_SDA GPIO4
I2C_SCL GPIO5
CAM_RST
DVP_VSYNC GPIO6
DVP_HREF GPIO7
DVP_Y9 GPIO16(XTAL_32K_N)
XMCLK CPIO15(XTAL_32K_P)
DVP_Y8 GPIO17
DVP_Y7 GPIO18
DVP_PCLK GPIO13
DVP_Y6 GPIO12
DVP_Y5 GPIO10
DVP_Y4 GPIO8
DVP_Y3 GPIO9
DVP_Y2 GPIO11

MMC Mode Pin

MMC Mode ESP32S3
CMD GPIO38
CLK GPIO39(MTCK)
DAT0 GPIO40(MTD0)
DAT1 NC
DAT2 NC
DAT3 NC
VDD 3.3V
VSS GND

Size

Download 3D file

ESP32S3-CAM Size

Antenna Switching Instruction

ESP32S3-CAM Antenna Switch

  • Option 1: Use Onboard Antenna.
  • Option 2: Use IPEX Antenna.

The ESP32-S3-CAM supports both the Onboard PCB Antenna and an External IPEX Antenna. By default, the board is configured to use the onboard antenna. To switch to an external antenna, you need to relocate the 0Ω resistor near the IPEX connector.

Schematics

Download the schematic file

ESP32S3-CAM Schematic

Examples

Software Support

  • Official SDK: ESP-IDF
  • Third-party Platforms: Arduino IDE, MicroPython

Configure In Arduino IDE

Upload Examples: CameraWebServer

Arduino IDE Config: Board: Tools-->Board-->ESP32-->ESP32S3 Dev Module USB CDC On Boot: Tools-->USB CDC On Boot-->Enabled Flash Size: Tools-->flash Sizes-->8MHZ(64Mb) Partition Scheme: Tools-->Partition Scheme-->8M with spiffs(3MB APP/1.5MB SPIFFS) PSRAM: Tools-->PSRAM-->OPI PSRAM Upload Mode: Tools-->Upload Mode-->UART0/Hardware CDC USB Mode: Tools-->USB Mode-->Hardware CDC and JTAG

Arduino IDE Config

Configure Wi-Fi: In the code, replace the values of the SSID and PASSWORD variables with your own 2.4GHz Wi-Fi credentials. Arduino IDE wifi Config Enable Serial Communication: After uploading the program, open the Serial Monitor to view device logs and status. Arduino IDE wifi Config Download the Arduino example

Result

Open the serial monitor, open the web page, Enter the address information displayed by the serial port in the browser.

website start stream

MicroPython Programming Guide for ESP32-S3-CAM

This guide provides a quick start for using MicroPython on the emakefun ESP32-S3-CAM. Our board is fully compatible with standard ESP32-S3-CAM firmware and existing online tutorials.

Resources & Downloads

Recommended IDEs

We recommend the following tools for a seamless experience:

  • Thonny IDE: Best for beginners. It has built-in support for ESP32S3.
  • VS Code (with Pymakr extension): Best for professional developers.

Camera API (MicroPython)

This document describes the API and configuration for the ESP32-S3-CAM camera module.

Core Functions

camera.init(*)

Initializes the camera module, The camera must be initialized before it can be used.

  • Key Parameters

    • format: Image data format

      Format Description
      camera.JPEG JPEG format (default)
      camera.YUV422 YUV422
      camera.RGB565 RGB565
      camera.GRAYSCALE Grayscale
    • framesize: Resolution (Frame size)

      Resolution (Frame size) Description
      camera.FRAME_96X96 96×96
      camera.FRAME_QQVGA 160×120
      camera.FRAME_QCIF 176×144
      camera.FRAME_HQVGA 240×160
      camera.FRAME_240X240 240×240
      camera.FRAME_QVGA 320×240
      camera.FRAME_CIF 352×288
      camera.FRAME_HVGA 480×320
      camera.FRAME_VGA 640×480(default)
      camera.FRAME_SVGA 800×600
      camera.FRAME_XGA 1024×768
      camera.FRAME_HD 1280×720
      camera.FRAME_SXGA 1280×1024
      camera.FRAME_UXGA 1900×1200
      camera.FRAME_FHD 1920×1080
      camera.FRAME_P_HD 2560×1440
      camera.FRAME_P_3MP 2048×1536
      camera.FRAME_QXGA 2048×1536
      camera.FRAME_QHD 2560×1440
      camera.FRAME_WQXGA 2560×1600
      camera.FRAME_P_FHD 2560×1600
      camera.FRAME_QSXGA 2560×2048
    • quality: JPEG quality. Default: 12, Range: 0~63

    • d0: D0 pin. Default: 11 (ESP32S3 CAM pin value)

    • d1: D1 pin. Default: 9 (ESP32S3 CAM pin value)

    • d2: D2 pin. Default: 8 (ESP32S3 CAM pin value)

    • d3: D3 pin. Default: 10 (ESP32S3 CAM pin value)

    • d4: D4 pin. Default: 12 (ESP32S3 CAM pin value)

    • d5: D5 pin. Default: 18 (ESP32S3 CAM pin value)

    • d6: D6 pin. Default: 17 (ESP32S3 CAM pin value)

    • d7: D7 pin. Default: 16 (ESP32S3 CAM pin value)

    • vsync: VSYNC pin. Default: 6 (ESP32S3 CAM pin value)

    • href: HREF pin. Default: 7 (ESP32S3 CAM pin value)

    • pclk: PCLK pin. Default: 13 (ESP32S3 CAM pin value)

    • pwdn: POWER pin. Default: -1 (not used)

    • reset: RESET pin. Default: -1 (not used)

    • xclk: XCLK pin. Default: 15 (ESP32S3 CAM pin value)

    • sda: SDA pin. Default: 4 (ESP32S3 CAM pin value)

    • scl: SCL pin. Default: 5 (ESP32S3 CAM pin value)

    • xclk_freq: XCLK signal frequency. Default: camera.XCLK_10MHz, Options: camera.XCLK_20MHz

    • fb_size: Number of frame buffers. Default: 1

    • fb_location: Frame buffer location. Default: camera.DRAM, Options: camera.PSRAM

  • Parameter: type specifies the camera sensor model (e.g., camera.OV2640).

  • Return: Returns True if initialization is successful, False otherwise.

camera.deinit()

Deinitializes the camera and releases used resources.

camera.capture()

Captures a single frame.

  • Return: A bytes object containing the image data (e.g., JPEG format).

camera.flashlamp(enable)

Controls the onboard LED flash.

  • Parameter: True to turn the flash ON, False to turn it OFF.

Frame Configuration Functions

camera.framesize(framesize)

To reconfigure the resolution (frame size), please refer to the specific parameter values mentioned in the preceding section.

camera.quality(quality)

Set the JPEG compression quality using the quality parameter, with an adjustable range of 0 to 63 (where lower values correspond to lower quality and higher compression).

camera.flip(enable)

Flip the image vertically(True or False).

camera.mirror(enable)

Flip the image horizontally (mirror left-right).

camera.contrast(contrast)

Set the image contrast using the contrast parameter. Default value is 0, with an adjustable range of -2 to 2 (where positive values increase contrast and negative values decrease it).

camera.saturation(saturation)

Configure the color saturation using the saturation parameter. Default value is 0, with an adjustable range of -2 to 2, where: -2: Grayscale (fully desaturated)

0: Normal saturation

+2: Maximum color saturation

camera.brightness(brightness)

Set the image brightness using the brightness parameter. Default value is 0, with an adjustable range of -2 to 2 (where positive values increase brightness and negative values decrease it).

camera.speffect(effect)

Apply Image Effects

Effect Description
camera.EFFECT_NONE Original Image(Default)
camera.EFFECT_NEGATIVE Color negative (inverted colors)
camera.EFFECT_GRAYSCALE grayscale
camera.EFFECT_SEPIA Sepia tone
camera.EFFECT_RED Red tint
camera.EFFECT_GREEN Green tint
camera.EFFECT_BLUE Blue tint
camera.EFFECT_ANTIQUE Vintage
camera.EFFECT_SKETCH Sketch
camera.EFFECT_SOLARIZE Sunlight
camera.EFFECT_POSTERIZE Poster
camera.EFFECT_WHITEBOARD Whiteboard
camera.EFFECT_BLACKBOARD Blackboard
camera.EFFECT_AQUA Crystal

camera.whitebalance(whitebalance)

Configure White Balance

Mode Description
camera.WB_NONE Automatic white balance(Default)
camera.WB_SUNNY Sunny/outdoor
camera.WB_CLOUDY Cloudy
camera.WB_OFFICE Office/fluorescent
camera.WB_HOME Home/incandescent