Prerequisite - RTurala/Sonoff-Tasmota GitHub Wiki

Needed Hardware

  • One of the supported ESP8266 modules
  • A really good quality USB-to-Serial Converter that can supply sufficient 3.3V to power the device (or a separate 3.3V power supply).
    • Beefy FTDI (example) - this one should provide enough power to work correctly.
    • CH340G based USB-Serial board (example - many people have had good luck with these types of boards and the generic ones seem to work just fine.
    • Basic FTDI USB-to-Serial Converter/Programmer (example) - this works for some people but some people have trouble using this to power the device and flashing does not always work. Using an external 3V3 supply might be necessary, since the FTDI part is only rated to supply 50mA and that is much less than the esp8266 requires.
    • RaspberryPi - this can work, but it is trickier to get to work and some people struggle with it.
    • Or, start with a NodeMCU or Wemos D1, which have a built-in USB connector and can make learning how to flash much easier
  • Please note that there are some programmers that can be switched between 3.3 V and 5 V for the data pins, but still provide 5V on the power pin. This might fry your devices. You MUST make sure both the data and power pins are set for 3.3V.
  • Soldering iron and header pins

Needed Software

There are now binaries available to download and install. Installing a binary is much easier than configuring PlatformIO or Arduino to build this project. Look at the links on the right for Esptool (under upload tools) for instructions on how to use it to flash a pre-built binary to your device.

If you need/want to modify the code or default settings, you can use either of the following:

  1. PlatformIO (all needed libraries and settings are pre-configured in platformio.ini)

See the PlatformIO or Visual Studio Code links in the right hand menu.

  1. Arduino IDE

See the Arduino IDE link in the right hand menu.

Other Requirements

  • The willingness to solder and tinker
  • The firmware source code found here
  • An MQTT broker
  • An MQTT client to interact with the Sonoff module (Desktop Client, Android App, Home Automation Software, ...)