Lua-Scripte
In diesem Thema werden Lua-Scripte besprochen.
🎛 Lua-Skripte auf Radiomaster: Aufbau & Einsatzbeispiele
📦 Was sind Lua-Skripte?
Lua ist eine leichtgewichtige Skriptsprache, die direkt auf OpenTX/EdgeTX-Radios läuft. Skripte ermöglichen:
- Konfiguration des Empfängers (z. B. ELRS)
- Steuerung des VTX (Kanal, Leistung)
- Anzeige von Telemetrie (RSSI, LQ, GPS)
- Konfiguration von Modulen wie Crossfire oder Ghost
📁 Lua-Skript-Struktur
Ein Lua-Skript ist eine .lua-Datei, die auf der SD-Karte im Ordner /SCRIPTS/TOOLS/ oder /SCRIPTS/MIXES/ liegt.
Beispielstruktur:
SDCARD/
├── SCRIPTS/
│ ├── TOOLS/
│ │ ├── elrs.lua
│ │ ├── crossfire.lua
│ │ └── vtx.lua
│ ├── MIXES/
│ │ └── rpm_tune.lua
- TOOLS: Manuell aus dem Tools-Menü aufrufbare Skripte
- MIXES: Automatisch im Hintergrund laufende Skripte
📜 Aufbau eines einfachen Lua-Skripts
lua
-- Beispiel: simple_rssi.lua
local rssi
local function run()
lcd.clear()
rssi = getValue("RSSI")
lcd.drawText(10, 10, "RSSI: " .. rssi, MIDSIZE)
return 0
end
return { run = run }
Erklärung:
- getValue("RSSI"): Holt den RSSI-Wert vom Empfänger
- lcd.drawText(x, y, text, size): Zeichnet Text auf dem Display
- run(): Hauptfunktion des Skripts
⚙ Wichtige Lua-Skripte & ihre Funktionen
1. ELRS.lua (ExpressLRS)
Speicherort: /SCRIPTS/TOOLS/elrs.lua
Funktionen:
- Setzen der Sendefrequenz (250 Hz / 500 Hz)
- Output Power umstellen (10 mW bis 1000 mW+)
- WiFi-Update-Modus
- Bind-Modus
▶️ Aufrufbar im Radio: System > Tools > elrs
2. crossfire.lua (TBS Crossfire)
/SCRIPTS/TOOLS/crossfire.lua
Funktionen:
- VTX-Setup über Crossfire (VTX Tabels)
- Linkqualität (LQ), RSSI, GPS anzeigen
- Empfänger binden
- Notchfilter für Telemetrie deaktivieren
3. vtx.lua (IRC Tramp oder SmartAudio)
Voraussetzung: SmartAudio/Tramp via UART aktiviert
Funktionen:
- Band/Kanal/Power-Level einstellen
- PIT-Mode ein-/ausschalten
- Frequenzwechsel vor/nach dem Flug (Race Mode)
- Per Schalter steuerbar via AUX-Kanal
4. GPS.lua (GPS-Telemetrie)
Benutzerdefinierte Skripte mit:
- Höhe (Altitude)
- Entfernung zur Home-Position
- Speed in km/h
- GPS-Fix prüfen
⚠ Skript muss kompatible Sensorwerte wie Alt, Dist, GPS verwenden.
✅ Anwendung – So nutzt du Lua-Skripte
Schritt-für-Schritt:
- SD-Karte mit Skript füllen
- Lade das Skript von GitHub oder Herstellerseite (z. B. ELRS repo)
- Lege es in /SCRIPTS/TOOLS/
- Skript aufrufen
- Drücke SYS → Reiter „Tools“
- Wähle z. B. elrs.lua
- Bediene über Touchscreen oder Scrollrad
- Automatischer Start (MIXES)
- Z. B. rpm_filter.lua läuft im Hintergrund zur Messung von Motordrehzahl
🔐 Sicherheit & Tipps
- Nutze nur verifizierte Skripte (z. B. von ExpressLRS, GitHub, Hersteller)
- Lua-Skripte können Abstürze oder Freezes verursachen, wenn sie fehlerhaft sind
- Prüfe Versionen: Lua-Versionen ändern sich zwischen OpenTX & EdgeTX
🧪 Fortgeschritten: Eigene Lua-Skripte schreiben
Du kannst z. B. ein Skript schreiben, das einen RSSI-Alarm auslöst:
lua
local function run()
local rssi = getValue("RSSI")
if rssi < 35 then
playTone(440, 100, 100, 0)
end
return 0
end
return { run = run }
Speichere das Skript als /SCRIPTS/MIXES/rssi_alarm.lua.
📚 Quellen & Tools
- https://github.com/ExpressLRS/ExpressLRS
- EdgeTX Lua Doku