CLI steht für Command Line Interface und ist keine Erfindung, die es erst seit dem Betaflight Projekt gibt. In diesem Guide erfährst du alles über die richtige Verwendung des CLI in Betaflight und warum es oft sinnvoll ist, die Kommandozeile der grafischen Benutzeroberfläche vorzuziehen.
Wie auch in anderen IT-Bereichen, kann die Kommandozeile (englische Command Line Interface, kurz CLI) einen großen Vorteil darstellen, wenn viele Dinge auf einmal erledigt werden müssen.
Anstelle einzelne Einstellungen oder Funktionen mit der Maus anzuwählen und Werte über einzelne Felder zu verändern, kann eine Kommandozeile viele Operationen mit nur einem Befehl ausführen.
Das ist in Betaflight nicht anders. Und darum lohnt sich ein gemeinsamer Blick hinter die Kulissen des CLI-Tabs unserer Lieblings-Flight Controller Software.
Inhalt
Warum überhaupt das CLI benutzen?
Einen wichtiges Argument für die Verwendung des CLI in Betaflight haben wir bereits genannt: Du kannst damit viele Einstellungen auf einmal verändern, zurücksetzen oder aus einem Backup wieder einspielen.
Darüberhinaus ist das CLI die einzige Möglichkeit alle Funktionen von Betaflight zu nutzen. Ja! Du hast richtig gelesen: Nur die am häufigsten verwendeten Funktionen sind in das GUI (Grafical User Interface) des Betaflight Configurators integriert. Der Rest der Einstellungen schlummert ungenutzt (oder unverändert auf Standardwerten) im Hintergrund.
Der einzige Weg diese Einstellungen zu verändern ist die Verwendung des CLI-Tabs im Betaflight Configurator. Du kannst natürlich auch Werte ändern oder Einstellungen deaktivieren, die auch über das GUI verfügbar wären.
Das Command Line Interface ist dabei nicht neu. Die Konsole ist schon seit Baseflight-Zeiten verfügbare und existiert auch in Cleanflight, Butterflight, iNav und anderen Baseflight-Forks – so wie Betaflight. Die genaue Geschichte der verschiedenen FC-Projekte, haben wir hier für dich zusammengefasst.
Wie benutzt man das Betaflight CLI richtig?
Um auf das CLI zuzugreifen, musst du deinen Flight Controller mit dem Betaflight Configurator verbinden. Sobald die FC erkannt ist, kannst du den CLI-Tab aufrufen.
Du siehst dann ein Kommandozeile und eine entsprechende Textausgabe vor dir. Nun kannst du beginnen einzelne Befehle einzugeben.
Die Befehle sind dabei in der Regel immer gleich aufgebaut:
[command] [setting] = [value]
Um also deinen Expo-Wert auf der Roll-Achse auf Null zu setzen, würdest du zum Beispiel folgendes eingeben:
set roll_expo = 0
Du kannst viele Befehle hintereinander eingeben. Damit die Änderungen wirksam werden, musst du den „Speichern / Save“-Knopf drücken. Die FC startet dann automatisch neu und die neuen Werte / Einstellungen werden übernommen.
Willst du die Änderungen verwerfen, gibt es mehrere Möglichkeiten:
- Verwende den Befehl exit
- Wechsle in einen anderen Tab des Configurators
- Klicke „Disconnect“ in der oberen rechten Ecke
Weil es so wichtig ist und oft vergessen wird: Speicher nicht vergessen! Es ist immer ziemlich ärgerlich, wenn du dir deine CLI-Befehle mühsam zusammengesucht hast und alles verloren geht, weil du den CLI-Tab ohne zu speichern verlässt. Wir wissen wovon wir sprechen und wollen dir das Fluchen ersparen. ;)
Die CLI-Syntax – Grundregeln für die Konsole
Damit deine Befehle von der CLI richtig erkannt werden, gibt es einige Grundregeln die du beachten musst. Man spricht hier auch von der Syntax – also der korrekten Art und Weise, wie du deine Befehle in der Kommandozeile formatieren musst.
Zum Glück ist die CLI hier relativ anspruchslos und verzeiht viele Formatierungsfehler in den Befehlseingaben. Das macht es leichter für Anfänger. Wir haben euch im Folgenden einige Beispiele zusammengestellt, die zeigen, welche Fehler die Konsole ohne Probleme verzeiht und wo ihr aufpassen müsst.
Leerzeichen
Bei deinen Eingaben ist es egal, ob du ein oder mehrere Leerzeichen zwischen den einzelnen Komponenten deiner Befehle verwendest. Folgende Beispiele sind also alles gültige Eingaben:
set dyn_notch_min_hz=150
set dyn_notch_min_hz = 150
set dyn_notch_min_hz= 150
set dyn_notch_min_hz= 150
Beachte jedoch, dass die Einstellung [setting] an sich keine Leerzeichen enthält, sondern mit tiefgestellten Bindesrichen (_) verbunden ist. Mindestens ein Leerzeichen [command] [setting] und Operatoren sowie dem [value] ist jedoch Pflicht.
Groß- und Kleinschreibung
Dasselbe gilt für die Groß- und Kleinschreibung. Auch hier ist es egal, wie du deine Befehle eingibst, solange der Befehl an sich richtig geschrieben ist. Das heißt alle der folgenden Beispiele funktionieren identisch:
set Rc_smoothing_debug_axis = ROLL
SeT rc_smoothing_DEBug_axis = Roll
sET rC_sMoothing_dEbug_aXis = rOll
Merke also: Leerzeichen gibt es in der Regel nur zwischen Operatoren. Zusätzliche Leerzeichen sind kein Problem Groß- und Kleinschreibung spielt ebenfalls keine Rolle.
Aktuelle Einstellungen anzeigen lassen – Dump oder Diff?
Nun, da wir uns über die Grundlagen klar sind, kann es los gehen. Bleibt noch eine klitzekleine Frage zu beantworten: Welche Befehle gibt es eigentlich? Guter Punkt!
Es gibt zwei wichtige Befehle, mit denen sich alle verfügbaren Einstellungen anzeigen lassen:
DUMP – Der DUMP-Befehl gibt alle verfügbaren Einstellungen aus. Das sind eine ganze Menge (fast 1000 Zeilen). Damit hast du ordentlich was zu lesen. Wenn man etwas sucht, ist der DUMP-Befehl aber ein guter Startpunkt, um eine Übersicht zu bekommen, was es alles so gibt.
Um genau zu verstehen, was dir Betaflight mit DUMP alles ausspuckt, hilft oft ein Blick in das offiziell Wiki / die Betaflight Dokumentation auf Github.
DIFF – Der DIFF-Befehl ist im Alltag wesentlich praktikabler in der Verwendung. Er listet dir alle Einstellungen und Werte auf, die in deiner Konfiguration vom Standard abweichen. Bei einer FC mit 100% Standardeinstellungen ist die Liste des DIFF-Befehls also leer.
Wir nutzen in der Regel immer den DIFF-Befehl anstelle des DUMP-Befehls. Diesen Befehl verwendest du auch, um Backups deiner Konfiguration zu machen. Das macht auch Sinn, denn du willst bei einem Backup ja in der Regel nur die Änderungen sichern, die vom Standard abweichen – dazu unten mehr.
GET – Der GET-Befehl ist ein weiterer nützlicher kleiner Helfer. Er listet dir alle Befehle auf, die mit einer bestimmten Eingabe beginnen. Das ist immer dann hilfreich, wenn man den genauen Befehl / das genaue Setting nicht mehr im Kopf hat und nur den Anfang erinnert.
Du schreibst zum Beispiel:
GET rc_smoothing
Und erhälst dann automatisch alle Befehle die mit „rc_smoothing“ beginnen. Außerdem wird der jeweils aktuelle Wert des [setting] ebenfalls mit ausgegeben. Das haben wir in unserem Beispiel nicht mit dargestellt. Das Ergebnis könnte folgendermaßen aussehen:
rc_smoothing_type
rc_smoothing_derivative_hz
rc_smoothing_debug_axis
rc_smoothing_input_type
rc_smoothing_derivative_type
rc_smoothing_auto_smoothness
Das bedeutet: Ihr könnte euch mit GET auch den aktuellen Wert einer Einstellung oder einer gesamten Einstellungsgruppe ausgeben lassen. Praktisch.
Daten sichern (Backup) und wiederherstellen via CLI
Eine der beliebtesten Anwendungen des CLI in Betaflight ist das erstellen von Backups deiner aktuellen Konfiguration. Betaflight kann die gesamte Konfiguration (also auch die Einstellungen, die du im GUI getroffen hast) in eine Datei sichern. Diese lässt sich dann später ganz einfach wieder einspielen und alles ist auf dem alten Stand.
Das ist super um zu experimentieren, ohne etwas kaputt zu machen. Oder aber um seine Konfiguration auf einen anderen Flight Controller zu übertragen.
Backup erstellen
Um ein Backup mit dem CLI zu erstellen genügt ein einfacher Befehl:
DIFF
Wie wir oben gelernt haben, werden dann alle veränderten Werte gegenüber dem Betaflight-Standard ausgegeben. Klicke nun auf den „Save to File“-Knopf und wähle einen Speicherort für die txt-Datei.
Hier sind nun lediglich alle Veränderungen im direkten Vergleich zur Standardkonfiguration enthalten.
Konfiguration wieder einspielen
Öffne die txt-Datei mit den Einstellungen. Markiere den gesamten Inhalt (Strg + A) und kopiere diesen (Strg + C). Danach fügst du den Inhalt aus der Zwischenablage in der CLI Kommandozeile in Betaflight ein (Strg + V).
Bestätige mit Enter. Und vergiss nicht zu speichern. Nach dem automatische Neustarte sind alle Werte wieder eingespielt.
CLI-Befehle in der Übersicht
Einige wichtige Befehle haben wir dir bereits oben genannt. In der folgenden Tabelle haben wir dir weitere gerne verwendete Befehle und Einstellungen zusammengestellt.
Befehl | Kurzbeschreibung |
---|---|
1wire | 1Wire-Befehl an bestimmten ESC durchreichen |
adjrange | Adjustment Range Einstellung anzeigen / setzen |
aux | AUX Einstellungen anzeigen / setzen |
color | Farbe konfigurieren |
defaults | FC auf Standardwerte zurücksetzen und neustarten |
dump | Alle konfigurierbaren Werte ausgeben |
diff | Alle gegenüber dem Standard veränderte Werte ausgeben (nur aktuelle PID-Profil) |
diff all | Alle gegenüber dem Standard veränderte Werte ausgeben (alle PID-Profile) |
exit | CLI verlassen (ohne Speicher) |
feature | Feature direkt konfigurieren |
get | Wert einer bestimmten Variable anzeigen |
gpspassthrough | GPS zu Serial Passthrough aktivieren |
help | Alle Befehle ausgeben |
led | LEDs konfigurieren |
map | Zuweisung der RC-Kanal-Reihenfolge ändern |
mixer | Name des Mixers ändern/anzeigen |
mode_color | Color Modes konfigurieren |
motor | Motor Output-Wert setzen/anzeigen |
play_sound | Index-Nummer oder "none" für nächsten Sound |
profile | index (0 bis 2) - Profil wählen |
rateprofile | index (0 bis 2) - Profil wählen |
rxrange | RX-Kanal Endpunkte (Range) konfigurieren |
rxfail | Failsafe-Setting zeigen/ändern |
save | Speichern und neustarten |
serialpassthrough | Serial Passthrough Mode aktivieren; Neustarten, um Modus zu verlassen |
set | Standardbefehl, um Variablenwerte zu verändern |
status | Systemstatus anzeigen |
version | Aktuelle Version anzeigen |
serial | Serial Port konfigurieren |
servo | Servos konfigurieren |
sd_info | Information zur SD-Karte abrufen |
tasks | Aktuelle Task-Statistiken ausgeben |
mmix | Eigenen Motormixer konfigurieren |
smix | Eigenen Servomixer konfigurieren |
Bitte beachte, dass die verfügbaren Befehle von der verwendeten Firmware (Betaflight, Baseflight, iNav) und der jeweiligen Version abhängig sind. Ältere Versionen unterstützen mitunter nicht alle hier gelisteten Befehle. Verwende die aktuellste Version von Betaflight für maximale CLI-Kompatibilität.
Besonders nützliche Befehle
Zu guter Letzt noch ein paar Befehle, die wir häufig verwenden und die sich schnell über das CLI setzen oder verändern lassen. Tipp: Ausdrucken und an die Werkbank hängen.
Befehl | Kurzbeschreibung |
---|---|
bl / dfu | Erlaubt das starten der FC im Bootloader-Modus, ohne eine Button zu drücken |
set small_angle=180 | Erlaubt das "Armen" des Racers unabhängig von der Lage der Drohne. |
set ledstrip_visual_beeper=ON | Synchronisiert den LED-Strip mit den Buzzer-Sounds (falls der Quad außer Hörreichweite ist oder mehrere Quads in der Luft sind). |
motor_pwm_protocol= | Erlaubt das einfache Setzen des PWM-Protokolls zur ESC-Ansteuerung. Möglich sind OFF, ONESHOT125, ONESHOT42, MULTISHOT, BRUSHED, DSHOT150, DSHOT300, DSHOT600, DSHOT1200, PROSHOT1000 |
bind_rx_spi | Bind-Modus für integrierte SPI-Empfänger aktivieren (ab BF 4.x) |
frsky_bind | Bind-Modus für integrierte Frsky-Empfänger aktivieren (ab BF 4.x) |
Weiterführende Informationen
Sollten dir noch Informationen zu weiteren Befehlen fehlen oder du benötigst noch mehr Input zu bestimmten Wertebereichen, die ein gewisses [setting] verarbeiten kann, dann schau unbedingt im Betaflight Wiki vorbei. Besondere Befehle sind hier noch einmal ausführlich diskutiert.
Schlusswort
Wir hoffen, dir hat unsere Betaflight CLI Übersicht weitergeholfen und du weist nun, was das CLI ist, wie du es verwendest und welche Möglichkeiten es dir zusätzlich zum GUI bietet.
Sollte dies der Fall sein, freuen wir uns darüber, wenn du den Artikel teilst. Bei Fragen oder Anregungen hinterlasse gerne jederzeit einen Kommentar. Auch freuen wir uns darüber, wenn du für den Kauf einer neuen Drohne einen unserer Partnerlinks verwendest (mit * gekennzeichnet), so erhalten wir eine kleine Provision.
Du bist von dem Inhalt begeistert und möchtest Drone-Zone.de unterstützen? Dann freuen wir uns natürlich riesig über eine kleine Zuwendung. Bei der nächsten Recherche und beim Erstellen des nächsten Artikels gibt es dann einen Becher Kaffee mehr für uns! :)
via Paypal
Werde auch gleich ein Abonnent auf Facebook und verpasse zukünftig keine News und Artikel mehr!
Hallo,
ich habe mir Ihren Beitrag sehr genau durchgelesen.
Jetzt habe ich aber noch eine Frage zum Betaflight. Ich habe mir eine T-Motor FT5 MKII HD 6s gekauft, und eine TBS Mambo Ethix FB.
Ich möchte sehr gerne die Einstellungen die vom Verkäufer gemacht worden sind sichern. Ich weiß aber nicht mit welcher Version von BF das gemacht wurde.
Ist das egal welche Version ich nehme. Sollte ich in der CLI dump schreiben und mir alles speichern oder mit diff bzw. diff all?
Mit der Bitte um eine Nachricht.
Vielen Dank im Voraus.
Marian Walkhoff
Hallo Marian,
ganz habe ich dein Problem glaube ich noch nicht verstanden. Die Version der aktuellen BetaFlight Firmware wird doch eigentlich unten in der Status-Zeile des Configurators angezeigt. Oder nach welcher Versions suchst du?
Bzgl. DUMP /DIFF: Ich würde in jedem Fall beide Versionen speichern, bevor du die aktuelle Konfiguration irgendwie platt machst oder überspielst. Ich hatte noch nie ein besonderes Problem, das volle Backup via dump später wieder einzuspielen. Das kann man ja aber einfach ausprobieren.
Viele Grüße,
Nils
Kann ich aus der dump Datei auch nur die PIDs wiederherstellen? Wenn ich sie komplett drauf lade, setzt sich dann betaflight auch wieder auf die alte Version zurück?
Hallo Zinsen,
die Dump-Datei enthält ja nur die Einstellungen deiner Betaflight-Konfig. Die Version bleibt dabei unberührt. Man sollte bloß aufpassen, dass die Versionen, zwischen denen man exportiert und importiert, einigermaßen nahe beieinander liegen.
Viele Grüße,
Nils