Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe

Esp8266 Programmed in Arduino Ide using ft232 programmer and Arduino

By EG Projects August 14, 2019

Recently i made a pcb board which involves an esp8266 wifi module installed on it. I wanted to upload the code to esp8266 flash while it is installed on the board. So i pulled out its programming interface pins as a stand alone connector. While doing this project i encountered some problems and the most annoying was uploading code to the esp8266 flash. Finally i overcome the uploading problem and decided to make a post for the newbies to counter this problem effectively and efficiently. 

Esp8266 is a wifi soc(system on chip) with a built in TCP/IP stack. The chip can host a server and can be used as a stand alone client. Esp8266 is programmed using its uart serial interface. Esp8266 can be programmed OTA(over the air) and by uart interface. For this tutorial we are only going with the uart interface. FT232 is a versatile adapter, its function is to transfer data from usb to uart. It serial interface supports 7/8 data transfer bits,1/2 stop bit,parity check mark/space check and without check.

Before beginning any further i consider that you  have already installed the esp8266 core files for arduino ide. If not than here is a good tutorial. http://esp8266.github.io/Arduino/versions/2.0.0/doc/installing.html. I also consider that you have installed the drivers for the ft232 module if not than follow the tutorial. https://learn.sparkfun.com/tutorials/how-to-install-ftdi-drivers/all

I used an esp8266-01 board for the project. Code is written in arduino Ide and uploaded to esp8266 flash using ftdi ft232 usb to uart module. Esp8266 supports upload speeds of 9600, 57600, 115200, 256000, 921600 bps. The ideal speed is 115200 bps. Speeds greater than 115200 are less likely to communicate and errors originates at speeds higher than 115200 bps. So i will recommend to only upload the code at speed of 115200 bps. I am also uploading code to esp8266 at this speed for this tutorial. Code uploading speed and other settings are shown in the figure below. I am using ESP-01, so i selected Board: “Generic ESP8266 Module”. Select the right port occupied by the ft232 module, before uploading the code.

Note: In the figure on the right side. Uploading option is selected as serial. When the uploading method is serial and we are using ft232 for uploading code then we do not need to select any programmer. The serial is default uploading method and selecting any programmer will not effect the uploading process.      

Esp8266 upload code with FT232 programmer Settings- Arduino Ide

Esp8266 Upload Settings

Esp8266 Upload Settings ft232

Programmer selection in arduino ide for uploading code to esp8266 using ft232

Programmer selection in arduino ide for uploading code to esp8266 using ft232

Connection diagram between ft232 and esp8266 wifi module

esp8266 with ft232 usb to uart module

esp8266 with ft232 usb to uart module

Esp8266 with ft232 and lm7805 upload using arduino ide

Esp8266 with ft232 and lm7805 upload using arduino ide

Esp8266 consumes about 80mA in normal mode and goes to 300mA at data browsing. It operates on 3.3v. 80mA at 3.3v in normal mode is a lot of power. It can drain a small battery in just few hours. Its impossible to use esp8266 in stand alone products. A rechargeable circuit is necessary to charge the batteries or using a continuous power source is also a solution.
The above circuit is used to program the esp8266 wifi module with ft232 usb to uart converter and arduino ide. Esp8266 is supplied power by an external 5v power supply. I used LM7805 regulator to convert 12v input to 5v output. At output i connected two diodes in series to drop around 1.4 volts. The remaining voltage 3.7v almost is supplied to esp8266 module.
​
Connections:
Rx of esp8266 with Tx of ft232.
​Tx of esp8266 with Rx of ft232.   
Ground GPIO-0 of esp8266.
Make ground of both Esp8266 and ft232 common.

Vcc and CH_PD common.

Note: Powering esp8266 with ft232 and uploading code does not worked for me. Powering the esp8266 module externally solves the problem. 

Connection diagram Esp8266 with Arduino uno

In this uploading method we by pass the arduino uno atmega328 chip. We put the chip in continuous reset mode. Arduino uno is also programmed using serial communication. We use this serial channel to program our esp8266 module. Older arduino boards uses an atmega8 chip to program the atmega328 serially. But the Chinese clones used a dedicated chip ch340 to program the atmega328, also they changed the atmega328 from dip to smd package so its impossible to remove atmega328 chip. I programmed the esp8266 while the atmega328 chip is present on the arduino board. Connection diagram between arduino uno and esp8266 is shown below. Here also i powered the esp8266 with an external power source and made the arduino uno and esp8266 ground common. 

