Technische Architectuur
ELRS Mobile is niet zomaar een web-wrapper; het is een native Dart-implementatie van de ExpressLRS compilatie- en configuratiepipeline.
Uniforme Firmware Assemblage
In plaats van te vertrouwen op een compiler in de cloud op afstand, bouwt de app dynamisch binaries lokaal op uw apparaat. Bij het flashen van ESP32/ESP8285 targets, voert de FirmwareAssembler een precieze bit-level modificatievolgorde uit:
Extraheert de generieke basisfirmware uit het gecachte firmware.zip archief.
Verwijdert de basispadding door de ESP 0xE9 magic byte signature te zoeken.
Extraheert specifieke target pinouts en runtime configuratie uit hardware.json.
Byte-packs Product Name (128b), Lua Name (16b), options.json (512b), en hardware.json (2048b) direct in de binaire stroom.
Comprimeert de uiteindelijke payload naar een .gz stroom indien vereist door het targetplatform (bijv. ESP8285 legacy).
Perifere Logica
Section titled “Perifere Logica”Regulatory Domain Injector
Section titled “Regulatory Domain Injector”De app verwerkt nauwkeurig de complexe verschillen tussen frequentiebanden. Voor 900MHz/Dual-Band apparaten injecteert het actief uw gekozen domein (bijv. FCC, EU868) in de gecompileerde JSON-payload. Voor standaard 2.4GHz targets gebruikt het een booleaanse vlag om het extractieproces stilzwijgend te routeren naar ofwel de standaard FCC/ of Europese LBT/ basisfirmware-mappen tijdens de assemblage.
Firmware Caching & Sync
Section titled “Firmware Caching & Sync”Offline flashen wordt mogelijk gemaakt door een robuust lokaal cachingsysteem. Wanneer een gebruiker een release downloadt via de Firmware Manager, haalt de FirmwareCacheService de generieke firmware.zip en apparaatspecifieke hardware.zip rechtstreeks op uit de ExpressLRS Artifactory. Deze archieven worden lokaal op het apparaat beheerd en opgeslagen, waardoor assemblage en flashen direct in het veld kunnen plaatsvinden zonder actieve internetverbinding.
Native Netwerkbinding
Mobiele besturingssystemen (met name Android en iOS) zullen Wi-Fi-verbindingen zonder internettoegang deprioriteren, en in plaats daarvan stilzwijgend verkeer via mobiele data routeren. Dit voorkomt dat standaard apps ELRS-hardware op 10.0.0.1 kunnen bereiken.
ELRS Mobile lost dit op via de NativeNetworkService. Wanneer een hardwareverbinding wordt gedetecteerd, roept de app een platformspecifieke MethodChannel aan om het hele Flutter-proces te binden aan de Wi-Fi-interface op OS-kernelniveau. Dit zorgt ervoor dat al het HTTP- en mDNS-verkeer correct naar de hardware wordt gerouteerd, ongeacht de mobiele status.