A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header Failed uploading: uploading error: exit status 2 [SOLVED]

Hi this is my first time posting here (I'm sorry if I'm doing it wrong....)

So I'm trying to live stream video through the esp32 Cam module(CAMERA_MODEL_AI_THINKER). Since I do not have a FTDI 232, I'm uploading the example code using the Arduino Uno, for guidance I followed this tutorial video How to program ESP32 CAM using Arduino UNO - YouTube . Code compiles. but when trying to upload the code I get the error:

Sketch uses 2594094 bytes (82%) of program storage space. Maximum is 3145728 bytes.
Global variables use 56272 bytes (17%) of dynamic memory, leaving 271408 bytes for local variables. Maximum is 327680 bytes.
esptool.py v3.0-dev
Serial port COM5
Connecting......................................_____

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Failed uploading: uploading error: exit status 2

I held the reset button like in the vid and also the whole way. I have checked for any connection errors as well. Any advice is welcome!

I couldn't attach the code so ill paste it here!

#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
//

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_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_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM

#include "camera_pins.h"

const char* ssid = "*******";
const char* password = "*******";

void startCameraServer();

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_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  
  // if PSRAM IC present, init with UXGA resolution and higher JPEG quality
  //                      for larger pre-allocated frame buffer.
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#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
  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

  WiFi.begin(ssid, password);

  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() {
  // put your main code here, to run repeatedly:
  delay(10000);
}

It appears you do not have the correct board selected. Go to Tools>Board: then select the correct board. If it is not there you need to select the board manager (top of board list) and get the correct one.

I tried but still no dice....Its prolly the arduino board, I just came home after purchasing a FTDI 232 hopefully that works........

Did you press the button on the ESP32 after the ...___... showed up?

yes I did....I tried pressing it once, holding it for a bit, and holding it till the output changes....
still the same error pops up.....my flash frequency is at 40, flash mode is on QIO and partition scheme is on Huge app...

Sorry about the Time passed guys.... I had another project due in college......But good news.....IT WORKS!...…. It was due to 2 things

1.I had RX and TX switched
2. The jumper cable fitting the GND to the Io0 pin of the cam was faulty

I found this website to solve errors....So if you have any other of the errors in the list be sure to check this!

Thank you guys for the help!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.