In dieser Anleitung beschäftigen wir uns mit der Blackbox-Funktion von CleanFlight und seinen Ablegern, wie BetaFlight und ButterFlight (alle Infos zu den verschiedenen Flight Controller Projekten).
Es geht dabei um das Aufzeichnen von Daten im Flug, um diese zu einem späteren Zeitpunkt auslesen und auswerten zu können. Ganz allgemein kann man dabei auch von „Daten-Logging“ sprechen.
Dieser Guide richter sich an alle, die die Blackbox-Funktion in CleanFlight verwenden möchten, um damit beispielsweise ihr Setup noch besser zu tunen oder aber coole Overlay-Effekte in ihre FPV-Videos einzubauen.
Inhalt
Was ist die BlackBox?
Im Grunde ist die Blackbox in CleanFlight sehr ähnlich zu einem Flight Recorder an Bord eines Passagierflugzeuges. Die Blackbox nimmt laufend die aktuellen Informationen auf, die von den verschiedensten Sensoren bereitgestellt werden und speichert diese ab. Natürlich hat die Blackbox in deinem FPV-Racer* nicht den Anspruch eine nahezu unzerstörbare Metallkiste zu sein, die auch dann noch aaslesbar ist, wenn sie aus 30.000 Fuß Höhe auf den Boden aufgeschlagen ist. Es geht viel mehr darum, die Daten der eigenen Flüge auswerten zu können, um daraus Verbesserungen und Anpassungen abzuleiten.
In CleanFlight hängt die Aufzeichnungsgeschwindigkeit von der sogenannten Loop Time ab. Diese gibt an, wie viel Zeit zwischen zwei Iterationen eines Controll Loops vergeht. Das Blackbox-Feature schreibt dabei alle Daten auf einen Speicher, die in jeder Kontrolliteration des Flight Controllers* anfallen.
Es werden als die folgenden Werte gespeichert (sofern verfügbar und vom verwendeten FC-Board unterstützt):
- Aktuelle Zeit in Mikrosekunden
- P, I und D Korrekturen für jede Achse (PID-Controller)
- Aktuelle RC-Steuerknüppelposition (Stick Positions) (nach der Anwendung der Expo-Kurven)
- Daten des Gyro / Kreisels
- Daten des Beschleunigungssensors* (nach Low-Pass-Filter)
- Daten des Barometers / Höhenmessers
- Daten des Sonars
- Daten des 3-Achsen-Magnetometers
- VBAT (Batteriespannung)
- Aktueller Strom
- RSSI
- Aktuelle Befehle, die an die ESCs* gesendet werden
- GPS-Position**
Dieser Werte stehen dabei später für die Auswertung bereit. Voraussetzung ist natürlich, dass dein Copter über die entsprechenden Sensoren verfügt. **Die GPS-Position wird im Übrigen nicht mit jedem Control Loop aufgezeichnet, sondern nur geloggt, wenn es eine Positionsänderung gibt.
So konfigurierst du den Black Box Recorder
Für alle, die es eilig haben, wollen wir uns schnell darum kümmern, wie du die Blackbox aktivieren kannst. Dazu wird entweder die GUI des Configurators verwendet, oder du gehst über das CLI (Command Line Interface).
In diesem Beispiel haben wir einen Flight Controller mit einem On-Board microSD-Kartenslot verwendet. Es handelt sich dabei um ein OMNIBUS F4 Target* mit OSD und SD-Support.
Im Blackbox-Menü lässt sich das Speicherziel auswählen. Ist eine SD-Karte eingelegt, so kann der Flight Controller auch im Mass Storage Device Mode neu gebootet werden. Dann muss die SD-Karte nicht zum Auslegen der Log-Files aus dem FPV Racer entnommen werden. Neben dem Speicherziel lässt sich hier auch noch die Logging-Frequenz einstellen. Standardmäßig wird mit 1000 Hz, d.h. 1000 Log-Einträgen pro Sekunde, gearbeitet.
CLI-Befehle:
- OpenLog-Logger: set blackbox_device=SERIAL
- Dataflash storage (On Chip): set blackbox_device=SPIFLASH
- On-Board microSD-Karte: set blackbox_device=SDCARD
Anschließend Speichern und neu starten.
Diese Hardware benötigst du
Entstanden ist die Blackbox Funktion ursprünglich durch die Anbindung des OpenLog Serial Data Loggers an CleanFlight. OpenLog ist ein kleines Zusatzmodul in Form einer kleinen Platine, die es erlaubt, serielle Daten zu loggen. Dabei wurde der OpenLog Logger initial über ein freies UART an den Flight Controller angeschlossen. So konnten die Daten während des Fluges direkt auf das OpenLog Modul aufgezeichnet werden. Die Daten werden dabei entweder auf einem verlöteten Chip oder auf einer microSD-Karte* gespeichert. Auch wenn die OpenLog-Variante auch heute noch funktioniert, gibt es komfortablere Möglichkeiten, die Blackbox unter CleanFlight und BetaFlight zu nutzen.
Variante 1: Dataflash Storage Onboard-Logging
Du verwendest einen Flight Controller*, der On-Board-Speicher zur Verfügung stellt. So kann eine, meist sehr begrenzte Anzahl an Loop-Iterationen, direkt auf dem Flight Controller gespeichert werden. Das kann ausreichen, um dein Setup zu tunen, weil du nur kurze Testflüge machen musst. Diese Speicherart wird auch als „Dataflash Storage“ bezeichnet.
Folgende Boards unterstützen den On-Board Speicher von Haus aus:
- OpenPilot CC3D* (2 MB)
- Naze 32 Full* (Nicht Acro!) (2 MB)
- SPRacingF3 (8 MB)
Da es eine Vielzahl an CleanFlight / BetaFlight kompatiblen Boards gibt, findet sich auf der GitHub-Seite zum CleanFlight eine Liste weiterer unterstützter Flash-Chips samt Datenblättern. Damit lässt sich herausfinden, ob deine Flight Controller ebenfalls unterstützt wird, solltest du einen Exoten verwenden.
Variante 2: Logging auf integrierte microSD-Karte
Du besitzt einen Flight Controller* mit integriertem Datenlogger und microSD-Karten-Slot. In diesem Fall stehen dir alle Möglichkeiten offen. Dies ist in der Regel auch die Variante, die die höchsten Log-Frequenzen ermöglicht. Wichtig ist nur, dass deine microSD-Karte* schnell genug ist, um die eingehenden Daten zu schreiben.
Beim Logging auf SD-Karten gibt es einige Dinge zu beachten:
- Es funktionieren nur microSD(SC) oder microSDHC-Karten. Moderne SDXC-Karten funktionieren nicht.
- Die maximale Kapazität der microSD-Karte ist 32 GB.
- Die Karte muss mit einem FAT16 oder FAT32 Dateisystem formatiert sein
Die FREESPACE.E-Datei
Der Flight Controller erstellt beim ersten Einlegen der microSD-Karte eine Datei mit dem Namen FREESPACE.E. Diese Datei ist sozusagen der Pool an freiem Speicher, der zum Loggen zur Verfügung steht. Immer wenn ein neues Log-File durch die Blackbox angelegt wird, wird ein Teil der FREESPACE.E-Datei abgeschnitten und zum Speicher von Daten verwendet.
Hinweis: Editiere niemals den Inhalt der FREESPACE.E-Datei, wenn du die microSD-Karte mit dem Computer ausliest. Das kann zu Problemen beim nächsten Losging-Vorgang führen.
Die FREESPACE.E-Datei kann maximal 4 GB groß sein. Sobald in Summe also Log-Daten von 4 GB vorliegen, hat die FREESPACE.E-Datei beinahe eine Größe von 0 KB. Sollte deine microSD-Karte* größer als 4 GB sein, kannst du weitere Logfiles erstellen, in dem die FREESPACE.E gelöscht wird. Der Flight Controller erstellt beim nächsten Start dann eine neue Datei und arbeitet weiter.
Blackbox Daten aufzeichnen
Das Aufzeichnen von Logdaten mit der Blackbox ist in CleanFlight und BetaFlight extrem einfach. Sobald du die Funktion über die GUI aktiviert hast, wird die Aufzeichnung der Daten begonnen, sobald du deinen Quad auf ARMED gestellt hast. Das Logging läuft dann so lange, bis es zum DISARM kommt. Für jeden Flug (= ARMING-Sequenz) wird dann ein neues Logfile angelegt.
Wer die Aufzeichnung noch ein wenig genauer steuern möchte, kann die Blackbox auf mit einem Schalter an der Fernsteuerung aktiveren. Voraussetzung dafür ist nur ein unbelegter Schalter sowie ein freier Kanal.
Im BetaFlight Configurator dazu unter MODES wechseln. In der Liste gibt es den Eintrag BLACKBOX. Hier auf Add Range klicken. Anschließend im Dropdown einen Kanal wählen und prüfen, dass der Schalter an der Funke richtig zugeordnet ist.
Die Aufzeichnung läuft auch hier nur, wenn das Modell im ARM-Modus ist. Zusätzlich muss jetzt aber noch unser konfigurierter Schalter aktiviert sein, damit geloggt wird. Das Logging lässt sich so auch beliebig, während des Fluges ein- und ausschalten.
Dropped Frames – das kannst du dagegen tun
Im Zusammenhang mit dem Daten-Logging und der Blackbox taucht immer wieder der Begriff „Dropped Frames“ auf. Gemeint ist damit, dass die Daten einzelner Control Loop Interaktionen nicht richtig oder gar nicht aufgezeichnet werden. Als Frame wird in diesem Zusammenhang also eine einzelne Aufzeichnung verstanden. Wenn wir also mit 1 kHz loggen, werden 1000 Frames pro Sekunde aufgezeichnet.
In der Regel treten dropped Frames dann auf, wenn das Logging-Gerät die eintreffenden Daten nicht schnell genug verarbeiten / in den Speicher schreiben kann.
Es gibt dann zwei Möglichkeiten, die Anzahl der Dropped Frames zu verringern:
- Den eintreffenden Datenstrom zu verringern (d.g. die Logging-Frequenz zu senken)
- Die Schreibgeschwindigkeit des Speichers bzw. die Bus-Geschwindigkeit des Logging-Gerätes zu erhöhen
Logging-Frequenz verringern
Die Verringerung der Logging-Frequenz ist in BetaFlight ganz einfach über den Configurator möglich. Hier lässt sich eine Logging-Frequenz unabhängig von der Loop-Time wählen.
Wer die Frequenz gerne via CLI anpassen will, kann dieses durch das setzen von zwei Variablen erreichen.
Mit set blackbox_rate_num = 1 und set blackbox_rate_denom = 2 wird ein Bruch beschrieben: 1/2 = 0,5. Dieser Wert wird dann mit der Loop Time multipliziert (z.B. 2500) und wir erhalten eine Log-Frequenz von 0,5 * 2500 = 1250 Hz.
Die Verringerung der Logging-Frequenz ist auch dann besonders sinnvoll, wenn wenig Speicher zur Verfügung steht (zum Beispiel beim On Chip Logging mit wenigen MB). Ihr könnt die Frequenz so beispielsweise ganz einfach auf 1/50 reduzieren. So werden aus den 2 MB, die bei 1/1-Frequenz knapp 2 bis 3 Minuten reichen, schnell Platz für 100+ Minuten Flug.
Auch macht die Senkung der Frequenz Sinn, wenn ihr eine sehr langsame SD-Karte einsetzt.
Geschwindigkeit des Speichers / Serial Links erhöhen
Wer das original OpenLog-Modul verwendet sollte die Baud-Rate der seriellen Verbindung auf 115.200 setzen. Damit sind Loop Times bis 2500 in der Regel kein Problem. Wer schnellere Loops Times < 2500 verwendet, der muss den Serial Bus auf eine BAUD Rate von 250.000 erhöhen, sofern der verwendete Logger das unterstützt. Natürlich muss auch die SD-Karte im Logger mitspielen.
Wer seinen Logger über einen Soft Serial UART angebunden hat, der wird in den meisten Fällen ebenfalls die Logging-Rate senken müssen. Hier hilft die Erhöhung der Bus-Geschwindigkeit nicht, weil diese durch die CPU begrenzt wird.
Wird direkt auf microSD-Karte geloggt, so sollte mindestens eine Class 10 Karte* zum Einsatz kommen, um die volle Loop Time Frequenz loggen zu können. Karten mit Class 4 sind in der Regel zu langsam und verlieren durch dropped Frames bis zu > 1% aller Aufzeichnungen.
Daten mit dem Blackbox Explorer auslesen
Um die über die BlackBox-Funktion erstellten Log-Files auszulesen, wird der sogenannte Blackbox Explorer verwendet. Das Tool ermöglicht es, die in Zeilenform vorliegenden Daten aus den Logfiles zu visualisieren.
Aktuell steht der BetaFlight Blackbox Explorer als App im Chromes Web Store zum direkten Download bereit. Das Tool wird daher parallel zur Configurator App installiert und verwendet.
Der Blackbox Explorer ermöglicht es, die TXT-Logfiles direkt von der microSD-Karte zu öffnen. Das Menü erinnerte dabei an ein Videoplayer. Die Daten lassen sich nämlich im Zeitverlauf wiedergeben.
Besonders cool: Wer ein Video von seiner FPV-Session gemacht hat (z.B. mit einer Action Cam*), der kann die Videodatei ebenfalls öffnen und einen ersten Overlay-Effekt mit den Log-Daten erzeugen. Auch ein einfacher Video-Export als WebM-File ist mit den Blackbox Explorer möglich.
BlackBox Daten analysieren
Sobald du die Daten in irgendeiner Form visualisiert hast – es gibt auch Menschen, die schauen sich 10.000-Zeilen Excel an und können daraus ein Muster erkennen – kannst du die Daten nutzen, um deinen Drone Racer zu tunen.
Ein Beispiel: Liegt die Drohne ruhig in der Luft, ist das ein perfekter Moment, um nach periodisch auftretenden Vibrationen in den Sensoren Ausschau zu halten. So lässt sich starke Unwucht in Propellern oder ggf. ein kaputtes Motorenlager identifizieren.
Joshua Bardwell hat hierzu unter anderem einen umfangreichen Post in den RCGroups-Foren verfasst (inkl. Videos) – sehr sehenswert. Ebenfalls zu empfehlen ist der Thread Blackbox log analyzation\help, hier wird auf viele Grundlagen des PID-Tuning (unter anderem mithilfe der Blackbox-Daten) eingegangen. Abschließend soll natürlich auch die großartige PID-Tuning-Doku des CleanFlight Projektes an dieser Stelle nicht unerwähnt bleiben.
Blackbox Daten für Overlay in Videos verwenden
Wem die Export-Funktion des Blackbox Explorers nicht genügt, dem werden mit den Blackbox-Tools einige weitere Möglichkeiten an die Hand gegeben, die Log-Daten grafisch darzustellen.
Die beiden Kommandozeilen-Tools blackbox_decode und blackbox_renderer stellen hierfür die Grundlage dar.
Zunächst wird mit blackbox_decode eine CSV-Datei aus unserem TXT-Logfile generiert. Dies enthält alle Log-Daten in Komma-separierter Formatierung. Die CSV-Datei benötigen wir, um im zweiten Schritt PNG-Dateien zu generieren, die die Daten des Logs visualisieren. Diese PNG-Bilder können dann anschließend in jedem beliebigen Videoschnittprogramm importiert und über das FPV-Flugvideo gelegt werden.
Die genaue Funktionsweise beider Tools ist in der CleanFlight Dokumentation sehr gut beschrieben.
Schlusswort
Die Möglichkeiten, die uns mit der Blackbox unter CleanFlight und BetaFlight an die Hand gegeben werden, sind sehr vielfältig. Egal, ob einfache Analyse der Sensorenwerte, das datenbasierte PID-Tunig oder das Visualisieren der Flugdaten in einem Overlay-Video – all das ist mit der Blackbox möglich.
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!