Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » How To Program Raw ESP8266-12E/F Chip using Arduino IDE
ESP8266 Projects

How To Program Raw ESP8266-12E/F Chip using Arduino IDE

Dolendra VikasBy Dolendra VikasUpdated:May 29, 20237 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Program ESP8266 Raw Chip
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Overview: Programming ESP8266 Raw Chip

In this article, we will go through how to program the raw ESP8266 (ESP8266-12E/F) chip as well as the accompanying circuit that allows the chip to function in real-time applications. We shall see the ESP8266 Programmer Circuit & PCB at the end of this article, which is very tiny & compact for real-time projects.

The NodeMCU is well-known among electronics amateurs and IoT specialists alike. NodeMCU is the first development board that springs to mind when one has to prototype something that involves WiFi. Using the NodeMCU board during the prototype process is the best solution. However, when the prototype and testing phases are completed, employing the entire NodeMCU board in the project’s PCB is not a wise idea. One requires the ESP8266-12E/F raw chip and not the entire development board, which is meant for newcomers to work easily on.

Using the raw ESP8266-12E/F chip reduces the cost of the project and increases the robustness. We can easily program this raw chip with an external programmer by hooking up a few wires to the custom PCB. So let us learn to program Raw ESP8266 Chip using Arduino IDE


Bill of Materials

To make this project work on a breadboard, you will need the following supplies.

S.No.ComponentsQuantity
1ESP-12E/F1
210K / 12K ohm resistors5
322K ohm resistor2
4330 ohm resistor1
5470PF capacitor1
60.1 micro F capacitor1
7NPN transistor (BC547)2
8Push Buttons2
9Single strand hookup wire
10Jumper wires
11FDTI converter (USB to UART bridge)1



Traditionally way of using NodeMCU

During the prototyping phase of the project, we develop the firmware either in Arduino IDE or the Platform IO and upload the firmware by plugging the USB jack into the NodeMCU and selecting the appropriate port and board in the Arduino IDE or Platform IO (in Platform IO, it automatically detects the port, you can also choose the port by configuring the upload options in platfomio.ini,  for more upload options).

Firmware is loaded onto the chip using a USB to UART bridge built in the NodeMCU. The chip should be reset in flash mode before flashing the firmware, and the inbuilt USB to UART bridge translates the USB data into UART format and communicates with the device through RXD0 and TXD0 pins. This is all handled automatically by the supporting circuit built on the NodeMCU.

When the auto-loading fails, additional Flash and Reset pins are given to restart the NodeMCU in flash mode.


Programming Raw ESP8266 Chip

Let’s look through the raw chip’s physical characteristics and specs. This is a necessary step before learning how to program the ESP8266 chip.

ESP-12E pinout

Pin configurations

The ESP-12E module has 22 pins; let’s look at what each one does.

PinName Description
1RSTReset Pin of the module
2ADCAnalog Input Pin for 10-bit ADC (0V to1V)
3ENModule Enable Pin (Active HIGH)
4,5,6,7,11,12, 16, 17, 18, 19, 20GPIO16, GPIO14, GPIO12, GPIO13, GPIO9, GPIO10, GPIO15, GPIO2, GPIO0, GPIO4, GPIO5General Purpose Input Output Pins
8VDD+3.3V Power Input
9CS0Chip selection Pin of SPI interface
10MISOMISO Pin of SPI interface
13MOSIMOSI Pin of SPI interface
14SCLKClock Pin of SPI interface
15GNDGround Pin
21RXD0UART0 RXD Pin
22TXD0UART0 TXD Pin

To program the raw chip, we must have access to its pins and a thorough understanding of the chip’s operation, booting, and flashing processes.

ESP-12E physical dimensions

The physical dimensions of the module are 16mm × 24mm × 3mm, and the lead pitch is 2mm. But the lead pitch of the breadboard is 2.54mm (0.1 inc). To make this chip breadboard-friendly I have soldered the single strand hookup wires to the chip.




Different booting modes

Booting optionsEnable pin (EN)GPIO0GPIO2GPIO15
Programming ModeHighLowHighLow
Flash start-up (normal mode)HighHighHigh Low
SD card boot-upHighLowLow High

We can reboot the ESP8266-12E/F in multiple booting modes by pulling up or down on specific GPIOs. In order to upload the firmware, we should first boot the chip in programming mode. The chip should boot in flash start-up mode during regular modes. As a result, we’re just interested in the first two booting modes.

In both working modes, the enable(EN) and GPIO2 pins are HIGH, while the GPIO15 pin is LOW, as shown in the table above. So, pull up the enable (EN), GPIO2, and pull down the GPIO15 pin with 10K/12K ohm resistors. The reset pin and GPIO0 pin are normally held high and connected to the ground with push buttons.

manual flashing schematic


Flashing process

Let us see how we can Program ESP8266 Chip. First Power on the circuit by pressing the push button of the GPIO0 and release this pushbutton after the chip boots up. Now the chip is booted in the programming mode.

Now take any USB to the UART bridge (FT232RL recommended) and connect the RX and TX pins of FT232RL to the TXD0 and RXD0 pins of the chip, also make sure that the jumper on the FT232RL module is toggled to 3.3V.

