Flasheando Sonoff Basic con la Raspberry Pi 2

Flasheando Sonoff Basic con la Raspberry Pi 2

En esta guía veremos cómo poder flashear Tasmota en nuestro Sonoff Basic, para así integrarlo a nuestro gusto con otros servicios y no depender de dudosos servicios chinos. Aquí lo haremos con una Raspbery Pi 2, ya que puede que haya gente interesada que tenga una Raspberry pero no un USB-TTL dedicado, y el flasheador WiFi no funciona a partir del FW v1.6 (si tienes un Sonoff con FW ≤ 1.6, inténtalo)

Material utilizado

  • Raspberry Pi 2
  • Raspbian Lite, cabe en una SD de 4GB
  • Cargador de móvil de 1.5A
  • Cuatro cables para comunicar la RPi y el Sonoff. En mi caso me han servido los cables de los altavoces de un equipo de música.

Procedimiento

¿Raspbian recién instalado?

Si usamos la Raspberry por WiFi, antes de continuar deberemos configurarlo de la siguiente forma, además de activar el SSH:
https://raspberrypi.stackexchange.com/a/62731

1. Si es Raspbian Lite recien instalado, instalar pip:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && sudo python get-pip.py
Si es Raspbian con escritorio, saltad este paso pues ya lo incluye.

2. Instalamos ESPtool:

sudo pip install esptool

3. Preparar el TTL.

Intruducimos los comandos:
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]

Para hacer una copia del archivo que modificaremos a continuación:
sudo cp /boot/cmdline.txt /boot/cmdline.bak

Entramos en:
sudo nano /boot/cmdline.txt
Y eliminamos el siguiente texto console=serial0,115200
Para guardar: Ctrl+X, Y, Enter.

Entramos en:
sudo nano /boot/config.txt
Y añadimos al final una línea nueva: enable_uart=1
Guardamos como antes.

Reiniciamos con sudo reboot now, aunque para el siguiente paso recomiendo apagar totalmente la Pi.

4. Preparar la conexión con el Sonoff

Desmontamos el Sonoff Basic. La tapa trasera es fácil de quitar.
Lo conectamos a la Raspberry como sigue:

Configuración de pines.
Conectores GPIO de la Raspberry Pi, modelo 2B en este caso.
Parte trasera del Sonoff Basic con los conectores seriales conectados.

5. Conectamos la Raspberry a la corriente.

OJO, DESCONECTAR EL CABLE 3.3v DE LA RASPBERRY!!!

6. ¡MANOS A LA OBRA!

Descargamos el FW de Tasmota:
Versión normal:
wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.3.0/sonoff.bin
Versión Classic:
wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.3.0/sonoff-classic.bin

Con el cable 3.3V desconectado, lo conectamos mientras a la vez mantenemos pulsado el botón del Sonoff.

  • El siguiente comando borra la memoria del ESP del Sonoff. Se recomienda hacerlo para evitar resíduos que entorpezcan el "flasheo definitivo".
    esptool.py --port /dev/ttyAMA0 erase_flash
    borrado-memoria-sonoff

Desconectamos el cable 3.3V y lo volvemos a conectar con el botón pulsado.

  • El siguiente comando flashea Tasmota en el ESP del Sonoff.
    esptool.py --port /dev/ttyAMA0 write_flash -fm dout 0x0 /home/pi/sonoff
    En el caso de Tasmota Classic, por si lo preferimos o tenemos algún problema:
    esptool.py --port /dev/ttyAMA0 write_flash -fm dout 0x0 /home/pi/sonoff-classic.bin
    flashear-sonoff

El siguiente comando permite introducir comandos en Tasmota. Aquí configuraremos la red WiFi a la que se conectará el Sonoff.

  • Conectamos el cable 3.3V directamente a la Raspberry sin pulsar nada. Se encenderá el LED del Sonoff.
    miniterm.py /dev/ttyAMA0 115200 -e
    Tras ejecutar el comando veremos algo similar a:
    arranque-sonoff-via-pi

Para configurar el WiFi escribiremos:
ssid WifiAlQueConectarse
<pulsar tecla ENTER>
password ContrasenaDelWifi
<pulsar tecla ENTER otra vez>

Se recomienda no usar espacios ni caracteres especiales.
ejemplo-clave-y-ssid-sonoff

La respuesta será similar a la de la imagen:
respuesta-wifi-sonoff

En unos instantes deberíamos ver algo parecido a esto:
ejecucion-tasmota-sonoff

¡Nuestro Sonoff está ejecutando Tasmota correctamente!

Ahora podemos quitar los cables seriales y conectar nuestro Sonoff Basic a la corriente para configurarlo y hacer lo que queramos con él, como asociarlo con Home Assistant.

Recomendaciones

  • Si notamos algo raro, una pequeña solución es volver a borrar el flash y volver a grabar Tasmota. Si seguimos teniendo problemas, reiniciar la Raspberry puede ayudar, o descargar de nuevo los .bin pues pueden dañarse al descargarlos/copiarlos.
  • Actualmente cualquier persona/dispositivo de nuestra red puede entrar a la configuración de nuestro Sonoff y causar estragos. Tasmota incluye una función de protección por contraseña para evitar intrusos:
    pasos-proteccion
    Cuando queramos entrar nos aparecerá esto:
    clave
    El usuario es admin y la contraseña es la que hemos establecido.