Lo primero que se ve nada más abrirlo es que tiene un chip muy similar a un ESP8266... (OW8266-02Q)
Imagen del OW8266-02Q |
Así que buscamos el datasheet de este último y nos ponemos a soldar cables para intentarlo hacerlo entrar en modo flash (https://www.seeedstudio.com/document/word/WT8266-S1%20DataSheet%20V1.0.pdf)
Los pines que hay que localizar son:
- 5V (para poder hacer las pruebas sin tener que enchufar a la corriente posteriormente)
- GND
- RX
- TX
- GPIO0 (Para entrar en modo download)
- GPIO2 (Para entrar en modo download)
- GPIO15 (Para entrar en modo download)
Esquemita para tener encima de la mesa |
Empezamos soldando los 3 primeros (5V, TX y RX) que están localizados en la placa (están indicados por detrás). El GND lo soldé en el regulador de tensión AMS1117 que hay en la parte inferior porque haciendo pruebas de continuidad no tenía muy claro que alguno de los otros lo fuera.
Pasamos a los GPIO necesarios para entrar en modo "download". Esto hay que hacerlo directamente sobre el chip ESP:
A los pines GPIO0, GPIO2 y GPIO15.
Después conectamos los pines de la placa al FTDI de la siguiente manera:
Enchufe | FTDI |
5V | 5V |
GND | GND |
RX | TX |
TX | RX |
GPIO0 | GND |
GPIO2 | 3.3V |
GPIO15 | GND |
Conectamos el FTDI a nuestro PC y buscamos el puerto usando dmesg. En mi caso es /dev/ttyUSB0, así que procedemos a intentar sacar el firmware original para tenerlo de backup.
Una vez sacado el firmware anterior, procedemos a buscar uno que funcione. En esta ocasión probé con varios "espurna" de la familia Itead pero en ningún caso funcionaba puesto que el pinout no coindicía (el del switch, relé y led).
La siguiente opción era buscar el pinout, para ello hice un programa de arduino para probar entradas y otro para probar salidas.
El software para testear entradas era simple, le decías un pin por el terminal serie, lo accionabas y te decía si cambiaba de estado o no. Así descubrí que el swtich se correspondía al GPIO14.
Para los de salida, algo similar. El software te pedía el pin y cuando lo introduces empieza a alternar entre "HIGH" y "LOW". Así fue posible encontrar el relé (tictac), y los leds azul y rojo.
Tabla resumen de un par de horas de trabajo |
Así que continuamos creando un nuevo dispositivo en espurna con los datos del B25, quedando tal que así:
Finalmente se compila y se carga en el dispositivo con:
sudo esptool.py --port /dev/ttyUSB0 write_flash --flash_size 1MB --flash_mode dout 0x00000 espurna-1.13.3-orvibo-b25.bin
Desconectamos todo de la protoboard, probamos que todo funciona correctamente y se crea la red WiFi para configurar espurna. ¡Conseguido! Ahora procedemos a desoldar todos los cables que habíamos puesto previamente para poder cerrar jeje.
El pullrequests en el repo de espurna ya está hecho y aceptado (https://github.com/xoseperez/espurna/pull/1402), pero los binarios compilados todavía no incluyen el del Orvibo B25, así que lo dejo por aquí por si alguien quiere probar antes de que se publique la siguiente release.
Si tenéis alguna duda podéis preguntar en los comentarios.