{"id":4438502,"date":"2019-09-06T23:56:53","date_gmt":"2019-09-06T21:56:53","guid":{"rendered":"https:\/\/amsat-dl.org\/ips-high-level-programming-of-small-systems-for-the-amsat-space-projects\/"},"modified":"2021-01-04T23:58:57","modified_gmt":"2021-01-04T22:58:57","slug":"ips-high-level-programming-of-small-systems-for-the-amsat-space-projects","status":"publish","type":"post","link":"https:\/\/amsat-dl.org\/en\/ips-high-level-programming-of-small-systems-for-the-amsat-space-projects\/","title":{"rendered":"IPS &#8211; High Level Programming of Small Systems for the AMSAT space projects"},"content":{"rendered":"<p>IPS &#8212; Interpreter for Process Structures developed by Prof. Dr. Karl Meinzer, DJ4ZC<\/p>\n<h1>HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS<\/h1>\n<p>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.<\/p>\n<h1>Introduction<\/h1>\n<p>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 (&#8220;Reverse Polish Notation&#8221;) to make parameter passing between modules extremely simple and is designed to be as unconstrained as low-level assembler.<\/p>\n<p>The high-level emulation technique is extremely economical in terms of memory usage &#8211; 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.<\/p>\n<h1>The operating system of the P3 satellites<\/h1>\n<p>An important application of IPS was and is its use as the operating system for AMSAT&#8217;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&#8217;s operating system, let alone one that needs to function in space.<\/p>\n<p>The following AMSAT satellites used IPS on the on-board computer (Integrated Housekeeping Unit):<\/p>\n<ul>\n<li>AMSAT P3-A: (launch failure) in May 1980<\/li>\n<li>AMSAT-OSCAR 10 (P3-B): successful launch on 16 June 1983<\/li>\n<li>AMSAT-OSCAR 13 (P3-C): successful launch on 15 June 1988<\/li>\n<li>AMSAT OSCAR-21 (Radio Sputnik-14): RUDAK-II successfully launched on 29 January 1991<\/li>\n<li>AMSAT-OSCAR 40 (P3-D): successful launch on 16 November 2000<\/li>\n<li>AMSAT P3-E (in progress)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1>The rescue of OSCAR-10 (P3-B)<\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4438417 aligncenter\" src=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_001.jpg\" alt=\"\" width=\"906\" height=\"658\" srcset=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_001.jpg 906w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_001-150x109.jpg 150w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_001-300x218.jpg 300w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_001-768x558.jpg 768w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/p>\n<p>Unfortunately, when <a href=\"https:\/\/amsat-dl.org\/en\/amsat-phase-3-b-oscar-10\/\" target=\"_blank\" rel=\"noopener noreferrer\">OSCAR-10<\/a> 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.<\/p>\n<p>When OSCAR-10&#8217;s 400 bit\/s PSK beacon first automatically reported after launch, the telemetry data was startling:<\/p>\n<ul>\n<li>The solar cells were practically dead and delivered no energy<\/li>\n<li>The battery was increasingly discharged<\/li>\n<li>The solar and earth sensors provided contradictory data<\/li>\n<\/ul>\n<p>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.<\/p>\n<p>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&#8217;t enough, the beacon was also switched off to save power and get some charge into the battery.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4438421 aligncenter\" src=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a.jpg\" alt=\"\" width=\"1536\" height=\"1085\" srcset=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a.jpg 1536w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a-150x106.jpg 150w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a-300x212.jpg 300w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a-768x543.jpg 768w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a-1024x723.jpg 1024w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/P3-B_DJ4ZC_003a-1200x848.jpg 1200w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>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&#8217;s magnetic field and thus tilt the satellite.<\/p>\n<p>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.<\/p>\n<p>The night was short and there was not much time for elaborate tests. But IPS is a very secure operating system.<\/p>\n<p>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.<\/p>\n<p>OSCAR.10 was saved and was available to radio amateurs for many years to come!<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h1>IPS at GitHub<\/h1>\n<p>We created a central <a href=\"https:\/\/github.com\/amsat-dl\/IPS\" target=\"_blank\" rel=\"noopener noreferrer\">IPS repository at GitHub<\/a> 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\u00fclzow DB2OS and Karl Meinzer DJ4ZC.<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h1>IPS &#8211; the book!<\/h1>\n<p>Already in 1978 Karl Meinzer, DJ4ZC published the first version of IPS &#8211; 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 <a href=\"https:\/\/github.com\/amsat-dl\/IPS\/blob\/master\/Documentation\/IPS%20-%20The%20Book.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">electronically available as a PDF<\/a>.<\/p>\n<p>A 4th edition has now been published in 2019 by Prof. Dr. Karl Meinzer (Author) and Juergen Pintaske (Editor). In response, Mr. Pintaske wrote: &#8220;As we prepared, it became apparent how much work has gone into this project IPS &#8211; and is little known.&#8221;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-4438415\" src=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_front.jpg\" alt=\"\" width=\"333\" height=\"500\" srcset=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_front.jpg 333w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_front-100x150.jpg 100w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_front-200x300.jpg 200w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4438416 aligncenter\" src=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_back.jpg\" alt=\"\" width=\"333\" height=\"500\" srcset=\"https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_back.jpg 333w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_back-100x150.jpg 100w, https:\/\/amsat-dl.org\/wp-content\/uploads\/2019\/08\/IPS-Book_2019_Meinzer_back-200x300.jpg 200w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>The printed version of the book <a href=\"https:\/\/www.amazon.com\/IPS-Forth-like-Language-PROGRAMMING-SYSTEMS\/dp\/1096992159\/\" target=\"_blank\" rel=\"noopener noreferrer\">IPS &#8211; a Forth-like Language for Space: HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS IN SPACE (english)<\/a> is now available on Amazon.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>IPS &#8212; Interpreter for Process Structures developed by Prof. Dr. Karl Meinzer, DJ4ZC HIGH LEVEL PROGRAMMING OF SMALL SYSTEMS IPS&hellip;<\/p>\n","protected":false},"author":4,"featured_media":4438419,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[252,250,260,259],"class_list":["post-4438502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-amsat-en","tag-amsat-dl-en","tag-dj4zc-en","tag-ips-en"],"_links":{"self":[{"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/posts\/4438502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/comments?post=4438502"}],"version-history":[{"count":1,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/posts\/4438502\/revisions"}],"predecessor-version":[{"id":4438503,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/posts\/4438502\/revisions\/4438503"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/media\/4438419"}],"wp:attachment":[{"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/media?parent=4438502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/categories?post=4438502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/amsat-dl.org\/en\/wp-json\/wp\/v2\/tags?post=4438502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}