How edgetx/edgetx works
EdgeTX is radio-control firmware, accompanied by Companion desktop tools and a browser-based WebAssembly interface. The central radio workflow is user input and model configuration → firmware processing → radio outputs and persistent settings. The repository also includes Companion model editing, file-format handling, firmware operations, and simulation, plus web filesystem support. The excerpts and source index show selected storage, SD-manager, and browser-worker relationships; several major subsystems are represented by tree paths or documented purpose, so their internal links are omitted rather than inferred.
Main entry points: mainwindow.h Companion app · edgetx.h Model runtime · App.svelte Web app · radio_sdmanager.cpp Radio UI
Components 19
Radio firmware
- Radio UI
radio/src/gui/colorlcd/radio/radio_sdmanager.cpp - Model runtime
radio/src/edgetx.h - Radio state
radio/src/storage/storage_common.cpp - SD manager
radio/src/gui/common/stdlcd/radio_sdmanager.cpp - USB mass storage
radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp
Companion desktop
- Companion app
companion/src/mainwindow.h - Model editor
companion/src/modeledit/modeledit.cpp - Radio models
companion/src/firmwares/modeldata.cpp - File formats
companion/src/storage/storage.cpp - Firmware tools
companion/src/flash/flashfirmwaredialog.cpp - Radio simulator
companion/src/simulation/wasmsimulatorinterface.cpp
Web interface
- Web app
web/src/App.svelte - WASM runner
web/src/lib/wasm-runner.ts - Filesystem client
web/src/lib/fs-proxy-client.ts - Filesystem worker
web/src/lib/fs-worker.ts - OPFS backend
web/src/lib/opfs-backend.ts
Persistence and hardware
- Disk driver
radio/src/hal/storage.cpp - FatFs storage
radio/src/thirdparty/FatFs/ff.h
Other components
- Radio user
Connections 15
- Radio user → Radio UI: operates
- Radio UI → Model runtime: configures
radio/src/gui/colorlcd/radio/radio_sdmanager.cpp - Model runtime → Radio state: persists state
radio/src/storage/storage_common.cpp - SD manager → Model runtime: starts OTA update
radio/src/gui/common/stdlcd/radio_sdmanager.cpp - USB mass storage → Disk driver: reads and writes
radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp - Disk driver → FatFs storage: registers driver
radio/src/hal/storage.cpp - Companion app → Model editor: opens editor
- Model editor → Radio models: edits model data
- Companion app → File formats: loads and saves
- Companion app → Firmware tools: offers flashing
- Companion app → Radio simulator: offers simulation
- Web app → WASM runner: runs firmware
web/src/App.svelte - Web app → Filesystem client: uses filesystem
- Filesystem client → Filesystem worker: sends requests
- Filesystem worker → OPFS backend: uses backend
web/src/lib/fs-worker.ts