elahd / esp2ino

OTA Third Party Firmware Flasher for the original Wyze Plug (WLPP1) and Wyze Bulb (WLPA19).
MIT License
54 stars 4 forks source link

GitHub release (latest by date) GitHub all releases GitHub Buy Me A Coffee

☠☠☠

Wyze recently changed their API in a way that prevents esp2ino from being loaded onto their devices. If you're technically inclined, see this GitHub issue for a workaround. Otherwise, check back here for updates...

☠☠☠


esp2ino

Formerly Wyze Plug Flasher

Free your ESP8266-based smart home devices from vendor lock-in. esp2ino loads Arduino-based third-party firmware (Tasmota, ESPurna, ESPEasy, etc.) on to ESP8266-based devices over-the-air.


Purpose

The ESP8266 is a cheap and ubiquitous microcontroller that powers many consumer smart home devices, most of which are agents of vendor lock in. esp2ino lets you install your own Arduino-based firmware onto ESP8266-based devices over the air — that is, without physically opening the device.

Supported Devices

  1. Wyze Plug (model WLPP1)
  2. Wyze Bulb (model WLPA19)

Theoretically, esp2ino can convert most new ESP8266 based devices. See Contibuting in the wiki for more information.

How it Works

Manufacturer firmware for ESP8266-based devices are usually built on the ESP8266 RTOS SDK. This SDK is maintained by Espressif, the chip's manufacturer. ESP8266_RTOS_SDK's bootloader cannot boot Arduino-based firmware. In order to boot Arduino-based firmware, you have to replace the ESP8266_RTOS_SDK bootloader. There are now two options for doing this:

  1. Serial Connection: Physically open the device and load firmware over a serial connection while the device is offline. This is easy on some devices, but is destructive and time-consuming on others.
  2. esp2ino: Force the device to load esp2ino. Once installed, esp2ino replaces the ESP8266_RTOS_SDK bootloader with Arduino's eboot bootloader while the device is running. It then loads the Arduino-based firmware of your choice onto the device. After performing this critical task, esp2ino deletes itself.

⚠️ Warnings & Liability Disclaimers

  1. This is a one-way conversion. esp2ino has a backup function, but the only way to restore your device from the backup is over a serial connection. That is, you'd need to open your device and solder wires to its PCB.
  2. This is alpha software with alpha-level code quality and stability. It has not been thoroughly tested. You're more likely to brick your device with this loader than you are with a more mature project like Tuya-Convert.
  3. This project is not supported by or otherwise affiliated with Wyze or Espressif Systems. It's a hobby project maintained by an individual, built for personal use, and shared without any guarantees.
  4. Loading third party firmware may void your warranty.
  5. Loading third party firmware may brick your device 🧱, cause it to catch fire 🔥, or just cause unexpected behavior 🤪. Liability for this falls on you!

This software is provided as-is with no guarantees as to quality, features, functionality, or safety. Use of this software is entirely at your own risk. You agree to not hold the author liable for damage, loss of life, financial damages, loss of functionality, etc.


Install Instructions

See install page in the wiki.


Contributing

See the Contributing page in the wiki or just buy me a coffee.


esp2ino vs tuya-convert

esp2ino borrows concepts from tuya-convert. For background, tuya-convert has two basic parts:

  1. Firmware loader. This tricks the IoT device into accepting third party firmware by emulating Tuya's cloud infrastructure.
  2. Intermediate firmware. This firmware modifies the device's bootloader to accept Arduino-based firmwares.

esp2ino is different from tuya-convert in the following ways:

  1. Firmware loader. esp2ino currently targets two Wyze products and uses the WyzeUpdater script to push esp2ino's intermediate firmware onto these devices. Tuya-convert targets devices manufactured by Tuya Smart and loads itself onto devices using Tuya-convert's own loader. (Tuya devices are sold under white label by various manufacturers.)
  2. Intermediate firmware. Tuya-convert's intermediate firmware targets devices with firmware built on versions < 3.0 of the ESP8266 RTOS SDK. esp2ino targets devices with firmware built on ESP8266 RTOS SDK versions >= v 3.0.

Sources

esp2ino builds on:

  1. WyzeUpdater
  2. Tuya-Convert
  3. Espressif's ESP8266_RTOS_SDK program samples.
  4. vtrust's esp8266-ota-flash-convert