miércoles, 29 de mayo de 2019

Flasheando un interruptor táctil de 8€

Como siempre, compro cosas de dómotica por encima de mis posibilidades y uno de mis entretenimientos es sacarles el firmware original y poner uno más adaptado a mis necesidades (y a las de HomeAssistant, que es el core que tengo instalado en casa).

En este caso le ha tocado el turno a un interruptor wifi táctil que compré allá por el "Black Friday" del 2018. Así que como siempre y sin más rodeos, pasamos a desmontarlo para ver qué contiene en su interior.
Aparentemente la placa está diseñada para tener 3 interruptores táctiles, aunque la mía sólo tiene 1:



Seguimos desmontando la placa y vemos que detrás tiene un bonito ESP "disfrazado de" PSF-A:



Pasamos a buscar información de este SoC y encontramos lo siguiente:
Pinout del Itead8285
Fuente:https://www.itead.cc/wiki/File:PSF-A85_pinmap.jpg
Por lo que resulta que nos ha tocado un ESP8285 en lugar del famoso 8266, pero como es de esperar, no tiene las funcionalidades de seguridad que se podía esperar de él activadas, así que pasamos a soldar unos cables tal que así:


Siguiendo el pinout del dibujo superior (espejado, pues está visto desde abajo) obtenemos la siguiente tabla:

Nº PIN Color cable Función
23 Verde 3,3V
22 Blanco TX
21 Morado RX
10 Amarillo GPIO 0
12 Verde GND

Conectamos los cables soldados a nuestro conversor serie-usb y pasamos a utilizar esptool, en primer lugar para sacar un backup de la imagen que tiene por defecto. Nunca se sabe para qué puede servir, incluso si quieres puedes subir al repo que creé para tenerlas todas guardadas en GitHub: https://github.com/plutec/original_fw
# esptool.py --port /dev/ttyUSB0 read_flash 0x0 0x100000 original-sonoff-touch.bin
Después, nos descargamos la imagen que hay creada para este dispositivo desde el GitHub de espurna:
https://github.com/xoseperez/espurna/releases/download/1.13.5/espurna-1.13.5-itead-sonoff-touch.bin
y pasamos a meterla en nuestro dispositivo con esptool de nuevo:
# esptool.py --port /dev/ttyUSB0 write_flash --flash_size 1MB --flash_mode dout 0x0 espurna-1.13.5-itead-sonoff-touch.bin
Con esto ya tendríamos nuestro interruptor listo para instalarlo y configurarlo como de costumbre.

Un saludo!


Fuentes: