|

Sonoff Firmware Update Stuck: Common Issues & Solutions

If your Sonoff smart switch or plug is stuck mid‑update—showing a solid red light, flashing blue light that never stops, or the eWeLink app reports “Updating…” for hours—the most common cause is an unstable Wi‑Fi connection or an interrupted power supply during the flash process. Before you assume the device is bricked, start with these quick checks.

First, Rule Out the Obvious

A stuck firmware update rarely means permanent failure. The flash process is interruptible, and Sonoff devices (especially the basic R3 or R5‑based units) can often recover with the right sequence. Do not unplug and replug repeatedly—that can corrupt the bootloader.

Check Power Stability

  • Confirm the device is on a circuit that isn’t being switched off by a wall switch (common with in‑wall Sonoff switches like the Sonoff T1 or ZBMINI).
  • If it’s a plug‑in Sonoff S31 or S40, make sure the outlet is not controlled by a dimmer or a smart breaker that cuts power during the update.
  • A temporary brownout or voltage dip can freeze the update. Let the device sit powered on for 10 minutes before attempting a recovery—some models auto‑retry after a timeout.

Verify Wi‑Fi Band and Signal

Sonoff devices typically only support 2.4 GHz Wi‑Fi (802.11 b/g/n).

  • If your router broadcasts a combined 2.4/5 GHz SSID, temporarily disable the 5 GHz band or create a dedicated 2.4 GHz guest network.
  • Move the device within 10–15 yards of the router. Concrete walls and metal appliances can drop the signal during the file download. Use a Wi‑Fi analyzer app to check signal strength; update stability usually requires > -70 dBm.

Check the App and Server Status

eWeLink’s OTA server occasionally goes down or throttles updates.

  • Open the eWeLink app and look for a “Server Maintenance” banner.
  • If you’re using a custom firmware (Tasmota, ESPHome, or OpenBeken), the local update file may be too large for the device’s RAM—limit to 1 MB for ESP8266‑based boards. For example, a Sonoff Basic R3 with Tasmota 14.x may fail if the .bin exceeds 1MB because the OTA partition is only 1024KB.

Quick Recovery Steps – What to Do Now

If the update bar hasn’t moved in 5+ minutes, follow this order. Do not skip steps.

Step 1: Force a Manual Reboot (Power Cycle)

1. Unplug the device (or flip the breaker for wired units).

2. Wait 30 seconds.

3. Plug it back in.

Watch the LED closely – this determines your next move:

  • If the LED goes solid red for 2 seconds then flashes slowly, the firmware was not corrupted. Try the update again from the eWeLink app. If it still fails, the server may be overloaded; wait 15 minutes and retry.
  • If the LED stays solid red or does nothing, proceed to Step 2.

Step 2: Factory Reset Without an App (Button Sequence)

Most Sonoff models (Basic, Mini, TH16, S31) share a reset pattern:

  • Press and hold the physical button for 5–10 seconds until the LED starts rapidly flashing (pairing mode).
  • Release, then press and hold again for 10 more seconds. The LED should turn off, then flash slowly.

How to confirm the reset worked: After the slow flash begins, the device is in pairing mode and ready to accept a new OTA attempt. Open the eWeLink app – if the device shows as “Offline” but you can re-add it, the bootloader is intact. Do not attempt another OTA update until you see that slow flash.

Step 3: Reflash via Serial (For Advanced Owners)

If the device is truly stuck and won’t enter pairing mode, a serial flash is the last resort.

  • You’ll need a USB‑to‑UART adapter (CP2102 or CH340, 3.3 V logic).
  • Connect TX/RX/GND and GPIO0 to GND during power‑on to enter flash mode.
  • Use esptool.py or the Sonoff‑eWeLink flash tool to install the stock firmware (.bin file from ITEAD’s repository).
  • Warning: This voids any warranty and may require soldering on sealed units (e.g., Sonoff Mini R5). Only do this if the device is otherwise unusable. For ESP32-based devices (e.g., Sonoff NSPanel), the process is similar but uses a different flash offset.

Common Causes of Update Stalls (With Examples)

Knowing why the update stuck helps you choose the correct fix.

Cause Typical Symptom Example Model
Incomplete OTA file download App says “Updating 33%” for 20 minutes Sonoff S31 (original ESP8266)
Flash memory full (custom firmware) Update initiates then fails silently Sonoff Basic R3 with Tasmota 14.x
Bad Wi‑Fi re‑association during reboot App shows “Device offline” after update loop Sonoff Mini R5
Bootloader corruption from power loss Solid red LED, no button response Sonoff TH16

Evidence example: A user with a Sonoff TH16 reported the update stuck at 66% because the eWeLink server timed out. After a factory reset (Step 2) and a fresh attempt, the update completed in 45 seconds. The root cause was an overloaded 2.4 GHz channel (neighbor’s network on same channel 6). Changing the router’s channel to 1 or 11 solved it permanently.

Evidence example 2: A Sonoff Basic R3 running Tasmota 14.0 got stuck at “Upload 84%” repeatedly. The issue was that the OTA binary size (1040KB) was slightly larger than the 1MB partition. Switching to a trimmed build of Tasmota 13.4 (950KB) allowed the update to finish. If you use custom firmware, always check the partition map with `esptool.py flash_id` before attempting an OTA.

When to Stop Troubleshooting

  • If the device has been stuck for over an hour and the button does nothing, the ESP8266/ESP32 flash may be fried.
  • If you see a burning smell, swollen capacitor, or the casing is hot to the touch, unplug immediately—do not attempt any further firmware work.
  • If the device enters a boot loop (LED flashing fast, rebooting every few seconds) even after a serial flash, the hardware is likely defective. Contact ITEAD support or replace the unit.

Stop threshold in plain terms: If you have completed Step 2 and the LED still does not flash slowly after 30 seconds of holding the button, and you are not ready to solder a serial adapter, then the DIY path ends here. Move to support or replacement.

Quick Decision Checklist

Use this quick pass before going through the full steps:

Check Pass Fail
Device powered on for 10+ min without touching ✔️ Leave it – wait ❌ Go to Step 1
Wi‑Fi is 2.4 GHz with good signal (> -70 dBm) ✔️ Proceed to update ❌ Move closer or fix band
No server issues in eWeLink app ✔️ Try update ❌ Wait 1 hour, then try
Button enters pairing mode (slow flash) ✔️ Re‑attempt OTA ❌ Go to Step 2
Serial flash detected by computer (if needed) ✔️ Use esptool ❌ Hardware failure – replace

If all checks pass but the update still fails, the firmware binary itself may be incompatible with your hardware revision (e.g., a Sonoff Basic R3 receiving an R5 update). Always download the exact firmware for your model from the official ITEAD GitHub or eWeLink app. Also verify the PCB version (often printed on the board) – a Sonoff Basic R3 v1.0 uses an ESP8285, while R3 v2.0 uses an ESP8266EX, and the flash tool differs slightly. Checking the PCB revision before reflashing can save hours of guesswork.

Explore This Topic

Related guides in this cluster:

Similar Posts