Connect the FT232RL to the computer and upload the firmware. Following are the upload options that you need to follow while uploading the firmware using Arduino. Select the board type as generic esp8266 module, upload speed as 115200, and choose the correct port. With platform IO, selecting the board option as Espressif ESP8266 ESPf-12E will work.

After completion of the flashing, restart the chip by pressing the reset push button to boot in normal mode.

ESP-12E manual flashing circuit

This process requires manual intervention like pressing the push button and reset button. To this manual interventions and flash the firmware into the chip seamlessly as we do with the NodeMCU we need to use the DTR (Data Terminal Ready) and RTS (Ready to Send) signals of the FT232RL USB to UART bridge.

The RTS pin of the FT232RL module is located at a different place where you need to solder the male header to access that pin.

FTDI with RTS pins

Automatic flashing

The ESP8266 Programmer Circuit or the automatic flashing circuit is almost similar to the manual flashing circuit with some additional transistor circuit that deals with the DTR and RTS pins of FT232RL.

RTS signal is used for resetting the chip and the DTR signal is used for keeping the chip in flash mode. Transistors(BC547) Q1 and Q2 are used to keep the chip in flash mode when the upload command is detected and a new sketch can be uploaded to it seamlessly.

These transistors also ensure that the chip doesn’t reset when the DTR and RTS signals are low, and also start the chip in the normal mode (Flash start-up) in the absence of upload command.

ESP8266 Programmer Circuit

At the time of writing this article, I had the BC547 NPN transistor and 470pF capacitor in an SMD package. As a result, I attached these components to the male headers to make it breadboard compatible.

Complete the wiring as shown in the schematic and connect the RTS, DTR, RX, TX, VCC, and GND pins of the FT232RL to the appropriate pins of the chip. Also, make sure that the jumper on the FT232RL module is set to 3.3V.

ESP-12E automatic flashing circuit

After making connections, connect the FT232RL module to the compute and follow the upload options as discussed earlier. Now you can find that the firmware is flashed seamlessly without manual intervention. We can also use the two pushbuttons (reset and flash) to upload the firmware when the autoloading/auto flashing firmware fails.



Compact PCB for the Autoflashing circuit

If you want a compact ESP8266-12E/F programmer with the power supply to it and access to a few GPIOs of the chip, then here is the PCB for you. This ESP8266 Programmer Circuit PCB is designed in the EasyEDA. The following figure is the schematic footprint of the circuit.

The Gerber File for the PCB is given below. You can simply download the Gerber File and order the PCB from ALLPCB at 1$ only.

Download Gerber File: ESP8266-12E/F programmer

You can use this Gerber file to order high quality PCB for this project. To do that visit the ALLPCB official website by clicking here: https://www.allpcb.com/.

You can now upload the Gerber File by choosing the Quote Now option. From these options, you can choose the Material Type, Dimensions, Quantity, Thickness, Solder Mask Color and other required parameters.

After filling all details, select your country and shipping method. Finally you can place the order.

You can assemble the components on the PCB Board.

You can also add some Battery charging IC and add some active-passive components to make your Battery Powered ESP8266 Board for IoT applications.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleESP32 CAM Based Face & Eyes Recognition System
Next Article How to use TFMini-S LiDAR Distance Sensor with Arduino

Related Posts

Humidity & Temperature Monitoring using DHT11 & NodeMCU on ThingSpeak

ESP8266 & DHT11 Humidity Temperature Monitor on ThingSpeak

Updated:October 19, 20253443K
Water Tank Level Monitoring System with GSM & ESP8266

Monitor Water Tank Level with GSM & ESP8266 on Blynk

Updated:June 28, 20255K
IoT-enabled Smart Fridge with ESP8266 & DS18B20

IoT-enabled Smart Fridge with ESP8266 WebServer

Updated:February 2, 202525K
How to Flash or Upgrade Firmware on ESP8266 (ESP-01)

How to Flash or Upgrade Firmware on ESP8266 (ESP-01)

Updated:February 2, 202514K
IoT Based Patient Health Monitoring System using ESP8266 & Arduino

IoT Patient Health Monitoring with ESP8266 & Arduino

Updated:February 2, 2025156K
IoT Solar Panel Monitoring System with ESP8266 & MQTT

IoT Solar Panel Monitoring System with ESP8266 & MQTT

Updated:February 2, 202518K
Add A Comment

CommentsCancel reply

Latest Posts
ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

June 21, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
Top Posts & Pages
  • ESP32 Fingerprint Attendance System with Live Web Dashboard
    ESP32 Fingerprint Attendance System with Live Web Dashboard
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • LD2410 Sensor with ESP32 - Human Presence Detection
    LD2410 Sensor with ESP32 - Human Presence Detection
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • Silicon Controlled Rectifier (SCR): Construction, Working & Applications
    Silicon Controlled Rectifier (SCR): Construction, Working & Applications
  • How to use ADS1115 16-Bit ADC Module with Arduino
    How to use ADS1115 16-Bit ADC Module with Arduino
  • DIY AC Energy Meter using PZEM-004T & Arduino
    DIY AC Energy Meter using PZEM-004T & Arduino
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (205)
    • ESP32 MicroPython (7)
    • ESP32 Projects (82)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.