IPS – High Level Programming of Small Systems for the AMSAT space projects
September 6, 2019IPS — Interpreter for Process Structures developed by Prof. Dr. Karl Meinzer, DJ4ZC
HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS
IPS wurde vor mehr als 40 Jahren von Prof. Dr. Karl Meinzer DJ4ZC für die AMSAT-Weltraumprojekte (Kommunikationssatelliten für Funkamateure) entwickelt. Es hat sich viele Jahre als sehr nützliches Werkzeug zur Programmierung kleiner Systeme erwiesen, ist aber in letzter Zeit etwas in Vergessenheit geraten. IPS verfolgt einen extrem modularen und strukturierten Ansatz, um Programme interaktiv zu entwickeln. Da es sich bei IPS um eine Hochsprache handelt, ermöglicht es die gemeinsame Nutzung von Programmen unabhängig davon, für welchen Prozessor sie entwickelt wurden.
Einleitung
IPS ist hauptsächlich eine Hochsprache, die eine extrem modular strukturierte Programmierung ermöglicht. Im Gegensatz zu anderen Sprachen ist IPS im Wesentlichen frei von Syntaxregeln. Es verwendet RPN (“Reverse Polish Notation”), um die Parameterübergabe zwischen den Modulen extrem einfach zu gestalten und ist so uneingeschränkt wie Low-Level-Assembler konzipiert.
Die High-Level-Emulationstechnik ist äußerst wirtschaftlich in Bezug auf die Speichernutzung – das gesamte System befindet sich in 6 KByte Speicher. Aber Programme führen nur zwei- bis dreimal langsamer als optimaler Assemblercode aus. In den meisten Fällen stellt dies kein Problem dar, jedoch können extrem zeitkritische Anwendungen oder spezielle Hardware einige Schnittstellen der Assemblersprache erfordern. IPS verwendet daher einen integrierten Assembler, um diese Erweiterungen zu erleichtern.
Das Betriebssystem der P3-Satelliten
Eine wichtige Anwendung von IPS war und ist die Verwendung als Betriebssystem für die Phase-3 Amateurfunksatelliten der AMSAT. Der 1802/IPS-Computer des Satelliten OSCAR-13 (P3-C) funktionierte acht Jahre lang ohne Unterbrechung, bis er 1996 wieder in die Atmosphäre eintrat. Beeindruckend für das Betriebssystem eines jeden Computers, geschweige denn für eines, das im Weltraum funktionieren muss.
Die folgenden AMSAT-Satelliten verwendeten IPS auf dem Bordrechner (Integrated Housekeeping Unit):
- AMSAT P3-A: (Startfehler) im Mai 1980
- AMSAT-OSCAR 10 (P3-B): erfolgreicher Start am 16. Juni 1983
- AMSAT-OSCAR 13 (P3-C): erfolgreiche Einführung am 15. Juni 1988
- AMSAT OSCAR-21 (Radio Sputnik-14): RUDAK-II erfolgreich gestartet am 29. Januar 1991
- AMSAT-OSCAR 40 (P3-D): erfolgreicher Start am 16. November 2000
- AMSAT P3-E (in Arbeit)
Die Rettung von OSCAR-10 (P3-B)
Als OSCAR-10 im Jahr 1988 zunächst erfolgreich gestartet wurde, kollidierte leider unerwartet die letzte Raketenstufe mit dem Satelliten. Dieses Beispiel soll zeigen, wie IPS half die Mission zu retten.
Als sich die 400 Bit/s PSK-Bake von OSCAR-10 das erste Mal automatisch nach dem Start meldete, waren die Telemetriedaten erschreckend:
- Die Solarzellen waren praktisch tot und lieferten keine Energie
- Die Batterie wurde zunehmend entladen
- Die Sonnen- und Erdsensoren lieferten widersprüchliche Daten
Irgendwas war fürchterlich schief gelaufen und der Zustand des Satelliten mehr als besorgniserregend. Zu diesem Zeitpunkt war nicht klar was die Ursache dafür war. Es hat noch viele Wochen gedauert, bis der eigentliche Grund überhaupt bekannt wurde. Bis dahin tappte man im wahrsten Sinne des Wortes im Dunkeln.
Um die Batterie und den Bordcomputer nicht zu verlieren, hat Karl DJ4ZC mit seiner Kommandostation in Marburg sofort alle unnötigen Verbraucher im Satelliten abgeschaltet. Aber das reichte noch nicht, auch die Bake wurde abgeschaltet um Strom zu sparen und etwas Ladung in die Batterie zu bekommen.
Nach einigen Stunden zeigte sich, dass diese Notmaßnahme bereits etwas Wirkung zeigte und der Satellit nicht verloren ist. Aber die Zeit drängte trotzdem, noch stand die Mission auf der Kippe, bis hin zum Totalverlust.
In der Zwischenzeit analysierte Karl die Telemetrie und versuchte das Rätsel zu lösen. Dabei half es ihm, dass er im Satelliten einfache Befehle direkt im Interpreter ausführen konnte. Einzelne Funktionen konnten verändert werden, ohne irgendwelche Programme neu zu compilieren und dann noch hochzuladen. Denn aufgrund der Fluglage war die Funkverbindung teilweise auch ungünstig.
So konnte Karl sehr schnell herausfinden, dass der Satellit sich falsch herum dreht und die Fluglage vollkommen daneben liegt. Die Solarpanele wurden praktisch nicht mehr von der Sonne beleuchtet, stattdessen schien die Sonne senkrecht auf den Kopf des Satelliten.
Die P3-Satelliten besitzen zur Lageregelung ein ausgeklügeltes Magnetsystem, bestehend aus Elektromagneten in den Seitenarmen, die vom Bordcomputer anhand der Sonnen- und Erdsensoren entsprechend gepulst werden um zusammen mit dem Erdmagnetfeld eine Kraft auf die Rotationsachse auszuüben und so den Satelliten zu kippen.
Damit die Lageregelung und Sensoren wieder funktionieren, musste die Software bzw. die Arithmetik und das Koordinatensystem für die Lagesensoren und Fluglageregelung umgeschrieben werden.
Die Nacht war kurz und viel Zeit für aufwendige Tests blieb nicht. Aber IPS ist ein sehr sicheres Betriebssystem.
Tatsächlich, es schien zu funktionierten!! Die Sensoren lieferten wieder sinnvolle Daten und schon beim nächsten Durchflug durch das Perigäum fingen die Solarzellen wieder an spürbar mehr Strom zu erzeugen.
OSCAR.10 war gerettet und stand den Funkamateuren noch viele Jahre zur Verfügung!
Man kann sicher behaupten, dass ohne die Flexibilität von IPS eine derartige Rettungsaktion kaum möglich gewesen wäre und damit hat IPS auch seine größte Stärke bewiesen.
IPS bei GitHub
Wir haben ein zentrales IPS-Repository bei GitHub für die gesamte Dokumentation, die originale Flugsoftware für die 1802 IHU, den Quellcode, verschiedene Portierungen auf Linux und Windows, angelegt. Bisher waren die Files auf verschiedene Server verteilt. Zudem ging bei jedem Serverwechsel auch immer etwas verloren, aber auch die Generations- und Datenträgerwechsel von ATARI800, über ATARI-ST, ACORN RISC PC, MSDOS, Windows 1-10. Einen großen Teil haben wir bereits von alten und privaten Festplatten wiederhergestellt, aber einiges ist noch zu bearbeiten und zu sortieren. Dies wird nach und nach geschehen, leider auch sehr zeitaufwendig. Ein besonderer Dank geht an Paul Willmott VP9MU, Stacey Mills W4SM, James Miller G3RUH, Peter Gülzow DB2OS und Karl Meinzer DJ4ZC.
Natürlich ist diese, beinahe forensische, Arbeit auch mit der Hoffnung verbunden, dass die Community vielleicht doch noch ein Interesse an IPS findet und die Entwicklung von einer größeren Gruppe weiter getrieben wird.
IPS – das Buch!
Bereits im Jahr 1978 hat Karl Meinzer, DJ4ZC die erste Version von IPS – High Level Programming of Small Systems veröffentlicht. 1997 erschien dann die 2. Auflage vertrieben durch James Miller G3RUH, sowie eine 3. Auflage in 2016, die auch elektronisch als PDF verfügbar ist.
2019 wurde nun eine 4. Auflage von Prof. Dr. Karl Meinzer (Autor) und Juergen Pintaske (Editor) veröffentlicht. Dazu schrieb Herr Pintaske: “Beim Vorbereiten wurde sichtbar, wieviel Arbeit in dieses Projekt IPS gesteckt wurde – und kaum bekannt ist.”
Die gedruckte Version des Buches IPS – a Forth-like Language for Space: HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS IN SPACE (english) ist jetzt bei Amazon verfügbar.