Hi!
I've been trying to make an ESP-01S work with an Arduino MEGA 2560 for 3 days now, reading countless threads and guides without success.
The equipment:
Controllers:
ESP-01S:
https://www.amazon.ca/dp/B00O34AGSU?psc=1&ref=ppx_yo2ov_dt_b_product_details
Arduino MEGA 2560 R3:
https://www.amazon.ca/dp/B01H4ZLZLQ?psc=1&ref=ppx_yo2ov_dt_b_product_details
LF33CV:
https://www.mouser.ca/ProductDetail/STMicroelectronics/LF33CV?qs=LPKLnBpMevjK%252B28MZYQO9Q%3D%3D
Power supply 5V60A:
https://www.amazon.ca/gp/product/B01D8FLZV6/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&th=1
The software:
Arduino IDE 2.3.2
Board manager esp8266 by ESP8266 community 3.1.2
IDE preferences setup showing the additional board manager which I use:
Here is the wiring schematic I followed, it show a UNO but thats how I wired the MEGA on the ESP-01S:
Power:
I found a couple of threads mentioning the Arduino's 3v3 volt pin not having enough mA to actually drive the ESP-01S so I used an LF33CV regulator to modulate the 5V I'm getting from the 5V60A power supply to 3.3V:
Here is the result:
The schematic I'm using with the power supply and LF33CV looks like that:
Wiring:
Here is what the ESP-01S wiring looks like:
The live wire coming from the LF33CV is split into these 3 orange wires:
Here is the back of the chip where you can see them plugged in the [3v3/VCC], [RST] and [EN/CH_PD] pins:
The ground wiring is the white wire that goes between the LF33CV's center pin, Arduino's GND pin and the ESP-01S GND pin:
The MEGA GND pin (white), RX pin (green) and TX pin (yellow) wired:
The ESP-01S with the GND, RX and TX pins:
The overall setup view:
Here is a video of the chip booting where we can see the blue led blink:
In the Arduino IDE I have the the right COM port and able to upload sketches to the MEGA 2560:
For the time being I uploaded an empty script to make sure nothing interfere with the ESP-01S.
I then selected the "Generic ESP8266 Module" board to switch the IDE to communicate with the ESP-01S instead of the MEGA:
After doing this the selected board showing in the top left box of the IDE display "Generic ESP8266 Module"
In this wiring configuration if I setup the serial monitor to use "Both NL & CR" along with the 115200 baud I'm able to send AT commands that I believe are getting reponses from the ESP-01S.
The following AT: Responses show up:
AT:
OK
AT+RST:
OK
AT+GMR:
AT version:1.7.5.0(Oct 9 2021 09:26:04)
SDK version:3.0.5(b29dcd3)
compile time:Sep 15 2022 20:04:36
OK
AT+CWMODE?:
+CWMODE:2
OK
So it seems like the ESP-01S is responding to AT commands but as when I try to upload the Blink script that come with the ESP8266 Examples scripts of the Arduino IDE to the ESP-01S I'm always getting the following time out error:
. Variables and constants in RAM (global, static), used 28080 / 80192 bytes (35%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1496 initialized variables
╠══ RODATA 920 constants
╚══ BSS 25664 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59667 / 65536 bytes (91%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 26899 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 231732 / 1048576 bytes (22%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 231732 code in flash
esptool.py v3.0
Serial port COM9
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
Then I tried pulling the ESP-01S GPIO0 LOW since I read this is required to set the ESP-01S into "flashing" mode which would be required for uploading sketches to it?
Since nothing worked yet I'm not even sure this is the right thing to do, it sounded like a config if you want to flash the firmware, not uploading a simple script to it... but I tried it.
The ground wiring I connected to the IO0 pin:
Here is the overall setup again but this time WITH the ESP-01S's GPIO0 pulled LOW which has the ground wire connected / split between the LF33CV, MEGA and ESP-01S GND and GPIO0 pins:
The schematic looks like that at this stage:
And this time around when I upload a sketch to the ESP-01S I do see a lot of activity from its blue led that sometimes even blink at the same rhythm as the MEGA led:
Obviously I was having a moment of high hope that was utterly crushed by the same very annoying time out error ![]()
I tried uploading from 2 different computers, used 3 different serial wires and didn't use extensions or anything like that.
Always getting this time out error.
I'm a bit confused by some threads stating that TX should be wired to RX?
I'm not getting anywhere when I use this configuration (uploading sketch and AT commands, nothing work) but I'm probably missing fundamental details about that too.
Does anybody here has an idea of what I'm missing?
Any help will be greatly appreciated.




















