Need help to setup ESP32 CAM and get it to work

I need help setting up my esp32 camera

when I tried to upload a LED blinking code, I received this error message:
Arduino: 1.8.19 (Windows 10), Board: "WiFi LoRa 32(V3), Core 1, Core 1, 240MHz (WiFi), 921600, None, REGION_AS923, None, Generate By ChipID, 8(default), Internal (default), Disabled"

The sketch name had to be modified.
Sketch names must start with a letter or number, followed by letters,
numbers, dashes, dots and underscores. Maximum length is 63 characters.

Sketch uses 253661 bytes (7%) of program storage space. Maximum is 3342336 bytes.

Global variables use 14044 bytes (4%) of dynamic memory, leaving 313636 bytes for local variables. Maximum is 327680 bytes.

esptool.py v4.6

Serial port COM9

Connecting.....................................An error occurred while uploading the sketch

A fatal error occurred: Failed to connect to ESP32-S3: No serial data received.

For troubleshooting steps visit: Troubleshooting - ESP32 - — esptool.py latest documentation

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

did you pick the right board?

Arduino: 1.8.19 (Windows 10), Board: "AI Thinker ESP32-CAM, 240MHz (WiFi/BT), DIO, Huge APP (3MB No OTA/1MB SPIFFS), 80MHz, None, Disabled"

Sketch uses 1045173 bytes (33%) of program storage space. Maximum is 3145728 bytes.

Global variables use 60304 bytes (18%) of dynamic memory, leaving 267376 bytes for local variables. Maximum is 327680 bytes.

C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.6/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x1000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bootloader.bin 0x8000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.partitions.bin 0xe000 C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2/tools/partitions/boot_app0.bin 0x10000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bin

esptool.py v4.6

Serial port COM7

Connecting....Traceback (most recent call last):

File "esptool.py", line 37, in

Chip is ESP32-D0WD (revision v1.0)

File "esptool_init_.py", line 1064, in _main

Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None

File "esptool_init_.py", line 859, in main

Crystal is 40MHz

File "esptool\cmds.py", line 466, in write_flash

File "esptool\util.py", line 37, in flash_size_bytes

MAC: 24:0a:c4:29:aa:cc

TypeError: argument of type 'NoneType' is not iterable

[8424] Failed to execute script 'esptool' due to unhandled exception!

Uploading stub...

Running stub...

Stub running...

Changing baud rate to 460800

Changed.

WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.

Configuring flash size...

the selected serial port Configuring flash size...

does not exist or your board is not connected

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


I followed the connection as shown and I am using FTDI1232


This is the output when i press the reset on the ESP32 CAM

does it support 3.3V for the Tx Pin ?

it operates either at 3.3v or 5v

did you set it up at 3.3V (that's what the ESP32 pin expects)

yep I connected it accordingly but I keep receiving error messages

i.e. Arduino: 1.8.19 (Windows 10), Board: "AI Thinker ESP32-CAM, 240MHz (WiFi/BT), DIO, Huge APP (3MB No OTA/1MB SPIFFS), 80MHz, None, Disabled"

Sketch uses 1045173 bytes (33%) of program storage space. Maximum is 3145728 bytes.

Global variables use 60304 bytes (18%) of dynamic memory, leaving 267376 bytes for local variables. Maximum is 327680 bytes.

C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.6/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x1000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bootloader.bin 0x8000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.partitions.bin 0xe000 C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2/tools/partitions/boot_app0.bin 0x10000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bin 

esptool.py v4.6

Serial port COM7

Connecting....Traceback (most recent call last):



  File "esptool.py", line 37, in <module>

  File "esptool\__init__.py", line 1064, in _main

Chip is ESP32-D0WD (revision v1.0)

  File "esptool\__init__.py", line 859, in main

Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None

  File "esptool\cmds.py", line 466, in write_flash

  File "esptool\util.py", line 37, in flash_size_bytes

Crystal is 40MHz

MAC: 24:0a:c4:29:aa:cc

Uploading stub...

TypeError: argument of type 'NoneType' is not iterable

Running stub...

[10668] Failed to execute script 'esptool' due to unhandled exception!

Stub running...

Changing baud rate to 460800

Changed.

WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.

Configuring flash size...

the selected serial port Configuring flash size...

 does not exist or your board is not connected

Sketch uses 1044857 bytes (33%) of program storage space. Maximum is 3145728 bytes.

Global variables use 60304 bytes (18%) of dynamic memory, leaving 267376 bytes for local variables. Maximum is 327680 bytes.

C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.6/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x1000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bootloader.bin 0x8000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.partitions.bin 0xe000 C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2/tools/partitions/boot_app0.bin 0x10000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bin 

esptool.py v4.6

Serial port COM7



A fatal error occurred: Could not open COM7, the port doesn't exist

A fatal error occurred: Could not open COM7, the port doesn't exist

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

but when i press the reset there is a output on the serial monitor

are you sure you connected GPIO-0 to GND ?

can you try to reset the module at the moment when the IDE tries to upload the code?



This is my setup

second pic the white cable from the FTDI is connected to U0T

This is the exaple I am using

#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality
//            Ensure ESP32 Wrover Module or other board with PSRAM is selected
//            Partial images will be transmitted if image exceeds buffer size
//
//            You must select partition scheme from the board menu that has at least 3MB APP space.
//            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15
//            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well

// ===================
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE  // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_CAMS3_UNIT  // Has PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
//#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
//#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 // Has PSRAM
//#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 // Has PSRAM
#include "camera_pins.h"

// ===========================
// Enter your WiFi credentials
// ===========================
const char *ssid = "CEPL";
const char *password = "CEPL2014";

void startCameraServer();
void setupLedFlash(int pin);

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sccb_sda = SIOD_GPIO_NUM;
  config.pin_sccb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.frame_size = FRAMESIZE_UXGA;
  config.pixel_format = PIXFORMAT_JPEG;  // for streaming
  //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition
  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
  config.fb_location = CAMERA_FB_IN_PSRAM;
  config.jpeg_quality = 12;
  config.fb_count = 1;

  // if PSRAM IC present, init with UXGA resolution and higher JPEG quality
  //                      for larger pre-allocated frame buffer.
  if (config.pixel_format == PIXFORMAT_JPEG) {
    if (psramFound()) {
      config.jpeg_quality = 10;
      config.fb_count = 2;
      config.grab_mode = CAMERA_GRAB_LATEST;
    } else {
      // Limit the frame size when PSRAM is not available
      config.frame_size = FRAMESIZE_SVGA;
      config.fb_location = CAMERA_FB_IN_DRAM;
    }
  } else {
    // Best option for face detection/recognition
    config.frame_size = FRAMESIZE_240X240;
#if CONFIG_IDF_TARGET_ESP32S3
    config.fb_count = 2;
#endif
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  sensor_t *s = esp_camera_sensor_get();
  // initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);        // flip it back
    s->set_brightness(s, 1);   // up the brightness just a bit
    s->set_saturation(s, -2);  // lower the saturation
  }
  // drop down frame size for higher initial frame rate
  if (config.pixel_format == PIXFORMAT_JPEG) {
    s->set_framesize(s, FRAMESIZE_QVGA);
  }

#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
  s->set_vflip(s, 1);
  s->set_hmirror(s, 1);
#endif

#if defined(CAMERA_MODEL_ESP32S3_EYE)
  s->set_vflip(s, 1);
#endif

// Setup LED FLash if LED pin is defined in camera_pins.h
#if defined(LED_GPIO_NUM)
  setupLedFlash(LED_GPIO_NUM);
#endif

  WiFi.begin(ssid, password);
  WiFi.setSleep(false);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  startCameraServer();

  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  // Do nothing. Everything is done in another task by the web server
  delay(10000);
}

