Skip to content

Flight Computers and Real-Time Operating Systems

Every planetary surface vehicle flown by NASA since Mars Pathfinder has run its flight software as a set of preemptive prioritized tasks under Wind River VxWorks on a radiation-hardened PowerPC or POWER derivative. The operating system supplies task scheduling, timers, message queues, semaphores, and a DOS file system library. What it costs is a scheduling model whose worst cases are hard to bound by test, and a set of commercial libraries whose internal behavior the flight team does not own. Both costs have caused loss of vehicle control in flight [8][5].

SojournerSpirit and OpportunityCuriosityPerseverance
Landing year1997200420122021
CPU80C85BAE RAD6000BAE RAD750BAE RAD750 x2 plus Xilinx Virtex5QV FPGA
Clock2 MHz20 MHz133 MHz133 MHz x2, FPGA at 22M disparities/s
RAM0.56 MB128 MB128 + 512 MB128 MB x2 plus 512 MB x2
Non-volatile storage0.17 MB256 MB flash4096 MB flash4096 + 3072 MB flash

Source: [7], Table 1. MER also carried 11 MB of EEPROM, of which the 3 MB supplied with the RAD6000 board has no error detection and correction [3]. Curiosity and Perseverance carry two flight computers, only one prime at a time, with dual sets of avionics, sensors, heaters and telecommunications paths [6]. Perseverance’s second RAD750 board is the Vision Compute Element, which hosts the Virtex-5 FPGA that runs stereo correlation and visual odometry image processing, six times as many pixels per step as Curiosity in less time [7].

The two RTOS generations differ in size as well as clock. A MER flight software plus VxWorks 5.3.1 image is 10 MB on the 20 MHz RAD6000, against 21 MB under VxWorks 6.7 on the 133 MHz RAD750, with the same 128 MB of RAM and 32 MB of addressable code RAM and, on MSL, an additional 512 MB of SDRAM of which half is a RAM file system [27]. Hardware is also a source of flight anomalies: Curiosity has failed to mount Rover Compute Element flash three times, on sol 200 and sol 2320 for RCE-A and on sol 2172 for RCE-B, with solder joint cracking from thermal cycling the leading theory [28]. The same flash design is carried on Mars 2020, and the paper projects flight fatigue against a Mars 2020 qualification test of one flight-like sample, so the margin is a projection from a single sample [28]. The Mars 2020 Helicopter Base Station is the opposite choice: a Snapdragon 801 running Linux, a commercial part with no radiation hardening and no ECC RAM, which also hosts the onboard global localization [16][31].

What the operating system supplies, and what the software adds

Section titled “What the operating system supplies, and what the software adds”

MER flight software is 93 modules and about 300,000 source lines of code, primarily ANSI C with targeted assembly and some C++, excluding the operating system [1]. Inheritance and polymorphism were deliberately not exploited: fully exercised in C++ they were judged to cost code size and to introduce non-deterministic behavior. It was written by one team over 35 months from July 2000, inheriting structure, architecture and source from Mars Pathfinder and the Athena rover software and, less directly, from Deep Space 1, Mars Surveyor 98 and Mars Surveyor 01 [1].

VxWorks contributes tasks, time and timers, math libraries, I/O, files, logging, message queues and semaphores. The real-time clock tick that drives the system clock comes from MER-specific hardware rather than from the computer board clock [1].

Above that, the 93 modules map onto 97 tasks, not one to one: sixteen sequence machine tasks share common source, and thirteen fault protection response tasks live in a single module [1]. Curiosity keeps the same shape, one VxWorks task per module communicating by inter-process communication rather than by shared memory under semaphores [6].

There are no rate groups on MER. A task with a rate requirement subscribes to the timer module, which delivers a message at the required interval; the task’s event loop receives that message and performs the work its current state calls for. Time event messages are usually delivered to a higher-priority queue than commands, so periodic work runs before command processing within a task. Several tasks wait on the 8 Hz time event, and task priority alone decides the order in which they run [1]. The cruise attitude control task carries an 8 Hz rate requirement and also processes commands and produces telemetry in the same context [1].

Tasks that have no rate requirement are entirely event driven and never poll; interrupts produce a message that wakes the target task. Priority follows function: sequence engine tasks outrank image processing tasks because command execution is more urgent than imaging, and both are outranked by the task that controls autonomous communication. Every task has at least one message queue, messages are point to point with no broadcast, and the underlying transport is the VxWorks pipe [1].

The imaging chain shows what priority buys in throughput. MER Imaging Services runs three tasks, Imaging Services, Camera Control and Post Processing, with two request queues per priority level, one for cameras on the pointable mast and one for body-mounted cameras [4]. Acquisition takes many seconds, so a request is handed to Post Processing for compression and product generation as soon as its pixels are read, freeing Camera Control to start the next exposure. A body-mounted camera request that arrives while the mast is still slewing is serviced first, which means the order in which images are actually taken cannot be predicted from the order they were commanded.

MER makes at most 75 percent of the 20 MHz RAD6000 available to autonomy software, and telemetry processing can reduce that further [2]. Dynamic allocation is strongly discouraged by the coding standards. Non-system RAM is available in dedicated pools of 4 MB, 9 MB and up to ten further 2 MB blocks, and using those 2 MB blocks reduces the memory left for image processing, so their use is discouraged as well [5]. By convention, applications request memory only during initialization and never return it.

The file systems are partitioned by medium, and there are no disk drives [5]:

File systemMediumSizePurpose
RAM file systemRAM4 MBTemporary storage of uplinked files
Temporary file systemRAM2 MBTemporary data product store
FLASH file systemflash224 MBScience and engineering data products
Primary sequenceEEPROM700 KBSequence storage
Secondary sequenceEEPROM700 KBRedundant sequence storage
Primary downlinkEEPROM50 KBDownlink table storage
Secondary downlinkEEPROM50 KBRedundant downlink table storage

Source: [5], Table 1.

Severe errors are detected either inside an application or by a software health function that continuously checks for unresponsive or suspended tasks [3]. Suspension of a task is treated as a condition that should never occur, and the health monitor responds by forcing a reset of the avionics and re-initialization of the flight software [5]. The system response after initialization turns off science instruments and warm-up heaters, reinforces survival heaters on, and deactivates all sequences, while continuing to execute the scheduled communication windows in autonomous shutdown mode [3].

If a severe error is detected during initialization itself, the reset is delayed to give the ground time to intervene. The interval is 15 minutes for the first severe error, 15 minutes for the second, one hour for the third, then the pattern repeats [5]. Commands can be processed and communication windows can occur during the delayed reset period, and the boot logic loads alternating copies of the flight software on successive attempts [5][3].

