Im Spätsommer 2021 stellte sich ein kleines Elektronikteam innerhalb der WARR Rocketry (Wissenschaftliche Arbeitsgemeinschaft für Raketentechnik und Raumfahrt an der Technischen Universität München) ein ehrgeiziges Ziel: Man wollte erstmals einen Flugcomputer komplett selbst entwickeln. Eine gewaltige Aufgabe für eine Handvoll unerfahrener Studenten ohne Sponsoren. Doch das Team war hochmotiviert, sich dem Abenteuer zu stellen und verbrachte Monate mit der Systementwicklung, intensiven Designüberlegungen und Gesprächen mit Branchenexperten.
Die erste Aufgabe des Avionics-Firmware-Teams bestand darin, Treiber für eine Vielzahl von Systemen zu entwickeln. Darunter Inertialmesseinheiten (IMUs) und GPS, die über SPI angeschlossen sind, Thermoelemente und Barometer, die über I2C verbunden sind, sowie das über UART betriebene Datenerfassungssystem. Aufgrund der Komplexität des Projekts war der Einsatz eines Echtzeitbetriebssystems erforderlich, was zur Integration von FreeRTOS führte. Als sich das Team in die Feinheiten der Verwaltung von sechs quasi-parallel laufenden Tasks vertiefte, sah es sich mit einer neuen Herausforderung konfrontiert: Es musste verstehen, wie das Task-Scheduling von FreeRTOS auf dem STM32F4-Mikrocontroller genau aussah.Tracealyzer spielt eine entscheidende Rolle bei der Analyse der Code-Performance
Mit zunehmender Komplexität des Systems wurde es immer schwieriger, die internen Abläufe des Mikrocontrollers zu durchschauen. Abhilfe brachte die von Percepio gesponserte Tracealyzer-Software. Diese erwies sich als sehr hilfreich, da sie tiefe Einblicke in die internen Mechanismen des Betriebssystems ermöglichte. Tracealyzer spielte eine entscheidende Rolle bei der Analyse der Code-Performance und der Identifizierung von Timing-Fehlern, die für einen unter strengen Echtzeitbedingungen arbeitenden Flugcomputer von essenzieller Bedeutung sind.
Eine weitere Herausforderung bestand in der Verwaltung einer Vielzahl hochfrequenter Sensoreingaben. Alle eingehenden Daten wurden in einer speziellen Struktur gepuffert, die groß genug war, um 400 vollständige Messwerte zwischenzuspeichern und so eine möglichst schnelle Datenerfassung zu gewährleisten. Die Daten konnten dann in größeren Paketen an das Onboard-Logging-System und den Telemetrie-Downlink übermittelt werden.
Es musste sichergestellt werden, dass die Datenerfassungsprozesse nicht zu oft, aber auch nicht zu selten geplant wurden, um für den sensorlastigen Betrieb ein Gleichgewicht herzustellen. Die anschaulichen Visualisierungen von Tracealyzer waren hierfür der Schlüssel: Das Team konnte sehen, wann auf die Datenstruktur zugegriffen wurde, wie lange das Schreiben der Daten auf den Flugdatenschreiber dauerte und, dass es zu keinem Datenverlust gekommen war. So wurde sichergestellt, dass das System den Datenstrom bewältigen konnte, gleichzeitig aber genug Kapazität für alle anderen wichtigen Prozesse blieb. Kurzum half Tracealyzer dabei, den goldenen Mittelweg zwischen Geschwindigkeit und Zuverlässigkeit für den Datenerfassungsprozess zu finden.
WARR Rocketry | WESP Lower Stage Launch
Der Flugcomputer musste über Stunden hinweg ununterbrochen kritische Aufgaben erfüllen – von der Startrampe bis zum Aufstieg und Flug der Rakete. Zu diesen Aufgaben zählten die Aufrechterhaltung der Kommunikation mit der Bodenstation, die Überwachung der Temperaturen und Drücke in den Treibstofftanks, die Berechnungen des Bewegungszustands des Systems, die gleichzeitige Aufzeichnung der Daten an Bord auf einer SD-Karte und Übertragung an die Bodenstation, die Erkennung der Flugparabelspitze zur Auslösung der Fallschirme, die Steuerung der Triebwerkszündsequenzen sowie der Ventile der Rakete.
Gelungener Echtzeit-Balanceakt
Die Analyse des Codes mithilfe von Tracealyzer bevor das Elektronikteam im Oktober letzten Jahres an der European Rocketry Competition (EuRoC) in Portugal teilnahmen, gab ein viel größeres Vertrauen in die Robustheit des Systems.
Die Möglichkeit, FreeRTOS bei der Datenerfassung, dem Kalman-Filter, der Startsequenz und den Triebwerkszündsequenzen in Echtzeit zu überwachen, erwies sich dabei als entscheidend. Der Flugcomputer musste diese Aufgaben mit hoher Präzision erfüllen, da die Triebwerkssequenzen eine Genauigkeit im Millisekundenbereich erforderten. Auch die Steuerung der Startsequenz spielte eine elementare Rolle bei der Bereitstellung kritischer Daten für die Triebwerkssequenzen, vor allem im Falle von Sensoranomalien, die einen Abbruch auslösen.
Am Ende war die komplette Neuentwicklung eines Flugcomputers für das Elektronikteam eine Reise, die zeigte, wie viel man mit Entschlossenheit, Innovation und der Unterstützung durch Tools wie Tracealyzer erreichen kann. Das Team ging aus diesem Projekt mit wertvoller Erfahrung und einem innovativen Flugcomputer hervor. Ganz zu schweigen davon, dass das Team auf der EuRoC 2023 mit dem New Space Design Award ausgezeichnet wurde. (neu)
Autor
Joshua Batmaz, Avionik Firmware Lead, WARR Rocketry