Arquitectura Técnica
ELRS Mobile no es solo un web-wrapper; es una implementación nativa en Dart de la cadena de compilación y configuración de ExpressLRS.
Ensamblaje Unificado de Firmware
En lugar de depender de un compilador en la nube remoto, la aplicación construye dinámicamente los binarios localmente en tu dispositivo. Al flashear objetivos ESP32/ESP8285, el FirmwareAssembler ejecuta una secuencia precisa de modificación a nivel de bits:
Extrae el firmware genérico base del archivo firmware.zip en caché.
Recorta el relleno base buscando la firma del byte mágico ESP 0xE9.
Extrae los pinouts específicos del objetivo y la configuración de tiempo de ejecución de hardware.json.
Empaqueta por bytes el Nombre del Producto (128b), Nombre Lua (16b), options.json (512b), y hardware.json (2048b) directamente en el flujo binario.
Comprime la carga útil final en un flujo .gz si es requerido por la plataforma de destino (por ejemplo, ESP8285 legacy).
Lógica Periférica
Sección titulada «Lógica Periférica»Inyector de Dominio Regulatorio
Sección titulada «Inyector de Dominio Regulatorio»La aplicación maneja con precisión las complejas diferencias entre las bandas de frecuencia. Para dispositivos de 900MHz/Banda Dual, inyecta activamente el dominio elegido (por ejemplo, FCC, EU868) en la carga útil JSON compilada. Para objetivos estándar de 2.4GHz, utiliza un indicador booleano para enrutar silenciosamente el proceso de extracción a las carpetas de firmware base estándar FCC/ o European LBT/ durante el ensamblaje.
Caché y Sincronización de Firmware
Sección titulada «Caché y Sincronización de Firmware»El flasheo sin conexión es posible gracias a un sólido sistema de almacenamiento en caché local. Cuando un usuario descarga una versión a través del Administrador de Firmware, el FirmwareCacheService extrae el firmware.zip genérico y el hardware.zip específico del dispositivo directamente del ExpressLRS Artifactory. Estos archivos se gestionan y almacenan localmente en el dispositivo, asegurando que el ensamblaje y el flasheo puedan realizarse instantáneamente en el campo sin necesidad de una conexión a internet activa.
Vinculación de Red Nativa
Los sistemas operativos móviles (especialmente Android e iOS) despriorizarán las conexiones Wi-Fi que carecen de acceso a internet, enrutando silenciosamente el tráfico a través de la red celular. Esto impide que las aplicaciones estándar lleguen al hardware ELRS en 10.0.0.1.
ELRS Mobile resuelve esto a través del NativeNetworkService. Cuando se detecta una conexión de hardware, la aplicación invoca un MethodChannel específico de la plataforma para vincular todo el proceso Flutter a la interfaz Wi-Fi a nivel del kernel del sistema operativo. Esto asegura que todo el tráfico HTTP y mDNS se enrute correctamente al hardware, independientemente del estado celular.