Recovery below the software level is hardware. The mission clock lives in an FPGA powered directly from the batteries, so time survives a processor power-off; co-located on it is the alarm clock that tells the Battery Charge Board to power the avionics [3]. If the flight software cannot shut down within 60 seconds of a low battery detection, the Battery Charge Board takes the batteries off the bus regardless. A small set of commands is processed entirely in hardware, setting bits in a register the flight software reads during initialization; one of them is crippled mode, which tells the software not to use the flash file system and to create a RAM file system with the same logical device name instead [5].

Priority inversion, Mars Pathfinder, July 1997. The 1553 bus scheduler task, the highest priority task in the system apart from the VxWorks tExec task, checked each 0.125 s cycle that the data distribution task had completed [8]. The meteorology task, near the bottom of the priority order, called select, which called pipeIoctl, which called selNodeAdd, and was preempted mid-semGive while holding the mutex protecting the select wait list. Medium priority tasks then ran long enough that the distribution task, blocked in pipeWrite on that same mutex, missed its deadline, and the scheduler declared the error and reset the computer [8]. The mutex had been created without the priority inheritance option because Wind River left it out of the default selectLib service for performance. The problem had been seen before landing but could not be reproduced, and was ranked below entry, descent and landing work; it was reproduced in the testbed in under 18 hours once the mission was on the surface, using a trace facility built into the flight software from the outset and left in deliberately, which is the only way the sequence could have been captured [8][9]. The fix set the global selectLib option variable to enable priority inheritance, which changed the behavior of every select semaphore created afterward, not just the one at fault; Wind River assessed the performance impact as minimal and the behavior of select as unchanged given that only one task ever waits on a given file descriptor in that system [8]. The patch was uplinked as a difference against the onboard image and applied by custom onboard software with validation, not typed into the VxWorks shell, although the shell was available.

Memory exhaustion through a file system library, Spirit, sol 18, 21 January 2004. The bundled DOS library builds an interlinked representation of the file system in RAM at mount time and updates it as files change [5]. Deleting a file frees its flash space but never releases the corresponding internal structure, so the memory required is set by the maximum number of files that ever existed in each subdirectory rather than by the number present [5]. Two configuration parameters were wrong: expansion of the library’s 256 KB private area from free system memory was permitted, with no ceiling, and the memory library was configured to suspend a task silently when an allocation could not be satisfied rather than failing the file operation. The first reset came from creating a large number of motion history data products; the second, two hours later, from a high gain antenna encoder calibration that produced more motion history files; the third from the data summary report generated automatically for each communication window. Because the failed allocation happened inside a critical region, the suspended task never released the DOS library semaphore, which blocked the task that reads files for recorded telemetry, the task that pushes telemetry frames into the hardware, and the task that idles the file system during shutdown. The rover therefore transmitted the same transfer frame eleven times, returned no recorded data, and did not sleep. Spirit was reset repeatedly from sol 18 until sol 21, when a hardware crippled mode command let it initialize with an empty RAM file system; the flash was erased in chunks and reformatted on sol 32 and normal science resumed on sol 33 [5].

The consequence for the design is stated plainly by the flight software lead of both missions: know how commercial off-the-shelf code works before flying it, and enforce the design guidelines on it that are enforced on in-house code, in this case the prohibition on allocating system memory after initialization [5][8].

What the redundancy figures inherited from aircraft avionics mean

Section titled “What the redundancy figures inherited from aircraft avionics mean”

The 1e-9 that flight computing quotes as a reliability requirement is not a per-hour rate and not a spacecraft number [11]. It is the probability of system failure over a ten-hour civil transport flight, met in the SIFT design by five-fold replication of critical tasks while five processors remain and degrading to three-fold with four or three, and it is computed from an assumed 2e-4 per hour solid processor fault rate, an assumed 2e-3 per hour transient error rate, a 0.36 s reconfiguration time and no intermittent faults modeled [11]. The report states those rates as assumptions and gives determining them empirically as a job for the test program, so the figure is the output of a model whose inputs were unmeasured, against a mission profile of ten hours and ground repair between flights.

Masking a fault in hardware instead costs a fixed factor. The FTMP architecture the same program built triplicates processors, system memory modules, real-time clocks and system bus lines, and packages them as ten line replaceable units of which nine form three triads and the tenth is a spare [12]. Voting happens bit-serially at every receiver with no software involvement, which is what makes masking transparent to the application, and it holds only while the three members of a triad stay in tight synchronism, so the architecture does not survive being stretched over physically separated units. Its fault model is random hardware failure in an aircraft environment; single event upsets, latchup and total dose are outside it [12].

On Curiosity, the flight software reads the last known state of the power, compute, transponder and UHF hardware from non-volatile memory on waking and compares it against expectation, with seven wake types [37]. A test campaign on the Work Station Test Set ran about 1000 nominal cruise configurations plus about 50 dead-prime power module cases and about 50 fault detection cases, of which about 97 percent cleared with no discrepancy; the other 3 percent were hypothesized, not shown, to be simulator limits, the sweep is explicitly not exhaustive, and a large vector takes days on one workstation [37].

The stack has to be replaceable in flight. A full MER flight software load is about 8 MB of uplink product and the February 2005 R9.1 patch was about 2 MB [26]. The procedure uses quiet uplink days with no mobility, arm or significant science, then a build day on which the image is assembled in DRAM, checksummed, saved to non-volatile memory and cold booted after a commanded shutdown and a 15 minute wake [26]. The source gives no uplink durations or defect data, so the science lost to the stand-down is not quantified.

Other real-time operating systems and where they have run

Section titled “Other real-time operating systems and where they have run”

VxWorks is the planetary surface standard, not the only flown choice. RTEMS runs on the SPARC-based Electra baseband processor, a 24 MHz Sparc V7 with 16 Mbit SRAM and 256 Mbit EDAC SDRAM, on which a real-time entry, descent and landing navigation filter was timed on breadboard hardware rather than a flight unit [29]. An independent RTEMS 4.10.2 measurement of context-switch overhead and interrupt latency used an ERC32 starter kit at 12 MHz with an external FPGA timestamping GPIO transitions at 50 MHz; it covers one engineering-sample part, no cache, a non-floating-point build and synthetic task sets, so it does not transfer to other CPUs or clocks [13]. The Ingenuity helicopter used no VxWorks: a Linux navigation computer, a bare metal microcontroller flight computer running a 500 Hz motor and GNC cycle, and the base station on the rover [24]. Background on how these choices were made for earlier computers is in the NASA history of onboard computing from Gemini to Galileo, which describes hardware only and stops in 1988 [22].

