How to upload program from Arduino IDE to ESP-01s with ESP32

I want to use ESP-01S in my project to create Wifi Modem. So i just want to send program to esp-01s with esp32 if that's possible. I tried to simply connect VCC, GND, RX,TX, and GPIO to Ground to go in programming mode. So i tried to set esp32 just to be without any programms but it doesn't work. Of course i set COM, board, and baud, but this happend when i try to upload simply program to esp-01s.

Variables and constants in RAM (global, static), used 28124 / 80192 bytes (35%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1496 initialized variables
╠══ RODATA 948 constants
╚══ BSS 25680 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59747 / 65536 bytes (91%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 26979 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 236132 / 1048576 bytes (22%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 236132 code in flash
esptool.py v3.0
Serial port COM3
Connecting......................................_____
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header.

I don't have any ch340, ftdi ft232rl or similary modul, only ESP32.
Any help?

Welcome to the forum

Please explain in detail how the Rx and Tx pins of both boards are connected. A schematic would be helpful

My recommendation would be to get one of those! CP2102 also good.

shopping (1)

Esp-01s Esp32
VCC 3,3V
GND GND
Tx Gpio3 (Rx)
Rx Gpio1(Tx)
GPio0 GND

I didn't use button between Gpio0 (esp-01s) and Ground. All i want is to set the es32 to be the bridge between pc and esp-01s.

Try connecting the ESP32 EN pin to ground. That will keep the ESP32 disabled while you do the upload

Good one.

I have another option.

Upload a modified version of the 'SerialPassThrough' example onto the ESP32.

void setup() {
  Serial.begin(115200); // baudrates to match ESP-01upload speed
  Serial2.begin(115200);
}

void loop() {
  if (Serial.available()) {      // If anything comes in Serial (USB),
    Serial2.write(Serial.read());   // read it and send it out Serial1 (pins 0 & 1)
  }

  if (Serial2.available()) {     // If anything comes in Serial1 (pins 0 & 1)
    Serial.write(Serial2.read());   // read it and send it out Serial (USB)
  }
}

Set the dtr on in the IDE to 'no dtr' preventing the ESP32 to go into the wrong boot mode.

connect the ESP-01 RX & TX pins crossed over to the Serial 2 pins on the ESP32 (RX to TX & TX to RX) and that should work

CH_PD / EN should always be connected to 3.3v / Vcc

@jim-p solution is obviously much simpler.

1 Like