Can't upload code to ESP32 w/ FTDI Programmer

Hi, I am trying to upload code to a ESP32-WROOM-32U with a FTDI programmer and keep getting this message when I upload.

Arduino: 1.8.16 (Mac OS X), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, Core 1, Core 1, None"

Sketch uses 205577 bytes (15%) of program storage space. Maximum is 1310720 bytes.
Global variables use 16212 bytes (4%) of dynamic memory, leaving 311468 bytes for local variables. Maximum is 327680 bytes.
esptool.py v3.1
Serial port /dev/cu.usbserial-A50285BI
Connecting........_____....._____....._____....._____....._____....._____.....____An error occurred while uploading the sketch
_

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

These are my pin connection:
3.3v = VCC
GND = GND
TXD0 = RX
RXD0 = TX
GPIO0 = GND
(Also, the jumper on the FTDI Programmer is set to 3.3v.)

Here is my code:

void setup() {
  // put your setup code here, to run once:
  pinMode(12, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(12, HIGH);
}

Thanks.

Did you try rebooting the ESP once the GPIO0 pin is grounded?

@red_car, yes, I have.

Maybe try opening a serial connection (115200 baud) to the IDE monitor to see if you are receiving any useful messages.

On my devices when I set the GPIO0 to GND, and reboot I receive...

18:09:43.897 -> rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
18:09:43.932 -> waiting for download

Might also be worth powering the ESP32 externally rather than using the USB. cable... they can draw quite a lot of current.

@red_car, I have tried powering it externally and have also used the serial monitor to see if it gave me any information. My serial monitor says the same thing yours does.

I suspect that maybe the board you have selected doesn't match what you actually have.

Maybe try some of the other ESP32 boards.

@red_car, I chose ESP32 Dev Board, shouldn't that work for the whole ESP32-WROOM series?