Two NASA framework families sit above the RTOS. cFS is described in an official 218 slide course: an operating system abstraction layer, platform support package, cFE services and applications [14]. The framework itself holds the lowest software classification under NPR-7150.2C and supplies artifacts to support a Class B mission, and the course carries no footprint, CPU or latency figures, so cFS cannot be sized for a processor from it [14]. F Prime is a component and port architecture with autocoded C++ and an OS abstraction layer; its first flight was ISS RapidScat and its first CubeSat was ASTERIA [23]. Its Ingenuity use is reported by the flight software lead as roughly 60 percent generated code and 20 percent unique, with the metric undefined and no memory or CPU figures given [24]. F Prime has been developed in the open under Apache 2.0 since 2017 [32]. At the small end, cFS was ported to the Dellingr 6U CubeSat, delivered to the ISS in 2017, on a 40 MHz ARM7 with 2 MB of RAM; the cFE and cFS code executed from flash, CFDP file transfer and Housekeeping were omitted, and the flash file system held at most 64 files [36]. Development of such software is increasingly done against simulation: an event-driven environment runs compiled flight binaries with modeled scheduling, I/O and memory, simulated 20.05 h in 9.53 s on average, and found a dynamic-memory exhaustion defect in distributed-spacecraft GNC code before flight [33]. Neither framework is shown to cost less than the other: the F Prime papers compare by listing properties, not by measurement [23][24].

Software size is the driver behind both. The NASA multi-center complexity study recorded flight software growth by year of launch and issued sixteen findings, with the growth read from a chart whose line counts depend on the counting rule [25]. Onboard autonomy adds to the load: the Mars 2020 Onboard Planner is a flight scheduler with 154 verification items across 32 verification activities reported by its own team [18].

Alternatives to a monolithic per-mission stack

Section titled “Alternatives to a monolithic per-mission stack”

The NASA Goddard core Flight System factors the same job into an operating system abstraction layer over VxWorks, RTEMS, FreeRTOS or Linux, a platform support package, and a core Flight Executive providing software bus, time, event, table and executive services [10]. It reached flight on the Lunar Reconnaissance Orbiter in 2009 and the cFE application programming interface has not changed since. Its cost and reuse figures are on the core Flight System page.

The flown rad-hard processors are single cores, and the proposals to replace them are mostly unflown. A Goddard and JPL position paper argued for commercial multicore parts over FPGAs and set requirements of at least 40 GOPS and 20 GFLOPS, power scaling at core granularity, homogeneous cores, and partitioning strong enough that a crashed core can be reloaded without affecting the rest; nothing was built or measured [15]. The New Millennium ST8 Dependable Multiprocessor combined a PowerPC 750FX and Virtex-II cluster with a rad-hard controller and fault-tolerant middleware, and was reported at TRL4 with a TRL5 testbed, with no radiation test or flight data [17]. A JPL framework for adaptive fault tolerance on many-core parts, using introspection, contains no fault-injection results or overhead figures [20]. A 2025 benchmark gives the flight baseline on the RAD750 plus Virtex-5 vision compute element: 107 ms for a 1024 by 1024 forward FFT, 153 ms for FFT correlation, and 800 ms and 7520 ms for 400 and 2200 variable GFOLD solves [19]. A Snapdragon VOXL2 took 14 and 27 ms on the FFTs and a 250 times speedup on the large solve, but the paper does not state how the next generation timings were obtained [19]. Ground results on a commercial many-core part exist from JPL. Rock detection from the MER autonomous science code took 10 to 15 s per Navcam image on the flight RAD6000, against 2.9 s on one core of a 750 MHz Tilera TILE64 and 0.3 s on 32 cores, a speedup that flattens near 10 fold, with the authors suspecting memory and cache limits [35]. Software fault mitigation for terrain relative navigation on the same part (error correction on inter-core packets, triple modular redundancy and algorithm-based fault tolerance) was exercised with simulated fault injections only, and the correlation stage needs about 40 cores [34]. What has flown is the software mitigation applied to a commercial part: Perseverance runs localization on the Snapdragon 801 by executing the algorithm twice with a co-processor reboot between runs, comparing the results and checksumming inputs and outputs [16].

The JPL-STAR computer contrasted massive redundancy with selective replacement, and its 1967 paper defers all reliability and coverage results to later publications [30]. The standard fault, error and failure vocabulary comes from a dependability taxonomy that contains no measured numbers and nothing specific to spacecraft [21].

Fault protection and RTOS behavior are described, not measured. Curiosity’s engine polls over 1000 monitors at 1 Hz, but no CPU cost, trip counts or response statistics are published [6]. The 1e-9 requirement rests on assumed fault rates [11]. The RTEMS timing result is one part at 12 MHz [13]. The F Prime and cFS comparison, the ST8 and many-core fault tolerance proposals, and the multicore benchmark do not report flight data or a stated measurement setup [14][23][24][15][17][20][19]. No source held here gives VxWorks scheduling margins or CPU utilization for any flown rover.

