ESPurna: La «Chispa» Open-Source para Domótica con ESP32


ESPurna, palabra catalana y valenciana que significa «chispa» —una partícula incandescente de combustión o roce, o figurativamente una pequeña cantidad o persona ingeniosa—, adquiere nuevo sentido como firmware open-source para ESP8266 y ESP32. Desarrollado inicialmente por Xose Pérez y adaptado para ESP32 en forks como RDobrinov/espurna32, transforma placas económicas en hubs IoT para interruptores, luces y sensores. Soporta MQTT con auto-descubrimiento, Alexa, Google Assistant, modos de bajo consumo, hasta 5 redes WiFi, mDNS, NetBIOS y OTA vía web, ideal para domótica avanzada.​

esp8266 a6f

Características Destacadas de ESPurna

ESPurna gestiona switches con botones digitales/analógicos, pulsos configurables, sincronización de relés (todos iguales, solo uno ON) y estados al boot (ON/OFF/toggle). Incluye luces con color/brightness, sensores de potencia (voltaje, corriente, energía), temperatura/humedad (DHT, BME280), y LED notificadores para WiFi/relés/MQTT. Ofrece REST API para relays/sensores, backup/restore, AP/STA WiFi con IP estático, y protección contra KRACK en Arduino Core >=2.4.0; botones permiten toggle, AP mode (doble click), reboot (largo) o factory reset (extra largo).​

Preparación del Entorno con PlatformIO

PlatformIO en VSCode es la herramienta oficial para compilar ESPurna ESP32, gestionando Arduino-ESP32 core, lib_deps como FauxmoESP, AsyncTCP, MQTT y sensores.

Estos son los pasos resumidos para instalar el entorno:

  • Instala VSCode desde code.visualstudio.com, añade extensión PlatformIO IDE (marketplace)
  • Clona git clone https://github.com/RDobrinov/espurna32.git vía terminal (Terminal > New Terminal),
  • Aabre la carpeta con File > Open Folder.
  • PlatformIO detecta platformio.ini automáticamente
  • Descarga dependencias;
  • Edita para default_envs = esp32dev, board = esp32dev, framework = arduino, upload_speed = 921600,
  • Compila con icono check (Build).
  • Verifica logs en terminal para errores;
  • Reinicia VSCode o pio lib install si faltan paquetes.​

Instalación Paso a Paso en ESP32

Requisitos: Cable USB, drivers CH340/CP210x, esptool.py (pip install esptool). Pon ESP32 en bootloader (BOOT/GPIO0 a LOW al resetear/alimentar); verifica esptool.py --chip esp32 --port /dev/ttyUSB0 chip_id.​

  • Borrado: esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash.
  • Flasheo: esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 espurna-esp32.bin (binario de releases).​
  • Alternativa PlatformIO: Build exitoso > Upload; Arduino IDE requiere boards ESP32 y abrir espurna.ino.​

Post-instalación: Conéctate a AP «espurna-XXXXXX» (pass: espurna123), accede 192.168.4.1 para WiFi/MQTT/OTA; soporta reverse proxy seguro.​

Integración con Home Assistant vía MQTT

Configura MQTT en web ESPurna (broker IP/usuario/pass/puerto 1883) y activa «Home Assistant MQTT Discovery» para auto-publicación de switches/luces/sensores. En HA: Añade integración MQTT (Configuración > Integraciones > MQTT), conecta broker (Mosquitto recomendado para retain y estabilidad). Dispositivos aparecen automáticamente vía topics homeassistant/switch/[device]/config; controla relés, mide potencia/RGB sin YAML. Evita «unavailable» en reinicios HA con retain flags; ideal para energy dashboards.​

ESPurna vs. ESPHome: Comparativa Detallada

AspectoESPurna​ESPHome ​
ConfiguraciónCompilación hardware-específica, web intuitivaYAML declarativo, compilación automática
Integración HAMQTT Discovery robusto, topics estándarNativa profunda, zero-config en HA
Facilidad de UsoAvanzados: control firmware detalladoPrincipiantes: automatizaciones rápidas
Soporte HardwareAmplio (sensores, relés, Alexa/Google/OTA)HA-optimizado, actualizaciones fluidas
PersonalizaciónEdición código, REST APIConfig centralizada, sin código directo
Curva AprendizajePronunciada por compilación manualBaja, ideal domótica compleja