typical set-up

your module seem to have a jumper to select 3.3V so that's fine where you have it

with your module it would be


did you try resetting the ESP32 at the moment of upload ?

yes

I tried connecting 3.3V Vcc cable to the place shown in your picture
I got this error

Arduino: 1.8.19 (Windows 10), Board: "AI Thinker ESP32-CAM, 240MHz (WiFi/BT), DIO, Huge APP (3MB No OTA/1MB SPIFFS), 80MHz, None, Disabled"

Sketch uses 1044857 bytes (33%) of program storage space. Maximum is 3145728 bytes.

Global variables use 60304 bytes (18%) of dynamic memory, leaving 267376 bytes for local variables. Maximum is 327680 bytes.

C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.6/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x1000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bootloader.bin 0x8000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.partitions.bin 0xe000 C:\Users\zkpc\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2/tools/partitions/boot_app0.bin 0x10000 C:\Users\zkpc\AppData\Local\Temp\arduino_build_974836/CameraWebServer_changes_made.ino.bin 

esptool.py v4.6

Serial port COM7

Connecting..............Traceback (most recent call last):



  File "esptool.py", line 37, in <module>

Chip is ESP32-D0WD (revision v1.0)

  File "esptool\__init__.py", line 1064, in _main

Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None

  File "esptool\__init__.py", line 859, in main

Crystal is 40MHz

  File "esptool\cmds.py", line 466, in write_flash

MAC: 24:0a:c4:29:aa:cc

Uploading stub...

Running stub...

Stub running...

  File "esptool\util.py", line 37, in flash_size_bytes

Changing baud rate to 460800

Changed.

WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.

TypeError: argument of type 'NoneType' is not iterable

Configuring flash size...

[18376] Failed to execute script 'esptool' due to unhandled exception!

the selected serial port [18376] Failed to execute script 'esptool' due to unhandled exception!

 does not exist or your board is not connected



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

seems you are powering on the 3.3V pin - connect to the 5V pin.

(if you have a DMM double check the voltage out of your FTDI module, it might be 5V not 3.3V. The jumper might only be for the Tx and Rx / logic )

I have checked alr. the voltage appears to be correct. I have tried connecting the 3.3 pin on the FTDI to the 3.3v pin on the esp32 cam and the 5V to 5V i still cant seem to get it to work

With ESP32CAMs take care with which GND pins you use for the connections.

On some more recent ESP32CAMs the 'GND' pin next to UOT is an ENABLE\RESET pin, it might be labeled GND/R too.

Its the AI thinker model. I don't think there is a enable/reset pin, also I tried both of the gnd pins

it seems you are doing the right steps
did you check the Dupont wires for continuity? some cheap ones have a tendency to break inside.