Connections:
Rx of esp8266 with Rx of Arduino. (Note: The connection difference)
​Tx of esp8266 with Tx of Arduino.  
(Note: The connection difference) 
Ground GPIO-0 of esp8266.

Vcc and CH_PD common.
Make ground of both Esp8266 and Arduino common.
Connect arduino reset to ground to by pass the uploading to arduino uno and make arduino continuously in reset mode.
Select the “Generic esp8266 board” from boards.

Select the arduino port.
Programmer as “AVR ISP”

I am able to upload code easily but some newbies says it didn’t worked for them. I recommend that if the method did not worked for you take this you tube tutorial. https://www.youtube.com/watch?v=P_ecAFpUADU. 

Arduino uno and sep8266 connections

Arduino uno and sep8266 connections

Esp8266 Blink example

Now i am going to present a simple blink project to prove that the upper setting works. Led is connected to pin#2 of esp8266 and is blinking every half a second. The video below is showing the uploading process. During uploading the led at ft232 and esp8266 flashes. Arduino ide will show the dots moving as a status, of uploading code. After uploading the led starts blinking. 
Please give us your feed back on the project and share your experience with us. If you have any queries write them below in the comments section.

Watch the Project video Here


Filed Under: ESP8266, Microcontroller Projects

 

Next Article

← Previous Article
Next Article →

Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.



Tell Us What You Think!! Cancel reply

You must be logged in to post a comment.

EE TECH TOOLBOX

“ee
Tech Toolbox: Internet of Things
Explore practical strategies for minimizing attack surfaces, managing memory efficiently, and securing firmware. Download now to ensure your IoT implementations remain secure, efficient, and future-ready.

EE Learning Center

EE Learning Center
“engineers
EXPAND YOUR KNOWLEDGE AND STAY CONNECTED
Get the latest info on technologies, tools and strategies for EE professionals.

HAVE A QUESTION?

Have a technical question about an article or other engineering questions? Check out our engineering forums EDABoard.com and Electro-Tech-Online.com where you can get those questions asked and answered by your peers!


RSS EDABOARD.com Discussions

  • Voltage mode pushpull is a nonsense SMPS?
  • Input impedance matching network
  • High Side current sensing
  • The comparison of different Tcl script checkers
  • Reducing "shoot-through" in offline Full Bridge SMPS?

RSS Electro-Tech-Online.com Discussions

  • Is AI making embedded software developers more productive?
  • Back to the old BASIC days
  • Parts required for a personal project
  • PIC KIT 3 not able to program dsPIC
  • Failure of polypropylene motor-run capacitors

Featured – RPi Python Programming (27 Part)

  • RPi Python Programming 21: The SIM900A AT commands
  • RPi Python Programming 22: Calls & SMS using a SIM900A GSM-GPRS modem
  • RPi Python Programming 23: Interfacing a NEO-6MV2 GPS module with Raspberry Pi
  • RPi Python Programming 24: I2C explained
  • RPi Python Programming 25 – Synchronous serial communication in Raspberry Pi using I2C protocol
  • RPi Python Programming 26 – Interfacing ADXL345 accelerometer sensor with Raspberry Pi

Recent Articles

  • What is AWS IoT Core and when should you use it?
  • AC-DC power supply extends voltage range to 800 V DC
  • Infineon’s inductive sensor integrates coil system driver, signal conditioning circuits and DSP
  • Arm Cortex-M23 MCU delivers 87.5 µA/MHz active mode
  • STMicroelectronics releases automotive amplifiers with in-play open-load detection

EE ENGINEERING TRAINING DAYS

engineering

Submit a Guest Post

submit a guest post
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • Battery Power Tips
  • DesignFast
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • EV Engineering
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • Subscribe to our newsletter
  • About Us
  • Contact Us
  • Advertise

Copyright © 2025 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy

Search Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Audio Electronics
      • Battery Management
      • Brainwave
      • Electric Vehicles
      • EMI/EMC/RFI
      • Hardware Filters
      • IoT tutorials
      • Power Tutorials
      • Python
      • Sensors
      • USB
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
    • DesignFast
  • Guest Post Guidelines
  • Advertise
  • Subscribe