ESPurna brilla en versatilidad MQTT y soporte multi-plataforma para expertos en IoT/hardware, mientras ESPHome prioriza simplicidad HA. Prueba ESPurna si buscas personalización profunda en ESP32 para NILM o sensores energéticos.​

    https://github.com/RDobrinov/espurna32

    Resucitando un LG Optimus Hub E510 en 2025: cuando solo el viejo KDZFWUPD salva la situación


    Restaurar un LG E510 con Cyanogen a firmware original: la odisea del «SW de LZ»

    El LG SmartHub E510, también conocido como Optimus Hub, es un smartphone de 2011 con Android 2.3.6 que, tras años de uso, muchos usuarios actualizaron a CyanogenMod. Sin embargo, esa ROM personalizada provoca con frecuencia la pérdida de red móvil y fallos de conexión WiFi. Así comenzó esta restauración: devolver el E510 a su sistema original de fábrica.

    En este post intentaer hacer una síntesis adaptada destacando lo esencial del proceso real que funcionó en mi experiencia al restaurar el LG SmartHub E510 con Cyanogen usando software de flasheo (“el SW de LZ”, es decir, KDZFWUPD), ilustrando el aprendizaje técnico y las dificultades típicas.

    01226 revivir2byo2bactualizar2bnuestro2blg2bcon2blg2bflash2btool2b2528kdz25292b 2bexplicaci25c325b3n2bpaso2ba2bpaso

    El inicio del problema

    El terminal con Cyanogen no detectaba la red del operador ni conectaba a WiFi. Tras varios intentos con LG Flash Tool 2014 y versiones más modernas de LG UP, los síntomas se repetían:

    • Interfaz llena de signos de interrogación (??)
    • Mensajes como Phone was not found!
    • O errores de autenticación (SetAuthMark fail)

    Todas las herramientas oficiales modernas fallaron en comunicarse con el teléfono en modo Emergency Mode (modo por cierto al que se accede con el telefono apagado pulsando Vol+ y conectandolo por USB a un ordenador: deberia aparecer una pantalla con fondo amarillo en el Telefono con el texto «Emergency Mode»).

    La clave: usar la herramienta antigua “SW de LZ” (KDZFWUPD.exe)

    La única utilidad que logró realizar el flasheo completo fue KDZFWUPD.exe, una versión de mantenimiento antigua usada internamente por LG. Este método permitió reflashear el firmware original (.KDZ) sin depender del cliente B2C, hoy desaparecido.

    Configuración correcta en KDZFWUPD:

    • Type: 3GQCT
    • PhoneMode: EMERGENCY
    • Acción: Launch SW Update
    • Archivo KDZ probado: LGE510V10H00.kdz

    Solución paso a paso usada para el E510

    Vamos a usar el método KDZ_FW_UPD.exe + MSXML 4.0 SP3 — más estable que LG Flash Tool 2014 para modelos antiguos.

    1-Preparar el entorno

    1. Desinstala todo lo relacionado con LG Flash Tool.
    2. Asegúrate de tener LG United Mobile Driver v3.8.1 instalado.
    3. Instala MSXML 4.0 SP3 Runtime desde Microsoft:
      👉 Descargar desde Microsoft
      (Archivo: msxml4-KB2758694-enu.exe)
      Esto corrige el error _setAuthMark fail.

    2-Conectar el móvil en modo Emergency

    1. Apaga el teléfono.
    2. Mantén VOL+ y conéctalo por USB.
    3. Espera que diga “Emergency Mode!!”.
    4. En el Administrador de dispositivos, asegúrate de ver “LGE Mobile USB Serial Port (COMx)”.
      • Si no lo ves, repite la instalación del driver en un puerto USB 2.0 trasero.

    3-Ejecutar KDZ_FW_UPD.exe

    1. Descarga la versión corregida(forma parte del paquete “KDZ Updater”).
    2. Haz clic derecho → Ejecutar como administrador.
    3. En el programa:
      • Type: 3GQCT
      • PhoneMode: Emergency
      • KDZ file: selecciona el fichero LGE510_V10H_00.kdz
    4. Pulsa “Launch Software Update”
    5. Espera: el programa puede mostrar texto ilegible o interrogaciones, pero no lo cierres.
      • Si los drivers están bien, verás progreso en minutos.
      • El teléfono se reiniciará automáticamente cuando termine.

    NOTAS: : Que hacer si no avanza

    • Usa Windows 7 si puedes (ideal).
    • En Windows 10/11, ejecuta en modo compatibilidad con XP SP3.
    • Desactiva antivirus y firewall temporalmente.
    • Usa puertos USB traseros si es PC de sobremesa.
    • No cierres la ventana ni desconectes el móvil mientras el log se mueve.Prueba con otro puerto USB.
    • Ejecuta KDZ_FW_UPD.exe en modo compatibilidad Windows XP SP3.
    • Verifica que MSXML 4.0 SP3 esté instalado correctamente (Panel de control → Programas).

    Tras ejecutar el proceso, el sistema se reinstaló completamente. El teléfono volvió a arrancar (logo LG/restauración completa). Sin embargo, persistía un problema clave: bootloop inicial. El terminal mostraba el logo de LG, animación y reinicio continuo.

    Cómo se solucionó el bootloop

    El error se resolvió accediendo finalmente al Recovery Mode (el cual se accede pulsando Vol+, Vol-, Encendido y al aparecer el Logo de LG soltar durante un segundo el botón de encendido y luego manteniéndolo pulsado hasta entrar en Recovery) y ejecutando:

    • Wipe of all user data
    • Reboot system now

    Esto limpió los restos de la configuración Cyanogen y permitió que el E510 iniciara correctamente con Android original.

    Resultado: arranque correcto, pero sin comunicaciones

    Aunque el sistema revivió, ni la señal móvil ni el WiFi se establecieron. En «Acerca del teléfono», la versión de banda base aparecía como desconocida, lo que indica que el firmware del módem (modem.bin) no se cargó. Dado que incluso Cyanogen había mostrado el mismo fallo, la causa más probable era:

    • Falta del archivo de radio en el KDZ usado (V10H incompleto),
      o
    • Daño físico del módulo RF.

    Vamos a analizar paso a paso antes de concluir que el hardware está dañado, porque hay varias causas posibles.

    1-Verifica el IMEI

    Marca en el teclado del teléfono:

    *#06#
    

    – Si aparece un número de 15 dígitos, tu IMEI está correcto.
    – Si dice “IMEI desconocido”, “null” o no muestra nada, entonces la partición de módem / NVRAM se ha corrompido.

    Si el IMEI falta, el teléfono no puede registrarse en la red, aunque la SIM sea válida.

    2-Comprueba la “Baseband” (banda base)

    Ve a:
    Ajustes → Acerca del teléfono → Información del software

    Busca la línea “Versión de banda base” (o Baseband version).

    • Si muestra algo como M8626A... o similar → la baseband está presente.
    • Si dice “Desconocido” o “Unknown” → el firmware del módem no está cargando.

    Si está “Desconocido”, hay que reinstalar una ROM KDZ que incluya el módem (algunas versiones V10 no lo traen completo).

    3-Prueba el modo “Servicio”

    Marca:

    3845#*510#
    

    (para el modelo E510)

    Esto abre el menú oculto de servicio de LG.
    Ahí puedes revisar:

    • “Device Test → Modem Test”
    • “Network Mode → GSM/WCDMA”
    • “Field Test → RF info”

    Si el módem no responde o muestra error, el problema es del firmware o hardware RF.

    4-Posibles soluciones según el caso

    DiagnósticoSolución recomendada
    IMEI desconocidoReflashear KDZ completo que restaure NVRAM, o restaurar EFS si tienes copia.
    Baseband desconocidoFlashear una versión anterior (por ejemplo V10C o V10E) del E510, que sí incluya modem.bin.
    IMEI y Baseband correctos pero sin señalPrueba cambiar “Network mode” (solo 2G / 3G) y reiniciar. Si sigue igual → posible daño de RF físico (amplificador o antena).

    La única ROM conocida por restaurar la baseband completamente es LGE510V10C00.kdz o LGE510V10E00.kdz, aunque resultan difíciles de localizar hoy día.

    Dado que ya había flasheado el archivo LGE510_V10H_00.kdz, es posible que esta versión no incluya la banda base completa necesaria para el funcionamiento del dispositivo para este modelo en concreto de Europa. Una opción es volver a flashear una de las siguientes versiones de la ROM que incluyen la banda base completa:

    • LGE510_V10C_00.kdz: Esta versión es conocida por restaurar la banda base correctamente.
    • LGE510_V10E_00.kdz: Otra versión que incluye la banda base completa.

    Puedes descargar estos archivos desde los siguientes enlaces:

    Conclusiones prácticas

    1. KDZFWUPD.exe (el “SW de LZ”) fue el único método realmente funcional en Windows 7 SP1 para reflashear el LG E510 en modo Emergency.
    2. El proceso debe hacerse con LG United Mobile Driver v3.8.1 y puerto COM reconocido.
    3. Si el teléfono arranca pero no tiene WiFi ni red móvil y muestra “banda base desconocida”, aún puede reflashearse con una versión de KDZ que incluya modem.bin.
    4. Cuando todo falla y el IMEI es correcto, es posible que el chip de RF esté dañado.

    2024 04 06 19 41 34 Promocione gratuitamente su app movil   Buscar con Google y 6 páginas más   Pers