A cross-platform tool for converting RC transmitter model files between different firmware formats.
- EdgeTX (
.yml) — FrSky EdgeTX transmitter firmware models - Ethos (
.bin) — FrSky Ethos transmitter firmware models - Jeti Duplex (
.jsn) — Jeti Duplex RC transmitter models
Pre-built installers for Windows, macOS, and Linux are available in the Releases section.
- Windows: Download
.msiinstaller - macOS: Download
.dmgimage - Linux: Download
.AppImageor.debpackage
Requires Rust:
cargo install --path .
modell-converter convert --from edgetx --to ethos input.yml output.binLaunch the application and:
- Select source format — Choose the firmware format of your model file
- Select target format — Choose the format you want to convert to
- Drop or browse — Drag and drop a file, or click to browse
- Convert — Click "Convert & Save" and choose where to save
# Convert to EdgeTX format
modell-converter convert --from ethos input.bin output.yml
# Verbose output
modell-converter convert --from jeti -v input.jsn output.yml
# Reverse engineering tools
modell-converter reveng hexdump --file model.bin --offset 0x100 --len 32
modell-converter reveng diff --file-a model1.bin --file-b model2.bin- Rust 1.70+ (Install)
- macOS/Linux/Windows
Development Mode:
cd src-tauri
cargo tauri dev # Opens app with hot reloadBuild for Current Platform:
cd src-tauri
cargo tauri buildAutomated Build Script:
./build-all.sh # Builds CLI and GUI for your platformThe build script automatically detects your OS and generates the appropriate artifacts:
- macOS:
.appbundle +.dmginstaller - Windows:
.exebinary +.msiinstaller - Linux:
.AppImagebundle +.debpackage
Platform Requirements:
- macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: Visual Studio Build Tools or MSVC toolchain
- Linux: Build essentials (
sudo apt install build-essentialon Ubuntu/Debian)
cargo build --release
./target/release/modell-converter convert --from ethos model.bin model.ymlModellConverter/
├── src/ # Rust library + CLI
│ ├── main.rs # CLI entry point
│ ├── lib.rs # Conversion library
│ ├── ir/ # Intermediate representation
│ ├── formats/ # Format parsers & serializers
│ │ ├── edgetx/
│ │ ├── ethos/
│ │ └── jeti/ # (in development)
│ └── reveng/ # Reverse engineering tools
├── src-tauri/ # Desktop GUI
│ ├── src/ # Tauri backend (Rust)
│ └── tauri.conf.json
├── ui/ # Web frontend
│ ├── index.html
│ ├── style.css
│ └── app.js
├── tests/
└── Cargo.toml
cargo test- Intermediate Representation (IR) — All formats convert to a common IR, then to the target format
- Format modules — Each format has its own parser, schema, and serializer
- Reverse Engineering — Tools for analyzing and comparing binary files
- Create
src/formats/newformat/module - Implement
Formattrait:from_bytes()— Parse file to IRto_bytes()— Serialize IR to file
- Register in
src/convert.rs - Add tests
All converted model files MUST be verified by a human before use on your RC transmitter. This tool performs automatic conversion between firmware formats, but conversion errors, data loss, or incompatibilities can occur.
The author is NOT responsible for:
- Lost or corrupted model files
- Damage to your transmitter or RC equipment
- Flight failures or safety incidents caused by conversion errors
- Any other losses or damages arising from the use of this tool
Always:
- Backup your original model files before conversion
- Test converted files on your transmitter before flying
- Verify that all model parameters (rates, endpoints, timers, etc.) are correct
- Perform a range check before flying
Use this tool at your own risk.
- Jeti Duplex format support is currently in development
- Some advanced transmitter features may not convert perfectly between formats
- Always verify converted files on your transmitter before flying
Contributions welcome! Areas of interest:
- Jeti Duplex format completion (reverse engineering
.jsnfiles) - Additional format support
- Testing and bug reports
- UI improvements
MIT License — See LICENSE file for details.