IPS – High Level Programming of Small Systems for the AMSAT space projectsSeptember 6, 2019
IPS — Interpreter for Process Structures developed by Prof. Dr. Karl Meinzer, DJ4ZC
HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS
IPS was developed more than 40 years ago by Prof. Dr. Karl Meinzer DJ4ZC for the AMSAT space projects (communication satellites for radio amateurs). It has proven to be a very useful tool for programming small systems for many years, but has been somewhat forgotten lately. IPS follows an extremely modular and structured approach to develop programs interactively. Because IPS is a high-level language, it allows programs to be shared regardless of which processor they were developed for.
IPS is mainly a high-level language that allows extremely modular structured programming. Unlike other languages, IPS is essentially free of syntax rules. It uses RPN (“Reverse Polish Notation”) to make parameter passing between modules extremely simple and is designed to be as unconstrained as low-level assembler.
The high-level emulation technique is extremely economical in terms of memory usage – the entire system resides in 6 Kbytes of memory. But programs execute only two to three times slower than optimal assembly code. In most cases this is not a problem, but extremely time-critical applications or special hardware may require some assembly language interfaces. IPS therefore uses an integrated assembler to facilitate these extensions.
The operating system of the P3 satellites
An important application of IPS was and is its use as the operating system for AMSAT’s Phase 3 amateur radio satellites. The 1802/IPS computer of the OSCAR-13 satellite (P3-C) operated without interruption for eight years until it re-entered the atmosphere in 1996. Impressive for any computer’s operating system, let alone one that needs to function in space.
The following AMSAT satellites used IPS on the on-board computer (Integrated Housekeeping Unit):
- AMSAT P3-A: (launch failure) in May 1980
- AMSAT-OSCAR 10 (P3-B): successful launch on 16 June 1983
- AMSAT-OSCAR 13 (P3-C): successful launch on 15 June 1988
- AMSAT OSCAR-21 (Radio Sputnik-14): RUDAK-II successfully launched on 29 January 1991
- AMSAT-OSCAR 40 (P3-D): successful launch on 16 November 2000
- AMSAT P3-E (in progress)
The rescue of OSCAR-10 (P3-B)
Unfortunately, when OSCAR-10 was initially launched successfully in 1988, the last stage of the rocket unexpectedly collided with the satellite. This example is to show how IPS helped save the mission.
When OSCAR-10’s 400 bit/s PSK beacon first automatically reported after launch, the telemetry data was startling:
- The solar cells were practically dead and delivered no energy
- The battery was increasingly discharged
- The solar and earth sensors provided contradictory data
Something had gone terribly wrong and the condition of the satellite was more than worrying. At this point it was not clear what caused it. It took many more weeks before the real reason was even known. Until then, one was literally groping in the dark.
In order not to lose the battery and the on-board computer, Karl DJ4ZC with his command station in Marburg immediately switched off all unnecessary consumers in the satellite. But that wasn’t enough, the beacon was also switched off to save power and get some charge into the battery.
After a few hours it became apparent that this emergency measure was already having some effect and that the satellite was not lost. But time was still of the essence, the mission was still on the brink of total loss.
In the meantime, Karl analyzed the telemetry and tried to solve the puzzle. It helped that he could execute simple commands in the satellite directly in the interpreter. Individual functions could be changed without recompiling any programs and then uploading them. Because of the flight situation the radio communication was partly also unfavorable.
So Karl was able to find out very quickly that the satellite was turning the wrong way and the flight attitude was completely off. The solar panels were practically no longer illuminated by the sun, instead the sun shone perpendicularly on the head of the satellite.
The P3 satellites have a sophisticated magnetic system for attitude control, consisting of electromagnets in the side arms, which are pulsed by the on-board computer on the basis of the sun and earth sensors in order to exert a force on the axis of rotation together with the earth’s magnetic field and thus tilt the satellite.
In order for the attitude control and sensors to work again, the software or the arithmetic and the coordinate system for the attitude sensors and flight attitude control had to be rewritten.
The night was short and there was not much time for elaborate tests. But IPS is a very secure operating system.
In fact, it seemed to work!! The sensors delivered again meaningful data and already with the next passage through the perigee the solar cells began again to produce noticeably more current.
OSCAR.10 was saved and was available to radio amateurs for many years to come!
It is safe to say that without the flexibility of IPS, such a rescue operation would hardly have been possible, and in doing so, IPS also proved its greatest strength.
IPS at GitHub
We created a central IPS repository at GitHub for all documentation, the original flight software for the 1802 IHU, source code, various ports to Linux and Windows. Until now the files were distributed on different servers. In addition, with every server change, something was always lost, but also the generation and disk changes from ATARI800, to ATARI-ST, ACORN RISC PC, MSDOS, Windows 1-10. A large part we have already recovered from old and private hard disks, but some is still to be processed and sorted. This will be done gradually, unfortunately also very time consuming. Special thanks to Paul Willmott VP9MU, Stacey Mills W4SM, James Miller G3RUH, Peter Gülzow DB2OS and Karl Meinzer DJ4ZC.
Of course this, almost forensic, work is also connected with the hope that the community might find an interest in IPS after all and that the development will be driven further by a larger group.
IPS – the book!
Already in 1978 Karl Meinzer, DJ4ZC published the first version of IPS – High Level Programming of Small Systems. In 1997 then appeared the 2nd edition distributed by James Miller G3RUH, and a 3rd edition in 2016, which is also electronically available as a PDF.
A 4th edition has now been published in 2019 by Prof. Dr. Karl Meinzer (Author) and Juergen Pintaske (Editor). In response, Mr. Pintaske wrote: “As we prepared, it became apparent how much work has gone into this project IPS – and is little known.”
The printed version of the book IPS – a Forth-like Language for Space: HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS IN SPACE (english) is now available on Amazon.