Proyecto domótica PARTE 13 - Instalar ESPurna Firmware a SonOff RF Bridge

El dispositivo Sonoff RF Bridge es un concentrador de señales de radiofrecuencia a 433Mhz, este dispositivo es muy interesante ya que permite almacenar las señales que emiten los controles inalámbricos que son usados por ejemplo para abrir puertas o para encender apagar switch a distancias.

El fabricante de este dispositivo incluye una aplicación móvil donde podemos manejarlo, conectarlo a internet, agregar hasta dieciséis señales y también crear escenas.

¿Es necesario cambiar su firmware por ESPurna?

Dependerá del objetivo de su desarrollo, en mi caso yo quiero que mis asistentes (Google o Alexa) manejen los dispositivos de forma nativa, que mi asistente sepa que un dispositivo es una luz, un interruptor, un enchufe, etc. Y que al momento de dar la orden, mi Raspberry Pi haga la traducción y le notifique al concentrador Sonoff RF Bridge lo solicitado.

Existen dos formas de modificar este dispositivo

1) Modificación solo de firmware

Si solo modificamos el firmware tendremos todas las ventajas que ofrece ESPurna, como activar las señales por medio del API Rest, mensajes MQTT, o también usando Domoticz o Home Asistant.

Cambiar el firmware requiere acceder directo al micro controlador de la placa, por lo que debemos conectarnos a los pines de transferencia en modo serie, para ello me basé en la guía Hardware Itead Sonoff RF Bridge.

2) modificación firmware + comunicación directa del microchip.

Si además de lo anterior, modificamos la placa electrónica del dispositivo podremos quitar el uso del chip EFM8BB, por lo que la codificación y descodificación quedará a cargo del micro controlador ESP8266 por lo que quitaremos el límite de hasta 16 señales que podemos guardar.

Cambiar esto requiere soldar unos puentes y cortar algunas lineas, para realizar esta modificación me basé en la guía Hardware Itead Sonoff RF Bridge Direct Hack.

Materiales necesarios

  • Soldador o cautín
  • Pasta para soldar o flux
  • Estaño
  • Multimetro o medidor de continuidad
  • Cable micro USB
  • Adaptador o programador Usb A Serial Ttl Ft232rl Ftdi

13.1 Comenzando el Hack

Lo primero que debemos hacer para instalar ESPurna en nuestro micro controlador es comenzar a desarmar el Sonoff RF Bridge.


Luego quitar la placa de la caja y revisar el modelo que tenemos, en mi caso tengo la R2 V1.0, tener precaución con el modelo de tu placa ya que tanto los pines de transferencia y los puentes deben conectarse en lugares diferentes.


13.1.1 Conectar o soldar el adaptador serie para poder borrar y escribir el firmware ESPurna.

Las conexiones las debemos realizar de la siguiente forma:


Conectar el adaptador serie puede parecer una tarea compleja pero realmente es muy fácil. Yo he optado por realizar la soldadura por la parte posterior, ya que me resultaba mucho mas sencillo.


Solo debemos tener precaución del voltaje que requiere el chip, en este caso son 3.3V por lo que tuve que sacar la alimentación directa desde el regulador de voltaje del adaptador serial.


13.2 Sobre-escribir la memoria del micro controlador ESP8285 (Flashing)

Para este paso estoy usando un equipo con Mac con OSx High Sierra, dado que estamos usando un adaptador a puerto serie (Ft232rl), al ser una interfaz antigua (con casi 60 años de existencia) es muy usada, así que existen variadas formas de escribir el firmware sobre la placa, por lo que para este ejemplo usaré la forma más "compleja", o sea a travez de la terminal, aunque si desean un método más sencillo pueden buscar una guía para actualizar el firmware mediante el IDE de Arduino.

13.2.1 Descargar el archivo binario, ir al sitio https://github.com/xoseperez/espurna/releases y buscar el archivo con el formato de nombre: espurna-x.x.x-itead-sonoff-rfbridge-direct.bin, (debe llevar la palabra direct).

13.2.2  Verificar que nuestro PC haya detectado correctamente el adaptador serial USB, le recomiendo que primero revise la siguiente guía, ya que indica todo lo básico para operar con micro-controladores, en ella encontrará las instrucciones para instalar drivers, herramientas como Homebrew, Python y sus respectivas dependencias, también podrá ver cómo realizar una prueba de conexión:

https://loqueseaqueaprenda.blogspot.com/2021/02/preparar-equipo-para-trabajar-con.html


Para continuar, utilice el siguiente comando para listar los dispositivos USB-Serial:

ls -l /dev/cu.*

Este comando listará todas las interfaces serie existentes en nuestro PC.


En mi caso mi adaptador ha sido detectado como /dev/cu.usbserial-A9KFZXD5, pero el nombre de este puerto cambiará dependiendo de tu adaptador serial USB, debes usar obviamente el que te informa tu máquina.

Para continuar es necesario tener instalado esptool.py, si no lo tienen instalado pueden seguir el paso 1.1 de la guía de este enlace.

13.2.3 Conectarnos al Chip ESP8285

Para ello debemos mantener presionado el botón del Sonof RF Bridge, enchufar nuestro adaptador serial a un puerto USB y soltar el botón luego de un par de segundos (el dispositivo Sonoff no debería encender ningún LED).

