SONOFF - ESP8266 Update Firmware With Arduino IDE

by adachsoft in Circuits > Audio

41112 Views, 63 Favorites, 0 Comments

SONOFF - ESP8266 Update Firmware With Arduino IDE

MainPicture.jpg

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

Components

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

Arduino IDE Setup

Arduino-1.jpg
Arduino-2.jpg
Arduino-3.jpg
Arduino-4.jpg
Arduino-5.jpg
Arduino-6.jpg

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

Connection of USB Converter to ESP8266

Connection.jpg
Connection-wires.jpg

PL2303 pin ESP8266 pin
GND GND
3.3v 3.3v
RX TX
TX RX

Flashing a Custom Firmware to SONOFF

Arduino-failed.jpg
Arduino-success.jpg

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() {
Serial.begin(115200);

Serial.println("START");

pinMode(LED_PIN, OUTPUT);

}

void loop() {

digitalWrite(LED_PIN, HIGH);

delay(1000);

digitalWrite(LED_PIN, LOW);

delay(1000);

Serial.println("LED");

}

ESP8266 and multiple temperature sensors DS18b20 with HTTP server