References

  1. Reeves, G. E. (2005). An Overview of the Mars Exploration Rovers Flight Software . IEEE International Conference on Systems, Man and Cybernetics. Source
    BibTeX
    @inproceedings{reeves2005overview,
      title = {An Overview of the Mars Exploration Rovers Flight Software},
      author = {Reeves, Glenn E.},
      booktitle = {IEEE International Conference on Systems, Man and Cybernetics},
      volume = {1},
      pages = {1-7},
      address = {Waikoloa, Hawaii},
      year = {2005},
      doi = {10.1109/icsmc.2005.1571113},
      abstract = {The Mars exploration rovers (MER) flight software (FSW) is possibly the most complex software implementation to be deployed on another planet. The requirements dictated a software system that addressed four distinct mission phases (cruise, landing, egress, and surface) and the mission demanded a system with significant autonomy. The structure of the MER flight software reflects its object-oriented beginnings and the overall function reflects the requirements of the MER mission and spacecraft. This paper provides an overview of the function and structure of the MER flight software. The MER mission and spacecraft are briefly discussed to provide context for the flight software decomposition and the discussion of the software execution model.}
    }
  2. Maimone, M. W., Leger, P. C. and Biesiadecki, J. J. (2007). Overview of the Mars Exploration Rovers' Autonomous Mobility and Vision Capabilities . IEEE International Conference on Robotics and Automation, Space Robotics Workshop. Source
    BibTeX
    @inproceedings{maimone2007overview,
      title = {Overview of the Mars Exploration Rovers' Autonomous Mobility and Vision Capabilities},
      author = {Maimone, Mark W. and Leger, P. Chris and Biesiadecki, Jeffrey J.},
      booktitle = {IEEE International Conference on Robotics and Automation, Space Robotics Workshop},
      address = {Rome, Italy},
      year = {2007},
      url = {https://www-robotics.jpl.nasa.gov/media/documents/mer_autonomy_icra_2007.pdf}
    }
  3. Neilson, T. (2005). Mars Exploration Rovers Surface Fault Protection . IEEE International Conference on Systems, Man and Cybernetics. Source
    BibTeX
    @inproceedings{neilson2005mars,
      title = {Mars Exploration Rovers Surface Fault Protection},
      author = {Neilson, Tracy},
      booktitle = {IEEE International Conference on Systems, Man and Cybernetics},
      volume = {1},
      pages = {14-19},
      address = {Big Sky, Montana},
      year = {2005},
      doi = {10.1109/icsmc.2005.1571115},
      abstract = {The Mars exploration rovers surface fault protection design was influenced by the need for the solar powered rovers to recharge their batteries during the day to survive the night. The rovers were required to autonomously maintain thermal stability, and initiate reliable communication with orbiting assets or directly to Earth, while maintaining their energy balance. This paper describes the system fault protection design for the surface phase of the mission, including hardware descriptions and software algorithms. Additionally, a few in-flight experiences are described, including the Spirit flash memory anomaly and the Opportunity "stuck-on" heater failure.}
    }
  4. Litwin, T. E. and Maki, J. N. (2005). Imaging Services Flight Software on the Mars Exploration Rovers . IEEE International Conference on Systems, Man and Cybernetics. Source
    BibTeX
    @inproceedings{litwin2005imaging,
      title = {Imaging Services Flight Software on the Mars Exploration Rovers},
      author = {Litwin, Todd E. and Maki, Justin N.},
      booktitle = {IEEE International Conference on Systems, Man and Cybernetics},
      volume = {1},
      pages = {895--900},
      address = {Waikoloa, Hawaii},
      year = {2005},
      doi = {10.1109/icsmc.2005.1571260},
      abstract = {The imaging services module of the Mars Exploration Rovers' on-board flight software is responsible for providing image data to the rest of the system. It acquires images from a suite of cameras, performs on-board image processing, labels the results with metadata, and delivers the final products to a diverse set of consumers, both on board and on the ground. The demands for flexibility and speed led to a design involving multiple tasks and a large set of parameters controlling the acquisition of the images, the on-board processing, and the method of product delivery.}
    }
  5. Reeves, G. E. and Neilson, T. A. (2005). The Mars Rover Spirit FLASH Anomaly . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{reeves2005mars,
      title = {The Mars Rover Spirit FLASH Anomaly},
      author = {Reeves, Glenn E. and Neilson, Tracy A.},
      booktitle = {IEEE Aerospace Conference},
      pages = {4186-4199},
      address = {Big Sky, Montana},
      year = {2005},
      doi = {10.1109/aero.2005.1559723},
      abstract = {The Mars Exploration Rover "Spirit" suffered a debilitating anomaly that prevented communication with Earth for several anxious days. With the eyes of the world upon us, the anomaly team used each scrap of information, our knowledge of the system, and sheer determination to analyze and fix the problem, then return the vehicle to normal operation. This paper will discuss the Spirit FLASH anomaly, including the drama of the investigation, the root cause and the lessons learned from the experience}
    }
  6. Benowitz, E. (2015). The Curiosity Mars Rover's Fault Protection Engine . IEEE International Conference on Space Mission Challenges for Information Technology. Source
    BibTeX
    @inproceedings{benowitz2015curiosity,
      title = {The Curiosity Mars Rover's Fault Protection Engine},
      author = {Benowitz, Ed},
      booktitle = {IEEE International Conference on Space Mission Challenges for Information Technology},
      volume = {111},
      pages = {62-66},
      address = {Big Sky, Montana},
      year = {2015},
      doi = {10.1109/smc-it.2014.16},
      abstract = {The Curiosity Rover, currently operating on Mars, contains flight software onboard to autonomously handle aspects of system fault protection. Over 1000 monitors and 39 responses are present in the flight software. Orchestrating these behaviorsis the flight software's fault protection engine. In this paper, we discuss the engine's design, responsibilities, and present some lessons learned for future missions.}
    }
  7. Rankin, A., Del Sesto, T., Hwang, P., Justice, H., Maimone, M., Verma, V. and Graser, E. (2023). Perseverance Rapid Traverse Campaign . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{rankin2023perseverance,
      title = {Perseverance Rapid Traverse Campaign},
      author = {Rankin, Arturo and Del Sesto, Tyler and Hwang, Pauline and Justice, Heather and Maimone, Mark and Verma, Vandi and Graser, Evan},
      booktitle = {IEEE Aerospace Conference},
      pages = {1-16},
      address = {Big Sky, Montana},
      year = {2023},
      doi = {10.1109/aero55745.2023.10115835},
      abstract = {Over the first 13 months of the Mars 2020 mission, the Perseverance rover traversed nearly 5 km along the Jezero Crater floor. Near the end of that period, the Science team was anxious to relocate to the ancient Delta region near the crater rim, over 5 km away. A Rapid Traverse Campaign was planned that would prioritize use of Perseverance's autonomous navigation software to drive at an unprecedented high pace and minimize science activities. The Rapid Traverse Campaign started in March 2022 and lasted 31 Martian days. During the campaign, Perseverance drove over 5 km in 24 drives, during which its autonomy software planned 94.8% of its overall driving, enabling it to set several new planetary rover driving records. Perseverance exceeded the longest daily drive distance record achieved by a previous planetary rover (219 meters) 11 times and set new records for the longest multi-sol drive distance in a single plan (528.7 meters) and the longest continuation drive (699.9 meters) by operating without human drive path input during 3 sols of driving. This paper details the planning and execution of the Rapid Traverse Campaign.}
    }
  8. Reeves, G. E. (1997). What really happened on Mars? Authoritative Account. cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_long_versio...
    BibTeX
    @misc{reeves1997what,
      title = {What really happened on Mars? Authoritative Account},
      author = {Reeves, Glenn E.},
      organization = {Jet Propulsion Laboratory},
      year = {1997},
      url = {https://www.cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_long_version.html}
    }
  9. Jones, M. B. (1997). What really happened on Mars?. cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_short_versi...
    BibTeX
    @misc{jones1997what,
      title = {What really happened on Mars?},
      author = {Jones, Michael B.},
      organization = {Microsoft Research},
      year = {1997},
      url = {https://www.cs.unc.edu/~anderson/teach/comp790/papers/mars_pathfinder_short_version.html}
    }
  10. McComas, D., Wilmot, J. and Cudmore, A. (2016). The Core Flight System (cFS) Community: Providing Low Cost Solutions for Small Spacecraft . Annual AIAA/USU Conference on Small Satellites. Source
    BibTeX
    @inproceedings{mccomas2016core,
      title = {The Core Flight System (cFS) Community: Providing Low Cost Solutions for Small Spacecraft},
      author = {McComas, David and Wilmot, Jonathan and Cudmore, Alan},
      booktitle = {Annual AIAA/USU Conference on Small Satellites},
      year = {2016},
      url = {https://ntrs.nasa.gov/citations/20160010300},
      abstract = {In February 2015 the NASA Goddard Space Flight Center (GSFC) completed the open source release of the entire Core Flight Software (cFS) suite. After the open source release a multi-NASA center Configuration Control Board (CCB) was established that has managed multiple cFS product releases. The cFS was developed and is being maintained in compliance with the NASA Class B software development process requirements and the open source release includes all Class B artifacts. The cFS is currently running on three operational science spacecraft and is being used on multiple spacecraft and instrument development efforts. While the cFS itself is a viable flight software (FSW) solution, we have discovered that the cFS community is a continuous source of innovation and growth that provides products and tools that serve the entire FSW lifecycle and future mission needs. This paper summarizes the current state of the cFS community, the key FSW technologies being pursued, the development/verification tools and opportunities for the small satellite community to become engaged. The cFS is a proven high quality and cost-effective solution for small satellites with constrained budgets.}
    }
  11. Goldberg, J., Green, M. W., Kautz, W. H., Levitt, K. N., Melliar-Smith, P. M., Schwartz, R. L. and Weinstock, C. B. (1984). Development and Analysis of the Software Implemented Fault-Tolerance (SIFT) Computer . SRI International for NASA Langley Research Center, NASA CR-172146. Source
    BibTeX
    @techreport{goldberg1984development,
      title = {Development and Analysis of the Software Implemented Fault-Tolerance (SIFT) Computer},
      author = {Goldberg, Jack and Green, Milton W. and Kautz, William H. and Levitt, Karl N. and Melliar-Smith, P. Michael and Schwartz, Richard L. and Weinstock, Charles B.},
      number = {NASA CR-172146},
      institution = {SRI International for NASA Langley Research Center},
      year = {1984},
      url = {https://ntrs.nasa.gov/citations/19840010885},
      abstract = {SIFT (Software Implemented Fault Tolerance) is an experimental, fault-tolerant computer system designed to meet the extreme reliability requirements for safety-critical functions in advanced aircraft. Errors are masked by performing a majority voting operation over the results of identical computations, and faulty processors are removed from service by reassigning computations to the nonfaulty processors. This scheme has been implemented in a special architecture using a set of standard Bendix BDX930 processors, augmented by a special asynchronous-broadcast communication interface that provides direct, processor to processor communication among all processors. Fault isolation is accomplished in hardware; all other fault-tolerance functions, together with scheduling and synchronization are implemented exclusively by executive system software. The system reliability is predicted by a Markov model. Mathematical consistency of the system software with respect to the reliability model has been partially verified, using recently developed tools for machine-aided proof of program correctness.}
    }
  12. Smith, T. B. I. and Lala, J. H. (1983). Development and Evaluation of a Fault-Tolerant Multiprocessor (FTMP) Computer. Volume I: FTMP Principles of Operation . Charles Stark Draper Laboratory for NASA Langley Research Center, NASA CR-166071. Source
    BibTeX
    @techreport{smith1983development,
      title = {Development and Evaluation of a Fault-Tolerant Multiprocessor (FTMP) Computer. Volume I: FTMP Principles of Operation},
      author = {Smith, T. Basil, III and Lala, Jaynarayan H.},
      number = {NASA CR-166071},
      institution = {Charles Stark Draper Laboratory for NASA Langley Research Center},
      year = {1983},
      url = {https://ntrs.nasa.gov/citations/19850022393},
      abstract = {The basic organization of the fault tolerant multiprocessor, (FTMP) is that of a general purpose homogeneous multiprocessor. Three processors operate on a shared system (memory and I/O) bus. Replication and tight synchronization of all elements and hardware voting is employed to detect and correct any single fault. Reconfiguration is then employed to repair a fault. Multiple faults may be tolerated as a sequence of single faults with repair between fault occurrences.}
    }
  13. Nicodemos, F., Saotome, O. and Lima, G. (2013). RTEMS Core Analysis for Space Applications . III Brazilian Symposium on Computing Systems Engineering. Source
    BibTeX
    @inproceedings{nicodemos2013rtems,
      title = {RTEMS Core Analysis for Space Applications},
      author = {Nicodemos, Fernando and Saotome, Osamu and Lima, George},
      booktitle = {III Brazilian Symposium on Computing Systems Engineering},
      volume = {18},
      pages = {125-130},
      year = {2013},
      doi = {10.1109/sbesc.2013.22},
      abstract = {Overheads due to context switching and external interrupt management are core characteristics for Real-Time Operating Systems (RTOS) since they play a central role in their performance and timeliness. In this paper we evaluate two core characteristics for the Real-Time Executive for Multiprocessor Systems (RTEMS), an operating system used for supporting space applications. Our assessment makes use of an external non-intrusive measurement tool based on a Field-Programmable Gate Array (FPGA). Measurement data are then transferred to an external computer and analyzed off-line. Experiments are carried out on a device that complies with the Brazilian space program recommendation.}
    }
  14. NASA. (2020). Core Flight System (cFS) Training . NASA, NASA/TM-20205000691 Rev 1. Source
    BibTeX
    @techreport{nasa2020core,
      title = {Core Flight System (cFS) Training},
      author = {{NASA}},
      number = {NASA/TM-20205000691 Rev 1},
      institution = {NASA},
      year = {2020},
      url = {https://ntrs.nasa.gov/citations/20205011588}
    }
  15. Powell, W. A., Johnson, M. A., Wilmot, J., Some, R., Gostelow, K. P., Reeves, G. and Doyle, R. J. (2011). Enabling future robotic missions with multicore processors . Infotech@Aerospace. Source
    BibTeX
    @inproceedings{powell2011enabling,
      title = {Enabling future robotic missions with multicore processors},
      author = {Powell, Wesley A. and Johnson, Michael A. and Wilmot, Jonathan and Some, Raphael and Gostelow, Kim P. and Reeves, Glenn and Doyle, Richard J.},
      booktitle = {Infotech@Aerospace},
      publisher = {American Institute of Aeronautics and Astronautics},
      year = {2011},
      doi = {10.2514/6.2011-1447}
    }
  16. Nash, J., Verma, V., Graser, E., Wang, H., Kubiak, G., Maimone, M., Myint, S., Biesiadecki, J. and Romano, P. (2026). A Software-Based Approach to Radiation Mitigation for Planetary Mission . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{nash2026software,
      title = {A Software-Based Approach to Radiation Mitigation for Planetary Mission},
      author = {Nash, Jeremy and Verma, Vandi and Graser, Evan and Wang, Haoda and Kubiak, Gerik and Maimone, Mark and Myint, Steven and Biesiadecki, Jeffrey and Romano, Philip},
      booktitle = {IEEE Aerospace Conference},
      publisher = {JPL Open Repository},
      year = {2026},
      doi = {10.48577/jpl.okks5v},
      abstract = {The Perseverance Mars rover needs to drive long distances between regions of scientific interest to collect a diverse set of samples. Position knowledge is needed for navigating to the region of interest. Planetary mobile robots accumulate position uncertainty as they move. Globally localizing the robot to an orbital map of Mars removes this uncertainty. Previously this was performed manually on the ground by humans for mobile surface and aerial robots. This can be accurate but requires communication between planets. This takes significant time and the need for it limits how far Perseverance can autonomously navigate without ground-in-the-loop.The Perseverance Mars rover is in the process of deploying a new onboard global localization capability that has the potential for significantly improving long-distance autonomous navigation. It allows the rover to precisely determine its position by comparing panoramic images from its navigation cameras with high-resolution orbital maps. This paper provides an outline of the development and successful deployment of onboard global localization system on the Perseverance Mars rover and the challenges encountered. Leveraging a fast, commercial off-the-shelf (COTS) Snapdragon 801 processor from the Ingenuity Helicopter Base Station, the system performs complex image-processing tasks to accurately determine the rover's position relative to orbital maps. This approach overcomes the limitations of the rover's slower, radiation-hardened processor, and is a paradigm shift in planetary robotics.}
    }
  17. Ramos, J., Samson, J. R., Troxel, I., Subramaniyan, R., Jacobs, A., Greco, J., Cieslewski, G., Curreri, J., Fischer, M., Grobelny, E., George, A., Aggarwal, V., Patel, M. and Some, R. (2006). High performance, dependable multiprocessor . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{ramos2006high,
      title = {High performance, dependable multiprocessor},
      author = {Ramos, Jeremy and Samson, John R. and Troxel, Ian and Subramaniyan, Rajagopal and Jacobs, Adam and Greco, James and Cieslewski, Grzegorz and Curreri, John and Fischer, Michael and Grobelny, Eric and George, Alan and Aggarwal, Vikas and Patel, Minesh and Some, Raphael},
      booktitle = {IEEE Aerospace Conference},
      pages = {1-13},
      year = {2006},
      doi = {10.1109/aero.2006.1655959},
      abstract = {With the ever-increasing demand for higher bandwidth and processing capacity of today's space exploration, space science, and defense missions, the ability to efficiently apply commercial-off-the-shelf (COTS) processors for on-board computing is now a critical need. In response to this need, NASA's new millennium program office has commissioned the development of Dependable Multiprocessor (DM) technology for use in payload and robotic missions. The Dependable Multiprocessor technology is a COTS-based, power-efficient, high-performance, highly dependable, fault-tolerant cluster computer. To date, Honeywell has successfully demonstrated a TRL4 prototype of the Dependable Multiprocessor (Ramos et al., 2005), and is now working on the development of a TRL5 prototype. For the present effort Honeywell has teamed up with the University of Florida via its high-performance computing and simulation (HCS) research laboratory, and together the team has demonstrated major elements of the Dependable Multiprocessor TRL5 system. This paper provides a detailed description of the basic Dependable Multiprocessor technology, and the TRL5 technology prototype currently under development}
    }
  18. Parjan, S. (2024). Trusted Autonomy on Mars: A Case study of the Mars 2020 Onboard Planner . Root. doi.org/10.48577/jpl.wj4yfk
    BibTeX
    @misc{parjan2024trusted,
      title = {Trusted Autonomy on Mars: A Case study of the Mars 2020 Onboard Planner},
      author = {Parjan, Shreya},
      journal = {Root},
      year = {2024},
      doi = {10.48577/jpl.wj4yfk},
      abstract = {No abstract available.}
    }
  19. Yun, K. (2025). Enhancing Fault-Tolerant Space Computing: Guidance Navigation and Control (GNC) and Landing Vision System (LVS) Implementations on Next-Gen Multi-Core Processors . IEEE SMC-IT/SCC. Source
    BibTeX
    @inproceedings{yun2025enhancing,
      title = {Enhancing Fault-Tolerant Space Computing: Guidance Navigation and Control (GNC) and Landing Vision System (LVS) Implementations on Next-Gen Multi-Core Processors},
      author = {Yun, Kyongsik},
      booktitle = {IEEE SMC-IT/SCC},
      publisher = {JPL Open Repository},
      year = {2025},
      doi = {10.48577/jpl.kylgng},
      abstract = {Future planetary exploration missions demand high-performance, fault-tolerant computing to enable autonomous Guidance, Navigation, and Control (GNC) and Lander Vision System (LVS) operations during Entry, Descent, and Landing (EDL). This paper evaluates the deployment of GNC and LVS algorithms on next-generation multi-core processors—HPSC, Snapdragon VOXL2, and AMD Xilinx Versal—demonstrating up to 15× speedup for LVS image processing and over 250× speedup for Guidance for Fuel-Optimal Large Divert (GFOLD) trajectory optimization compared to legacy spaceflight hardware. To ensure computational reliability, we present ARBITER (Asynchronous Redundant Behavior Inspection for Trusted Execution and Recovery), a Multi-Core Voting (MV) mechanism that performs real-time fault detection and correction across redundant cores. ARBITER is validated in both static optimization tasks (GFOLD) and dynamic closed-loop control (Attitude Control System). A fault injection study further identifies the gradient computation stage in GFOLD as the most sensitive to bit-level errors, motivating selective protection strategies and vector-based output arbitration. This work establishes a scalable and energy-efficient architecture for future missions, including Mars Sample Return, Enceladus Orbilander, and Ceres Sample Return, where onboard autonomy, low latency, and fault resilience are critical.}
    }
  20. James, M., Springer, P. and Zima, H. (2010). Adaptive fault tolerance for many-core based space-borne computing . Euro-Par - Parallel Processing. doi.org/10.1007/978-3-642-15291-7_25
    BibTeX
    @misc{james2010adaptive,
      title = {Adaptive fault tolerance for many-core based space-borne computing},
      author = {James, Mark and Springer, Paul and Zima, Hans},
      booktitle = {Euro-Par - Parallel Processing},
      pages = {260-274},
      year = {2010},
      doi = {10.1007/978-3-642-15291-7_25}
    }
  21. Avizienis, A., Laprie, J.-C., Randell, B. and Landwehr, C. (2004). Basic Concepts and Taxonomy of Dependable and Secure Computing . IEEE Transactions on Dependable and Secure Computing, 1. Source
    BibTeX
    @article{avizienis2004basic,
      title = {Basic Concepts and Taxonomy of Dependable and Secure Computing},
      author = {Avizienis, Algirdas and Laprie, Jean-Claude and Randell, Brian and Landwehr, Carl},
      journal = {IEEE Transactions on Dependable and Secure Computing},
      volume = {1},
      number = {1},
      pages = {11--33},
      year = {2004},
      doi = {10.1109/tdsc.2004.2},
      abstract = {This paper gives the main definitions relating to dependability, a generic concept including a special case of such attributes as reliability, availability, safety, integrity, maintainability, etc. Security brings in concerns for confidentiality, in addition to availability and integrity. Basic definitions are given first. They are then commented upon, and supplemented by additional definitions, which address the threats to dependability and security (faults, errors, failures), their attributes, and the means for their achievement (fault prevention, fault tolerance, fault removal, fault forecasting). The aim is to explicate a set of general concepts, of relevance across a wide range of situations and, therefore, helping communication and cooperation among a number of scientific and technical communities, including ones that are concentrating on particular types of system, of system failures, or of causes of system failures.}
    }
  22. Tomayko, J. E. (1988). Computers in Spaceflight: The NASA Experience . NASA, NASA-CR-182505. Source
    BibTeX
    @techreport{tomayko1988computers,
      title = {Computers in Spaceflight: The {NASA} Experience},
      author = {Tomayko, James E.},
      number = {NASA-CR-182505},
      institution = {NASA},
      year = {1988},
      url = {https://ntrs.nasa.gov/citations/19880069935},
      abstract = {This book examines the computer systems used in actual spaceflight or in close support of it. Computer systems used in administration and in aeronautical and other research not directly related to spaceflight are ignored. Each chapter deals with either a specific program, such as Gemini or Apollo onboard computers, or a closely related set of systems, such as launch processing or mission control.. A glossary of computer terms is included.}
    }
  23. Bocchino, R. L. J., Canham, T. K., Watney, G. J., Reder, L. J. and Levison, J. W. (2018). F Prime: An Open-Source Framework for Small-Scale Flight Software Systems . JPL Open Repository. Source
    BibTeX
    @inproceedings{bocchino2018prime,
      title = {F Prime: An Open-Source Framework for Small-Scale Flight Software Systems},
      author = {Bocchino, Robert L. Jr. and Canham, Timothy K. and Watney, Garth J. and Reder, Leonard J. and Levison, Jeffrey W.},
      booktitle = {JPL Open Repository},
      year = {2018},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/48425}
    }
  24. Canham, T. K. (2022). The Mars Ingenuity Helicopter - A Victory for Open-Source Software . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{canham2022mars,
      title = {The Mars Ingenuity Helicopter - A Victory for Open-Source Software},
      author = {Canham, Timothy K},
      booktitle = {IEEE Aerospace Conference},
      pages = {01-11},
      publisher = {IEEE},
      year = {2022},
      doi = {10.1109/aero53065.2022.9843438}
    }
  25. Dvorak, D. (2009). NASA Study on Flight Software Complexity . AIAA Infotech@Aerospace Conference. Source
    BibTeX
    @inproceedings{dvorak2009nasa,
      title = {NASA Study on Flight Software Complexity},
      author = {Dvorak, Daniel},
      booktitle = {AIAA Infotech@Aerospace Conference},
      year = {2009},
      doi = {10.2514/6.2009-1882},
      abstract = {In 2007 the NASA Office of Chief Engineer commissioned a multi-center study to bring forth technical and managerial strategies to address risks from growth in size and complexity of flight software in NASA’s space missions. The motivation for the study grew from problems attributed to flight software in a variety of missions—in both pre-launch and post-launch activities—and concerns that such problems were growing with the expanding role of flight software. The study was tasked to examine the growth in flight software size and complexity, recommend ways to reduce and better manage complexity, and identify methods of testing complex logic. This report examines complexity throughout the engineering lifecycle—from requirements definition through design, development, verification, and operations—and presents sixteen findings and associated recommendations.}
    }
  26. Greco, M. E. and Snyder, J. F. (2005). Operational Modification of the Mars Exploration Rovers Flight Software . IEEE International Conference on Systems, Man and Cybernetics. Source
    BibTeX
    @inproceedings{greco2005operational,
      title = {Operational Modification of the Mars Exploration Rovers Flight Software},
      author = {Greco, Martin E. and Snyder, Joseph F.},
      booktitle = {IEEE International Conference on Systems, Man and Cybernetics},
      address = {Waikoloa, Hawaii},
      year = {2005},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/37496}
    }
  27. Nesnas, I. A. (2017). Experiences from planetary autonomy software from research to planetary flight robots. dataverse.jpl.nasa.gov/dataset.xhtml
    BibTeX
    @misc{nesnas2017experiences,
      title = {Experiences from planetary autonomy software from research to planetary flight robots},
      author = {Nesnas, Issa A.D.},
      howpublished = {Presentation at the JPL Open Repository},
      year = {2017},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/48929}
    }
  28. Berger, L. N. and Bell, C. (2020). Comparing Cumulative Flight Thermal Fatigue to Ground Test Results for Memory Components on the Mars Curiosity Rover . AIAA Science and Technology Forum. Source
    BibTeX
    @inproceedings{berger2020comparing,
      title = {Comparing Cumulative Flight Thermal Fatigue to Ground Test Results for Memory Components on the Mars Curiosity Rover},
      author = {Berger, Lindsey N and Bell, Charles},
      booktitle = {AIAA Science and Technology Forum},
      publisher = {JPL Open Repository},
      year = {2020},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/52311}
    }
  29. Burkhart, P. D., Ely, T., Duncan, C., Lightsey, G., Campbell, T. and Mogensen, A. (2006). Real-time EDL navigation performance using spacecraft to spacecraft radiometric data . AIAA Guidance, Navigation, and Control Conference. Source
    BibTeX
    @inproceedings{burkhart2006real,
      title = {Real-time EDL navigation performance using spacecraft to spacecraft radiometric data},
      author = {Burkhart, P. Daniel and Ely, Todd and Duncan, Courtney and Lightsey, Glenn and Campbell, Todd and Mogensen, Andy},
      booktitle = {AIAA Guidance, Navigation, and Control Conference},
      publisher = {American Institute of Aeronautics and Astronautics},
      year = {2006},
      doi = {10.2514/6.2006-6566},
      abstract = {A two-year task sponsored by NASA's Mars Technology Program's Advanced Entry, Descent and Landing (EDL) work area includes investigation of improvements to EDL navigation by processing spacecraft-to-spacecraft radiometric data. Spacecraft-to-spacecraft navigation will take advantage of the UHF link between two spacecraft (i.e. to an orbiter from an approaching lander for EDL telemetry relay) to build radiometric data, specifically the velocity between the two spacecraft along the radio beam, that are processed to determine position and velocity in real time. The improved onboard state knowledge provided by spacecraft-to-spacecraft navigation will improve the performance of entry guidance by providing a more accurate state estimate and ultimately reduce the landed position error. A previous paper documented the progress of the first year of this task, including the spacecraft definitions, selection and documentation of the required algorithms and analysis results used to define the algorithm set. The final year of this task is reported here. Topics include modifications to the previously selected algorithm set for implementation, and performance of the implemented algorithms in a stand-alone filter, on an emulator of the target processor and finally on a breadboard processing unit.}
    }
  30. Avizienis, A. (1967). Design of Fault-Tolerant Computers . November 14-16, Fall Joint Computer Conference. Source
    BibTeX
    @inproceedings{avizienis1967design,
      title = {Design of Fault-Tolerant Computers},
      author = {Avizienis, Algirdas},
      booktitle = {November 14-16, Fall Joint Computer Conference},
      pages = {733},
      year = {1967},
      doi = {10.1145/1465611.1465708},
      abstract = {Reliable performance of hardware has been a requirement for digital systems since the construction of the first digital computer. Improper functioning of the logic circuits in a digital system is manifested by logic faults, which are defined for this paper as "permanent or transient deviations of logic variables from the values specified in design."}
    }
  31. Verma, V. (2024). The first extraterrestrial rover and helicopter mission . Root. doi.org/10.48577/jpl.crso3u
    BibTeX
    @misc{verma2024first,
      title = {The first extraterrestrial rover and helicopter mission},
      author = {Verma, Vandi},
      journal = {Root},
      year = {2024},
      doi = {10.48577/jpl.crso3u},
      abstract = {No abstract available.}
    }
  32. Starch, M. (2021). Leveraging Open-Source Development to Enhance the F Prime Flight Software Framework. dataverse.jpl.nasa.gov/dataset.xhtml
    BibTeX
    @misc{starch2021leveraging,
      title = {Leveraging Open-Source Development to Enhance the F Prime Flight Software Framework},
      author = {Starch, Michael},
      howpublished = {Presentation at the JPL Open Repository},
      year = {2021},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/54399}
    }
  33. Bell, T. and D'Amico, S. (2025). Event-Driven Simulation for Rapid Iterative Development of Distributed Space Flight Software . IEEE Aerospace Conference. Source
    BibTeX
    @inproceedings{bell2025event,
      title = {Event-Driven Simulation for Rapid Iterative Development of Distributed Space Flight Software},
      author = {Bell, Toby and D'Amico, Simone},
      booktitle = {IEEE Aerospace Conference},
      pages = {1-19},
      year = {2025},
      doi = {10.1109/aero63441.2025.11068699},
      abstract = {This paper presents the design, development, and application of a novel space simulation environment for rapidly prototyping and testing flight software for distributed space systems. The environment combines the flexibility, determinism, and observability of software-only simulation with a level of fidelity and depth normally attained by real-time hardware-in-the-loop testing. Ultimately, this work enables an engineering process in which flight software is continuously improved and delivered in its final, flight-ready form, and which reduces the cost of design changes and software revisions with respect to a traditional linear development process. Three key methods not found in existing tools enable this environment's novel capabilities: first, a hybrid event-driven simulation architecture that combines continuous-time and discrete-event simulation paradigms; second, a design for lightweight application-layer software virtualization that allows executing compiled flight software binaries while modeling process scheduling, input/ output, and memory use; and third, high-fidelity models for the multi-spacecraft space environment, including for wireless communication, relative sensing such as differential GPS and cameras, and flight computer system health metrics like heap exhaustion and fragmentation. The simulation environment's capabilities are applied to the iterative development and testing of two flight-ready software packages: the guidance, navigation, and control software for the VISORS mission, and the Stanford Space Rendezvous Laboratory's software kit for rendezvous and proximity operations. Results from 33 months of flight software development demonstrate the use of this simulation environment to rapidly and reliably identify and resolve defects, characterize navigation and control performance, and scrutinize implementation details like memory allocation and inter-spacecraft network protocols.}
    }
  34. Alexander, J. W., Clement, B. J., Gostelow, K. P. and Lai, J. Y. (2012). Fault mitigation schemes for future spaceflight multicore processors . Infotech@Aerospace. Source
    BibTeX
    @inproceedings{alexander2012fault,
      title = {Fault mitigation schemes for future spaceflight multicore processors},
      author = {Alexander, James W and Clement, Bradley J. and Gostelow, Kim P. and Lai, John Y.},
      booktitle = {Infotech@Aerospace},
      publisher = {American Institute of Aeronautics and Astronautics},
      year = {2012},
      doi = {10.2514/6.2012-2509},
      abstract = {Future planetary exploration missions demand significant advances in on-board computing capabilities over current avionics architectures based on a single-core processing element. The state-of-the-art multi-core processor provides much promise in meeting such challenges while introducing new fault tolerance problems when applied to space missions. Software-based schemes are being presented in this paper that can achieve system-level fault mitigation beyond that provided by radiation-hard-by-design (RHBD). For mission and time critical applications such as the Terrain Relative Navigation (TRN) for planetary or small body navigation, and landing, a range of fault tolerance methods can be adapted by the application. The software methods being investigated include Error Correction Code (ECC) for data packet routing between cores, virtual network routing, Triple Modular Redundancy (TMR), and Algorithm-Based Fault Tolerance (ABFT). A robust fault tolerance framework that provides fail-operational behavior under hard real-time constraints and graceful degradation will be demonstrated using TRN executing on a commercial Tilera(R) processor with simulated fault injections.}
    }
  35. Bornstein, B., Estlin, T., Clement, B. and Springer, P. (2011). Using a multicore processor for rover autonomous science . Aerospace Conference. Source
    BibTeX
    @inproceedings{bornstein2011multicore,
      title = {Using a multicore processor for rover autonomous science},
      author = {Bornstein, Benjamin and Estlin, Tara and Clement, Bradley and Springer, Paul},
      booktitle = {Aerospace Conference},
      pages = {1-9},
      publisher = {IEEE},
      year = {2011},
      doi = {10.1109/aero.2011.5747454}
    }
  36. Cudmore, A. (2017). Porting the Core Flight System to the Dellingr CubeSat. ntrs.nasa.gov/citations/20170011566
    BibTeX
    @misc{cudmore2017porting,
      title = {Porting the {Core Flight System} to the {Dellingr} {CubeSat}},
      author = {Cudmore, Alan},
      howpublished = {Presentation at the Flight Software Workshop},
      year = {2017},
      url = {https://ntrs.nasa.gov/citations/20170011566},
      abstract = {Dellingr is a 6U Cubesat developed by NASA Goddard Space Flight Center. It was delivered to the International Space Station in August 2017, and is scheduled to be deployed in November 2017. Compared to a typical NASA satellite, the Dellingr Cubesat had an extremely low budget and short schedule. Although the Dellingr Cubesat has minimal hardware resources, the cFS was ultimately chosen for the flight software. Using the cFS on the Dellingr Cubesat presented a few challenges, but also offered opportunities to help speed up development and verify the ACS flight software. This presentation will cover the lessons learned in porting the cFS to the Dellingr Cubesat, including working with the limited hardware resources, porting the cFS to FreeRTOS, and overcoming limitations related to data storage and file transfer. This presentation will also cover how hardware abstraction was used to run the flight software on multiple platforms and interface with the 42 dynamic simulator.}
    }
  37. Whitehill, R. (2011). Wake cycle robustness of the Mars Science Laboratory Flight Software . SPIE Defense & Commercial Sensing. Source
    BibTeX
    @inproceedings{whitehill2011wake,
      title = {Wake cycle robustness of the Mars Science Laboratory Flight Software},
      author = {Whitehill, Robert},
      booktitle = {SPIE Defense & Commercial Sensing},
      publisher = {JPL Open Repository},
      year = {2011},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/43715}
    }