Ejecutar el siguiente comando para verificar que tenemos comunicación con el micro controlador:

esptool.py flash_id

Esptool.py mostrará la información recibida del micro controlador


13.2.4 Borrar la memoria

Para borrar la memoria del micro controlador ejecutar el siguiente comando:

esptool.py --port /dev/cu.usbserial-A9KFZXD5 erase_flash

13.2.5 Escribir la imagen de ESPurna

Luego de borrar la memoria debemos desconectar el adaptador serie USB del puerto y volver a conectar manteniendo el botón del Sonoff RF Bridge presionado. Una vez hecho esto, ejecutamos el siguiente comando:

esptool.py --port /dev/cu.usbserial-A9KFZXD5 write_flash 0x00000 ./Documents/espurna-1.14.1-itead-sonoff-rfbridge-direct.bin



13.2.6 Desconectar el adaptador serial USB de nuestro PC, y conectar el Sonoff RF Bridge a la alimentación.

Si todo ha salido bien, nuestro Sonoff RF Bridge debería encender el led de wifi en forma titilante (intermitente) y además debería levantar un punto de wifi.





13.2.7 Conectarse a la red wifi de ESPurna.

La contraseña por defecto es "fibonacci", una vez conectados al wifi de ESPurna ingresamos a la IP 192.268.4.1, usamos el usuario "admin" y la contraseña "fibonacci":


Luego de acceder por primera vez, nos solicitará cambiar nuestra contraseña:

Recargamos el sitio y volvemos a entrar pero usando la clave nueva que hemos definido, tendremos acceso al sitio al panel de control de ESPurna.



13.2.8 Agregar nuestra red wifi.

Para agregar nuestra red wifi accedemos al menú WIFI que se encuentra en la zona de la izquierda. Podemos confirmar que el módulo wifi funciona correctamente, si presionamos el botón "Scan now" veremos las redes inalámbricas existentes a nuestro alrededor.

Para agregar la red wifi de nuestro lugar simplemente debemos agregar el SSID, contraseña y dependiendo si usas o no DHCP, la IP, puerta de enlace etc.


Una vez agregada la wifi de nuestro lugar, presionamos el botón "Save" de la izquierda y reiniciamos ESPurna desconectándolo y volviéndolo a conectar a la alimentación. Si todo ha salido bien podremos ingresar directo a la IP que le hemos asignado por nuestro router.



13.2.9 Des-soldar el adaptador serie USB y agregar los puentes al circuito.

Dado que ya hemos probado que nuestro cambio de firmware funciona correctamente llegó la hora de quitar el adaptador serie USB, agregar los puentes correspondientes y hacer algunos cambios en las pistas de la placa.

Los puentes se pueden hacer con un cable directo, sin embargo por temas de seguridad se recomienda usar resistencias ya que en caso de des-soldarse o al quedar mal conectadas evitaran realizar un corto que dañe el dispositivo. En mi caso he usado resistencias de 100 homs.

Como lo dije anteriormente me basé en la guía Hardware Itead Sonoff RF Bridge Direct Hack. Acá les dejo el resultado de mi modificación.

Placa modificada, revisar la continuidad de las pistas cortadas, para evitar fallos de corto circuito

Revisar la continuidad de las pistas cortadas, para evitar fallos de corto circuito

También modifiqué la esponja de soporte del reflector LED

Modificación terminada, listo para meter en su caja

13.3 Habilitar la API HTTP

13.3.1 Ir al menú "ADMIN" que se encuentra a la izquierda del panel de control, una vez ahí habilitar el API HTTP, y definir un HTTP API Key, por último presione le botón "Save", reinicie el dispositivo Sonoff RF Bridge.



13.3.2 Agregue o actualice el HUB Sonoff RF Bridge en el sistema software de la Raspberry Pi 2.

Para ello abra el sitio web del sistema de control de la Raspberry Pi 2, ingrese al menú "Hubs" y agregue la API Key recién creada y la IP del dispositivo Sonoff RF Bridge.



13.4 Actualice o agregue los indices de los dispositivos.

13.4.1 Aprenda o genere las señales de radiofrecuencia para los switch dentro del Sonoff RF Bridge.

Para ello vaya al menú "RF" que se encuentra a la izquierda del panel de control del dispositivo Sonoff RF Bridge, luego en la sección principal tendrá la opción de aprender nuevos códigos de un control remoto RF (LEARN) si presiona este botón e inmediatamente presiona un botón de su control remoto, se mostrará la señal correspondiente, además tendrá los botones Guardar (SAVE) y Olvidar (FORGET)


Para generar señales nuevas, recomiendo usar como base una señal de un control RF y luego modificar los ultimo 3 dígitos. La mayoría de los receptores utilizan los últimos dígitos para distinguir las señales, así que debe tomar en cuenta que estos último dígitos no se repitan.



13.4.2 Agregue o actualice dispositivos de su asistente administrados por su Raspberry Pi 2.
  1. Ingrese al menú "Devices"en su Raspberry Pi 2.
  2. A los dispositivos que serán activados por medio de Sonoff RF Bridge active el HUB Execution,
  3. Seleccione el HUB y por último el índice del switch que se ha grabado en el Sonoff RF Bridge (agréguelo de esta forma "relay/" + indice del switch, debería quedar similar a la imagen de abajo).


-> Siguiente parte ->

Comentarios