Introduction: SONOFF - ESP8266 Update Firmware With Arduino IDE

This is a guide how to upload new firmware using Arduino IDE. Sonoff is a ESP8266 based WiFi wireless switch that can connect to appliance of different types and brands. This is a smart switch to control any device on 110v and 230v.

See this project here: SONOFF - ESP8266 update firmware with Arduino IDE

Step 1: Components

  • SONOFF - WiFi Wireless Smart Switch
  • PL2303 - USB to UART Converter
  • USB cable
  • Several wires
  • Switch

Step 2: Arduino IDE Setup

At the beginning we need the Arduino IDE, If you do not have it then you can download from this site Arduino IDE download To be able to program ESP8266 in the Arduino environment, we need to install the additional platform ESP8266 to the Arduino environment.

Our option settings in In the Arduino IDE should look like this:

  • Flash Mode: DIO
  • Flash Frequency: 40MHz
  • Upload Using: Serial
  • CPU Frequency: 80MHz
  • Flash Size: 1M (64K SPIFFS)
  • Debug Port: Disabled
  • Debug Level: None
  • Reset Method: ck
  • Upload Speed: 115200
  • Port: Your COM port connected to sonoff

Step 3: Connection of USB Converter to ESP8266

PL2303 pinESP8266 pin

Step 4: Flashing a Custom Firmware to SONOFF

Do not connect AC power during the flash cable connection.
To flash the new software to our SONOFF, we have to start Sonoff in flash mode. Follow this steps process:Connection of USB converter to SONOFFHold down the SONOFF buttonToggle the switch to apply power to the Sonoff circuitThen, we can release the SONOFF buttonAfter SONOFF is in flash mode, we can upload new software.This program is very simple, so it is great for first flashing.

#define LED_PIN 13

void setup() {




void loop() {

digitalWrite(LED_PIN, HIGH);


digitalWrite(LED_PIN, LOW);




ESP8266 and multiple temperature sensors DS18b20 with HTTP server


AlessandroG2 (author)2017-07-19


followed this instruction, Arduino IDE says [100% ] uploaded, so I have disconnected my board from FTDI and PC and connected it to AC...but nothing happens, no led blinking; same thing with 2 different board; what i'm missing? can you help?

EmanueleF (author)AlessandroG22017-08-16

me too....with the last 2 board receved on 2017.08.17, previously board receved at may works fine...

AlessandroG2 (author)EmanueleF2017-08-16

right today I was finally able to flash and have it works using as board esp8285 instead of esp8266 or the Arduino IDE. Try if it works also for you

EmanueleF (author)AlessandroG22017-08-16

me too arrived to the same solution 5 minutes ago...