Forth in Space!
Draft! |
This page is a draft and may be incomplete, incorrect, or just a
stub or outline. I've decided to allow myself to put draft pages on
my website as an experiment. I'm hoping they will:
|

(Image of "Astronaut Chuck" from my giant write-up of Forth)
My starting point for this page is the list compiled and maintained until 2003 by James Rash of NASA Goddard Space Flight Center. That page is no longer online, but here’s a copy on Archive.org’s Wayback Machine: https://web.archive.org/web/20090803021018/http://forth.gsfc.nasa.gov/index.html
TODO: get the specific processors and intstruments to incorporate into the chronological list of craft/systems below.
And also notes I got from several generous people via email. Additional info and/or links welcome and I’m more than happy to give credit to the finder. :-)
Specific chips often used in space applications
Special Forth machines work tirelessly off-planet.
Harris RTX2000, RTX2010
The Harris RTX 2000 (wikipedia.org) series accounts for a good portion of the use of Forth in the space industry. These processors run Forth natively.
The original Harris 2000 was launched in 1988. It is a 16-bit stack-based processor. It is a direct offspring of Chuck Moore’s own Novix processor designs from three years earlier. (Harris licensed the Novix.)
The RTX2000 and RTX2010 are SOS (Silicon on sapphire) chips with a thin layer of silicon grown on sapphire. This method is inherently resistant to radiation. You can read more about SOS (wikipedia.org).
In addition to being radiation hardened, the Harris RTX2010 features:
-
Direct execution of Forth
-
Two hardware stacks, 256 words deep
-
8MHz clock, extremely low latency
Implementors of RTX2010-based space applications include: Baja Technology; Forth, Inc; Ball Aerospace (Yup, the same Ball that makes bottles and cans, although it appears that the license their name and logo to Rubbermaid for the iconic line of Ball mason jars for home canning).
A ton of space systems have used these processors. I’ll note the model number as I figure it out.
Specific Spacecraft and Missions
These are listed in chronological order by launch date.
1962, USAF Defense Meteorological Satellite Program
1970s-1980s, "EOS" Earth Observing System
1979, MAGSAT Magnetic field Satellite
1980, "LONARS" US Navy High precision navigation receiver using Loran-C
1980-1992, "MMS" USAF Multimission Modular Spacecraft (including TOPEX/Poseidon)
1983, AMSAT OSCAR 10, 13, 21
1983, HILAT (predecessor to Polar BEAR)
1984, "SIR-B" Shuttle Imaging Radar
1986, Polar BEAR
1986, The Space Shuttle — Electrophoresis Operations in Space
1989, "SSBUV" Shuttle Solar Backscatter Ultra Violet
1989, Galileo space probe
1990, "HUT" Hopkins Ultraviolet Telescope
1990, "UIT" Ultraviolet Imaging Telescope (STS-35, STS-67)
1990, Pegasus Rocket
1990-1995, "WUPPE" Wisconsin Ultraviolet Photo-Polarimeter Experiment STS-35, STS-67
1991, Orbcomm-X or Datacomm-X
1992, "MSTI" Miniature Seeker Technology Integration
1992, Freja satellite
"Development of a Forth Language Directed Processor Using Very Large Scale Integrated Circuitry", by Susan C. Lee and John R. Hayes, Johns Hopkins APL Technical Digest, Vol. 10, No. 3 (1989)
-
Describes the "SC32" 32-bit CPU. Predecessors were Forth Reduced Instruction Set Computer (FRISC) 1 and FRISC 2.
-
1:
The processor is being designed into ground support equipment for the Ocean Topography Experiment and Navy Radar Altimeter Program altimeters. It is also being used as the flight processor for a magnetometer experiment on Freja, a Swedish satellite.
-
1992, International Microgravity Laboratory (a shuttle mission)
1992, TOPEX/Poseidon
1992, The Space Shuttle — IML-1, Spacelab
1995, "XTE" X-ray Timing Explorer
1996, "MSX" Midcourse Space Experiment
1996, "NEAR" Near Earth Asteroid Rendezvous
"NEAR Spacecraft Flight System Performance", by Andrew G. Santo, Johns Hopkins APL Technical Digest, Vol. 23, No. 1 (2002)
p.2:
Within the spacecraft were 7 processors: 1 in the command and data handling subsystem, 2 in the guidance and control subsystem, and 4 in the payload. With the exception of the processor in the command and data handling system, all the processors had software that could be modified in flight. The flight computer, which contained the main guidance and control software, was programmed in Ada. The attitude interface unit, which was the backup attitude processor, was programmed in C. The rest of the computers used the Forth programming language.
1996, "SSTI" Small Spacecraft Technology Initiative
1997, Cassini–Huygens spacecraft
1997, SeaStar
1997, "ACE" Advanced Composition Explorer (RTX2000)
Star Scanner instrument & control software
TODO: and tons of others, apparently, search the doc
1998, "SWAS" Submillimeter Wave Astronomy Satellite
1999, Chandra X-ray Observatory Formerly "AXAF"
2000, "IMAGE"
The RTX2010 was used for the Extreme Ultraviolet (EUV) instrument controller.
2004, Rosetta
Controller for the Ion and Electron Sensor instrument.
-
I covered this one in my Forth article)_
2003, "SOLSE" Shuttle Ozone Limb Sounder Experiment and "LORE" Limb Ozone Retrieval Experiment
2011, "SBIRS" USAF Space Based Infrared System
2014, SPINSAT
2005, Deep Impact
Controller for the Avionics & Control (AOC) system
2017, "SAGE" (Stratospheric Aerosol and Gas Experiment) III
????, "APEX" USAF
????, A ton of antennas (Iridium, SWAS, etc.)
????, Baikonur Cosmodrome ????
????, NASA and USAF tropospheric research balloons
APL Space Department - Galileo, NEAR, and ACE are all mentioned, possibly others!
"Flight Software in the Space Department: A Look at the Past and a View Toward the Future", Horace Malcom and Harry K. Utterback, Johns Hopkins APL Technical Digest, Vol. 20, No. 4 (1999)
Abbreviated Table 1. Flight software on APL spacecraft
<spacecraft> - <launch> - <processor> - <language>/<lines-of-code>
Magsat ACS - 1979 - RCA-1802 - Forth/1890 Hilat Magnetometer - 1983 - RCA-1802 - Forth/432 Polar BEAR Magnetometer - 1986 - RCA-1802 - Forth/432 NEAR C&DH - 1996 - RTX2010 Forth/13500 NEAR AIU - 1996 - RTX2010 - C and Forth/1300 ACE C&DH - 1997 - RTX2010 - Forth/13500
Abbreviated Table 2. Flight software systems for APL science instruments
<instrument> (<spacecraft>) - <launch> - <processor> - <language>/<lines-of-code> HUT (Astro-1) - 1990/1996 - AMD-2900 - Forth/12000 MFE (Freja) - 1992 - SC32 - Forth/4455 SSUSI ECU (DMSP Block 5D-3) - 1994 - RTX2000 - Forth/4374 SSUSI DPU (DMSP Block 5D-3) - 1994 - RTX2000 - Forth/732 XRGS (NEAR) - 1996 - RTX2010 - Forth/9545 Multispectral Imager (NEAR) - 1996 - RTX2010 - Forth/5926 NIS/Magnetometer (NEAR) - 1996 - RTX2010 - Forth/3019 NLR (NEAR) - 1996 - RTX2010 - Forth/2946 MIMI CPU (Cassini) - 1997 - RTX2010 - Forth/14785 MIMI EPU (Cassini) - 1997 - RTX2010 - Forth/13689 ULEIS (ACE) - 1997 - RTX2010 - Forth/3762 HENA (Image) - 1999 - RTX2010 - Forth/8892 GUVI (TIMED) - 2000 - RTX2010 - Forth/1357
Acronyms (for Table 2):
DMSP - Defense Meteorological Satellite Program ECU - Electronics Control Unit EPU - Event Processing Unit GUVI - Global Ultraviolet Imager HENA - High Energy Neutral Analyzer MIMI - Magnetospheric Imaging Instrument NIS - Near Infrared Spectrometer NLR - NEAR Laser Rangefinder SSUSI - Special Sensor Ultraviolet Imager
General space-related info from an IEEE publication
"Functional Programming on a Stack-Based Embedded Processor", by Andrew J. Harris and John R. Hayes, 2nd IEEE International Conference on Space Mission Challenges for Information Technology (SMC-IT'06) (2006)
-
Describes using a function language that compiles to a Forth-like intermediate language and ultimately a Forth processor. (Harris and Hayes were both at JHU/APL and Hayes was co-author with Lee of the previous paper.)