Onboard Software Update
A spacecraft flies with the software it launched with, and every subsequent line of code has to reach it over a link that runs at a few hundred to a few thousand bits per second, with a round trip of minutes to hours and no way to plug in a cable if the write goes wrong. Voyager and Galileo were already being reprogrammed in flight by the 1970s and 1980s, using distributed onboard computers whose word length, memory and instruction sets were built for exactly that kind of update [9]. The practice has not gotten safer with time: Viking 1 was lost when a patch permanently overwrote the code needed to talk to Earth, and the MSL patch checklist still asks a cognizant engineer who has never studied that loss to stop and read about it before continuing. Curiosity alone has taken nine full updates or cold patches and more than 57,000 hot patch installations since 2012 [2][3].
Three mechanisms, one shared design problem
Section titled “Three mechanisms, one shared design problem”| Method | What it changes | Persistence | Uplink volume |
|---|---|---|---|
| Hot patch | RAM only, applied by an install script at boot | Reinstalled on every boot; skipping the script reverts the vehicle | small |
| Cold patch | Modifies a copy of the existing image, result burned back to non-volatile memory | Survives reboot | 2 MB for MER R9.1, February 2005 |
| Full update or load | Entire new image uplinked and burned to non-volatile memory | Survives reboot | about 8 MB on MER, 9.97 MiB in 49 files on MSL |
Sources: [1] for MER, [2] and [3] for MSL. A hot patch is fast to author, review, test and fly, but must be reinstalled at every boot, which is also its safety property: booting without the script gives a clean, unpatched system [2]. A cold patch is more permanent and more dangerous, because memory write commands bypass the built-in checks on data and address validity [3]. Cassini’s AACS team treated that danger as reason enough to avoid full loads almost entirely: a full load resets the prime attitude control flight computer, so all three software loads flown in the first 2.5 years of Cassini’s prime mission were constant-parameter patch loads, with variable parameters changed by memory write commands instead, each verified by reading the memory back three times before and three times after the write [8]. MER and MSL made the opposite trade and accepted full loads because the flight software itself changed, not just its parameters.
Neither mechanism is easy to test on the ground. Hot and cold patches are, by design, not integrated into the flight software monolith, so they cannot be run against the same unit tests as the baseline build, and several are release-specific and do not work in the development sandboxes. Multiple simultaneous patches have to be exercised together in operationally realistic combinations, a combinatorial burden that grows with the number of active patches [2]. A single patch can still be tested exhaustively where a full release cannot: Curiosity’s arm kinematics fix was validated against 3,749,460 randomized unit test cases before flight, a scale of testing that a monolithic release recompile could not repeat on the same schedule [7].
MER: how a load is actually uplinked
Section titled “MER: how a load is actually uplinked”The MER rovers were launched knowing the software would be replaced. The flight software needed for entry, descent, landing and initial surface operations was not ready at launch, so a full replacement was uplinked during cruise and completed in December 2003, about a month before landing [1]. A second full load followed in April 2004 at the end of the prime mission, and a patch in February 2005 [1].
The image lives in two copies. The RAD6000 card holds the CPU, 128 MB of DRAM and one 3 MB EEPROM bank; the non-volatile memory card holds two 4 MB EEPROM banks and 256 MB of flash [1]. The A image occupies part of bank A EEPROM plus flash, the B image part of bank B plus flash, and the two are not required to be identical; for most of the surface mission they held different versions [1]. Each image is a single binary containing a boot loader plus the software; the boot loader specifies the image order to fetch from and moves to its next selection if the first fails to boot and initialize. On a cold boot the initial image is chosen by a ground-commandable latching relay; on a warm boot the flight software picks the order.
Full load products are the new image split into sequential data files plus control files carrying the assembly order, a checksum and identification data. Patch products are the difference between the new image and an image containing an earlier version, plus control files with the instructions and locations for applying them [1]. This is the same mechanism used to fix the Pathfinder priority inversion in 1997: differences between the onboard copy and the intended copy were uplinked and applied by custom onboard software with validation, rather than typed into the VxWorks shell, although the shell was available [5].
The operation is split into Uplink Days and a Build Day, all planned with no other activities running in parallel [1]. Uplink used X-band exclusively rather than UHF relay: the extra per-file overhead, the roughly 15 minute Odyssey pass and the approximately 1000 bit/s uplink rate to the orbiter more than offset the higher relay rate. The high gain antenna was used for its higher uplink rate, which constrained rover orientation to avoid mast and deck occlusions, antenna hard stops and the one minute communications loss of a 180 degree azimuth flop, and constrained mast shadowing of the antenna that cuts warm-up temperature margin and can stall the drive motors mid-pass [1]. Uplink Days used receive-only Direct from Earth passes of 3.5 to 4.5 hours, affordable because not transmitting saves 50 W, at the cost of no confirmation of receipt until the UHF pass at the end of the sol [1].
The Build Day sequence is conditional, so the ground is not in the loop between steps. One-way light time to Mars is 3 to 23 minutes, averaging 10, so each telemetry, decision and command cycle costs at least 30 minutes [1]. The sequence validates that the stored images are not corrupted, builds the new image in DRAM (directly from the uplinked files for a full load, or by copying an existing image and modifying it for a patch), saves it to the designated non-volatile location, and terminates at the first step that fails. The relays are then set so the next cold boot runs the new version, a shutdown is commanded to force that cold boot, the rover wakes 15 minutes later, and a Direct to Earth pass confirms it [1]. Every MER load and patch executed correctly on the vehicle, after test campaigns in which nominal runs were hard to complete cleanly and most contingency procedure exercise happened as a side effect of test anomalies.
MSL: the update history and what a full release costs
Section titled “MSL: the update history and what a full release costs”| Release | First use | Date | Type |
|---|---|---|---|
| R9.4.7 | sol 1 | Aug 2012 | full update, cruise |
| R10.5.7 | sol 5 | Aug 2012 | full update, cruise |
| R10.5.8 | sol 217 | Mar 2013 | cold patch |
| R10.6.4 | sol 264 | May 2013 | full update, surface |
| R11.0.4 | sol 446 | Nov 2013 | full update, surface |
| R11.0.5 | sol 772 | Oct 2014 | cold patch |
| R12.0.3 | sol 875 | Jan 2015 | full update, surface |
| R12.0.4 | sol 2808 | Jun 2020 | cold patch, prime computer only |
| R-Hope | sol 2960 | Dec 2020 | full update, backup computer only |
Source: [3], Table 1. As of sol 3610, October 2022, Curiosity had taken 13 distinct hot patches installed more than 57,000 times, and seven cold patches [2]. Release binaries are about 10 MiB: R12 was 9.97 MiB in 49 files, R-Hope 9.97 MiB in 49 files, R13 10.07 MiB in 51 files, the file count set by orbiter file size constraints [3].
R12 was installed on sol 875 when the rover had driven 9.8 km and climbed 62 m above the landing site [3]. By sol 3610 it had driven 28.998 km and climbed 692 m, all of it on the same full release plus patches [2]. One of the fixes that shipped as a hot patch on the running release, rather than waiting for the next full load, corrected a defect in the arm’s generalized inverse kinematics solver: unit testing found that 97.2 percent of commanded poses resolved to within 5 mm of the intended position, but 113,494 of 3.7 million test cases missed by more than 5 mm, 16 by more than 20 cm, and the worst by 1.21 m, a bad solution about once every 144 calls [7]. The defect had been present for roughly eight years of flight without being observed, because only 2,769 arm commands had ever exercised the affected code path; the fix, patched onto sol 2642 and in nominal use two sols later, included simply enabling root-polishing code that had shipped disabled since launch [7].
R13, proposed in April 2016 and kicked off in early 2017, took until September 2022 to be approved for flight [3]: 56 approved bug fixes and 53 new features, roughly 70 distinct approved changes surviving triage, 27 developers mostly borrowed from other projects, and a 2.25 year test campaign. The January 2017 cost estimate offered two options: seven change requests for 462,000 dollars, or 18 change requests for 659,000 dollars [3]. Cost per change request was lower for the larger option because several changes fell in the same module and the cost of regression testing a module does not depend on how many changes it contains.
The R-Hope campaign: updating a computer with no working file system
Section titled “The R-Hope campaign: updating a computer with no working file system”On sol 200 a hardware failure in the upper bank of the NAND flash on Curiosity’s A-side rover compute element made that string unusable as prime, and the rover was swapped to RCE-B, where it stayed for 5.5 years and almost 2000 sols [3]. On sol 2172 a separate flash problem on RCE-B forced a swap back to RCE-A, which ran prime until further failures reached the lower NAND bank on sol 2339 and the rover swapped to RCE-B again [3]. R-Hope was installed on sol 2960 and left the prime computer on cold-patched R12 and the backup on R-Hope, a split the project carried until R13 [2].
R-Hope is a branch of R12.0.3 that removes RCE-A’s dependence on NAND entirely, relocating the file system into the NOR flash. Each compute element has 4 GB of NAND and 128 MB of NOR; the NOR normally holds up to four redundant copies of the flight software in two ground- selectable groups [3]. R-Hope leaves Group B holding two redundant copies of the software and repurposes Group A as the file system, which gives it 64 MB where NAND gave about 2 GB, a reduction of about 99 percent in file system volume [3]. The resulting layout is 30 MB of data products, 22 MB of engineering partition and two 6 MB non-volatile parameter memory copies. R-Hope is defined as a lifeboat: able to take over as prime, diagnose the other compute element, and install flight software on both, with telecommunications, power monitoring, thermal control, safing and basic system functions, but not the science instruments, the engineering cameras, mobility or the arm.
The install could not use the normal staging path, which copies compressed uplink files to the target computer’s engineering partition and assembles them there, because powering on RCE-A’s NAND was itself judged risky. The prime computer verified and assembled the files instead [3]. Two standard safeguards were also unavailable: the toe-dip, in which a new image is booted once without being burned to non-volatile memory, is done only on the prime computer and was not performed for R-Hope; and because R-Hope consumes one of the two NOR groups, the usual guarantee that the previous known-good version stays onboard could not be kept, so the installation had to overwrite the executing R12.0.3 in Group B. There was no capability to checksum the full copied image, so strategic segments of RCE-A NOR were read back instead. Formatting is not a command but a consequence of setting volatile relays and forcing a power-on reset, and NOR is slow enough that a full set of partition reformats that takes under 5 minutes on NAND takes considerably longer [3].
The 49 files were uplinked over six weeks, 24 September to 31 October, split across three paths: 19 files, 39 percent, through MAVEN; 11 files, 22 percent, through the Mars Reconnaissance Orbiter; and 19 files, 39 percent, by X-band direct from Earth [3]. Forward link sessions carried 3 to 4 files each. Files uplinked through MRO are deleted automatically once forwarded, files staged on MAVEN are not [3].
Ingenuity: updating an aircraft through a rover
Section titled “Ingenuity: updating an aircraft through a rover”Ingenuity’s largest post-landing software update, Release 8.0, was installed in October 2022 and changed both onboard computers: the navigation computer, which performs image processing, and the flight computer, which performs real-time flight control [4]. The release bundled new flight capabilities, operations improvements, additional flight telemetry and bug fixes, and it enabled most of the flights the helicopter made afterward. Two capabilities drove it. A landing hazard detection and divert algorithm examined the visual navigation tracking features in each navigation camera frame and selected the part of the frame with the fewest features and least texture as a landing target, generated at 3 Hz by the navigation computer, so the vehicle could divert away from rock hazards instead of being restricted to airfields known to be clear [4]. And digital elevation maps were incorporated into the vision navigation filter, replacing the flat-plane assumption that had been introducing tens of meters of navigation error over sloped terrain. Smaller changes added preflight telemetry checks that let operators confirm battery voltage and temperature and abort before an unsafe flight, a new telemetry packet level exploiting a higher-throughput radio mode to the helicopter base station on Perseverance, and memory for 15 rather than 10 return-to-Earth color images per flight [4].
The new capabilities were not trusted until they had been exercised on Mars. Flights 34 through 39 were flown as a surface commissioning campaign [4]. Flight 34 was a popup with hazard detection and digital elevation map processing enabled, which demonstrated that the flight software still met all execution deadlines under the added processor load. Flight 36 was an out-and-back over hazardous terrain with the hazard algorithm enabled but the final divert disabled, so the selected targets could be compared against the terrain without risking the landing [4]. Flight 37 landed at that site and diverted to a target the algorithm selected in flight, validating hazard mitigation for operational use, and flight 39 was an out-and-back over a 15 m hill, the largest relief attempted in a single flight, to quantify the navigation accuracy the digital elevation map filter provided [4].
Commissioning did not catch everything. During flight 42 Ingenuity did not divert as commanded: the flight computer rejected the landing target as beyond the 25 m maximum divert distance because the target it held was stale [4]. Landing sites are delivered sporadically inside the 500 Hz state packets the navigation computer sends the flight computer, and the flight computer, following an assumption that predated Release 8.0, discarded the older of two packets received in a single processing cycle in favor of the newer one. The landing sites were consistently arriving in the discarded packet [4]. The fault was reproduced on the Ingenuity testbeds and Release 8.1, delivered in March 2023, patched the flight computer to check every packet in a cycle for landing sites; hazard avoidance has worked consistently since.
What the record says about fallback
Section titled “What the record says about fallback”Every mission here keeps at least two bootable images and can fall back either autonomously or by ground command, and every mission has found that the fallback guarantee weakens exactly when it is most needed. MER’s boot loader walks the image list on initialization failure [1], but the Spirit flash anomaly showed a fault that reproduced identically in both images because it lived in the file system state rather than in the code [6]. MSL’s toe-dip exists to fly a new image once before committing it, and was skipped for R-Hope because the target was the backup computer [3]. Cassini avoided the question by nearly never flying a full load: after the pre-launch software was set, a full load forces a computer reset that the AACS team judged worth avoiding for 2.5 years of prime mission, relying instead on memory-write patches to change parameters [8]. A 2026 survey of post-launch software adaptation across eight planetary missions, including Galileo’s data-compression reprogramming and Deep Space 1’s camera-as-star-tracker reprogramming, lists onboard software reconfigurability as one of six recurring enablers that let ground teams rescue or extend a mission, alongside redundant hardware degrees of freedom and design margin, but does not attempt to quantify how often the fallback path itself was exercised across those cases [10]. The images being replaced always have more logged flight time than the ones replacing them.
What is not established
Section titled “What is not established”None of the sources held here states a defect escape rate, a measured stability comparison between patched and full-release software, or a margin figure for how close a file system was to its limit before a growth-driven failure like Pathfinder’s or MER’s file system overruns. Update timing is reported only in aggregate: no source breaks out how many hours or sols an uplink campaign actually consumed versus planned, so the claim that shortening the campaign is the biggest available improvement rests on operator judgment rather than measurement [1]. Ingenuity’s account of Release 8.0 gives no processor utilization, margin or memory figure for the added hazard-detection and terrain-mapping load, only that all execution deadlines were met [4]. R-Hope’s account does not state how long the 64 MB file system is expected to support backup operations or characterize the NAND degradation mechanism that forced the move [3]. The 2026 cross-mission survey is a post-hoc narrative coding of interviews and public accounts, not a measurement of how often each enabler, including software reconfigurability, made the difference between recovery and loss [10].
References
- 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} } - Holloway, A., Denison, J., Patel, N., Maimone, M. and Rankin, A. (2023). Six Years and 184 Tickets: The Vast Scope of the Mars Science Laboratory's Ultimate Flight Software Release
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{holloway2023six, title = {Six Years and 184 Tickets: The Vast Scope of the Mars Science Laboratory's Ultimate Flight Software Release}, author = {Holloway, Alexandra and Denison, Jonathan and Patel, Neel and Maimone, Mark and Rankin, Arturo}, booktitle = {IEEE Aerospace Conference}, address = {Big Sky, Montana}, year = {2023}, doi = {10.48577/jpl.wt6qyg}, abstract = {The Mars Science Laboratory (MSL) Curiosity rover has seen five full flight software upgrades since landing on Mars in August 2012. Software transitions for MSL add or replace functionality, fix bugs, and prepare for future capabilities. The penultimate full software release, R12, was installed on Curiosity in 2015, and was followed by several hot patches and one cold patch as engineers worked to address new constraints. Because each added patch increased the complexity of operating the rover, a new flight software update called R13 was proposed, which aimed to make operations more straightforward by combining the patches into a single monolithic image, and improve upon or add several capabilities to the rover's flight software. The R13 development effort kicked off in early 2017. Over the subsequent six years, the scope of R13 was expanded to include many desired capabilities and bug fixes since the last upgrade -- some of which were proposed even earlier than 2015 but were unable to be implemented in R12. Overall, the MSL Change Control Board approved 56 bug fixes and 53 new features for R13 development. Twenty-seven developers implemented these changes over a 3.5 year period. Following a 2.25 year testing campaign, R13 was approved for use in flight onboard Curiosity. In this paper, we detail the path of the R13 flight software release from its proposal in April 2016 to its approval for use in flight in September 2022.} } - Holloway, A., Peper, N., Anabtawi, A., Quade, J. and Byrne, D. (2022). Building a Lifeboat: MSL's Uplink and Installation Campaign to Restore a Failing Backup Computer
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{holloway2022building, title = {Building a Lifeboat: MSL's Uplink and Installation Campaign to Restore a Failing Backup Computer}, author = {Holloway, Alexandra and Peper, Nick and Anabtawi, Aseel and Quade, Jackson and Byrne, DJ}, booktitle = {IEEE Aerospace Conference}, pages = {1-9}, address = {Big Sky, Montana}, year = {2022}, doi = {10.1109/aero53065.2022.9843266}, abstract = {Flight software updates are among the hardest and most dangerous activities for the Mars Science Laboratory (MSL) Curiosity team. While danger is often mitigated by backups, fallback strategies, and incremental installation with ground-in-the-loop cycles which provide a safety net for the installation process, the software update described in this paper was unable to use many of the common practices due to the nature of the fault addressed by the update. The MSL rover (landed August 2012) encountered a problem with one of its computer's non-volatile storage chips in 2019, requiring a swap to its backup computer and an urgent software upgrade called R-Hope. R-Hope, a lifeboat to be used in the event of primary computer issues, was written, tested, and sent to the rover in lightning speed of just 19 months. Multi-mission and team coordination allowed the 49 flight software image files to be uplinked to the rover over a 6-week period, using multiple paths and backup options for speedy delivery. In the end, the R-Hope software upgrade returned the computer to operation as a backup flight computer. The flight software transition was designed to impact science return as little as possible, and installation plans included science activities for the majority of MSL instruments. This paper describes the uplink and installation campaigns for R-Hope, and discusses the notable lessons learned by the operations team.} } - Anderson, J. L., Brown, T. L., Cacan, M., Kubiak, G., Jasour, A. and Rothenberger, N. Z. (2024). Lessons From Ingenuity's Climb Up Jezero Crater Delta
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{anderson2024lessons, title = {Lessons From Ingenuity's Climb Up Jezero Crater Delta}, author = {Anderson, Joshua L. and Brown, Travis L. and Cacan, Martin and Kubiak, Gerik and Jasour, Ashkan and Rothenberger, Noah Z.}, booktitle = {IEEE Aerospace Conference}, pages = {1--15}, publisher = {IEEE}, year = {2024}, doi = {10.1109/aero58975.2024.10521181}, abstract = {As Perseverance began exploring the delta of Jezero crater, the Ingenuity team took on the most ambitious flights of the mission to date. Designed for the relatively flat terrain of the crater floor, the Ingenuity team now needed to climb up and fly through the rocky channels of the Jezero delta. Before the flights in the delta could even be attempted, the team needed to upgrade Ingenuity’s flight software to identify landing hazards and utilize digital elevation maps in the navigation filter. After upgrading the flight software, the team needed to work through a series of checkout flights to validate this new functionality prior to climbing the delta. The Jezero delta features narrow channels, limiting Ingenuity and Perseverance’s available traverse paths. This required Ingenuity and Perseverance to follow similar routes, necessitating new processes for coordinating Ingenuity and Perseverance’s parallel flights and drives. In previous traverses, Ingenuity was able to take separate, shorter routes to the destination, but this climb required Ingenuity to keep pace with Perseverance’s record setting drives. This rapid traverse pushed the Ingenuity team to optimize the flight planning process to shorten the nominal two week flight cadence to under a week between flights. The narrow passages of the delta also limited Ingenuity’s telecom propagation, providing only small windows of strong communication with Perseverance. All these above constraints required the Perseverance and Ingenuity teams to carefully orchestrate both vehicles’ journey up the delta, keeping both vehicles in lockstep while minimizing the chance that one vehicle would hold up the other’s progress. The paper will cover flight 34 and beyond, Ingenuity’s delta climb, as well as the lessons learned from both the challenging flights in the delta terrain and the required multi-vehicle coordination of the climb.12} } - 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} } - 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} } - Rankin, A., Holloway, A., Carsten, J. and Maimone, M. (2021). Integration of an Arm Kinematics Hot Patch onboard the Curiosity Rover
. IEEE Aerospace Conference. Source
BibTeX
@inproceedings{rankin2021integration, title = {Integration of an Arm Kinematics Hot Patch onboard the Curiosity Rover}, author = {Rankin, Arturo and Holloway, Alexandra and Carsten, Joseph and Maimone, Mark}, booktitle = {IEEE Aerospace Conference}, pages = {1-8}, publisher = {IEEE}, year = {2021}, doi = {10.1109/aero50100.2021.9438501}, abstract = {NASA's Mars Science Laboratory (MSL) mission has updated the Curiosity rover's flight software multiple times since landing on Mars on August 6, 2012. The most common patching method has been a hot patch, in which running flight software is modified after being copied into RAM from its persistent storage. The latest hot patch to be installed on Curiosity fixed an issue in the robotic arm software that computes generalized inverse kinematics. Additional unit testing performed since the start of the surface mission revealed that this software can sometimes produce erroneous solutions. The cause was identified as numerical instability in a quartic root finder. When the inputs to that solver are not well conditioned, floating-point numerical issues can cause erroneous roots to be reported. In theory, this could result in the robotic arm turret instruments being commanded to unintended positions, for example, below the terrain surface. Out of approximately 3.7 million unit test cases, 97.2 % of the position errors were below 5 mm. However, there were 16 test cases where the position error was greater than 20 cm, and the maximum position error was 1.2 meters. The patch was uploaded to Curiosity on sol 2642 (January 11, 2020) after the solution was developed, re-implemented as a hot patch, and validated and verified using Earth-based Curiosity testbeds. A checkout test of the patch was performed on Curiosity on sol 2657, and nominal use of the patch began on sol 2658. In this paper, we describe the steps that led to integrating the arm kinematic hot patch into Curiosity's flight software, from the discovery of the bug to the nominal use of the patch in flight.} } - Wang, E. and Brown, J. (2007). Cassini's Test Methodology for Flight Software Verification and Operations
. AIAA SPACE Conference and Exposition. Source
BibTeX
@inproceedings{wang2007cassini, title = {Cassini's Test Methodology for Flight Software Verification and Operations}, author = {Wang, Eric and Brown, Jay}, booktitle = {AIAA SPACE Conference and Exposition}, year = {2007}, url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/41356} } - 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.} } - Ono, M., Rieber, R., Freeman, T., Choukroun, M., Ingham, M. D., Gentgen, C., Murrow, D. and Selva, D. (2026). Is Simplicity Golden? A Survey of Post-Launch Adaptation in Planetary Missions
. Icarus. Source
BibTeX
@article{ono2026simplicity, title = {Is Simplicity Golden? A Survey of Post-Launch Adaptation in Planetary Missions}, author = {Ono, Masahiro and Rieber, Richard and Freeman, Tony and Choukroun, Mathieu and Ingham, Michel D. and Gentgen, Chloe and Murrow, David and Selva, Daniel}, journal = {Icarus}, publisher = {JPL Open Repository}, year = {2026}, doi = {10.48577/jpl.7ektpn}, abstract = {The conventional wisdom in space systems engineering holds that simplicity is golden: systems should minimize complexity while meeting requirements. A simpler system is typically considered more robust and less prone to risk because it can be tested thoroughly and has fewer points of failure. While the core philosophy of this principle remains valid, we argue that the reality is more nuanced—particularly for planetary exploration missions, which face substantially greater uncertainties than Earth-orbiting missions. We investigated 10 past and ongoing missions that encountered unexpected situations and either successfully or unsuccessfully adapted to them: Galileo, Hayabusa, EPOXI, Deep Space 1, Juno, SMAP, OSIRIS-Rex, InSight, Mars 2020 Rover (Perseverance), and Ingenuity. Our study draws on a series of interviews with experts directly involved in these missions, as well as a review of relevant literature. We found that it is often departures from design minimalism—such as functional redundancy in sensing and actuation, subsystem interconnections, and onboard software flexibility—that enabled, or could have enabled, missions to adapt to anomalies and surprises. From these observations, we distilled five design principles for future planetary missions to enhance adaptability while keeping overall system complexity under control. Finally, we propose a concept of software-defined space systems (SSDSs), which is built upon the proposed design principles and can dynamically adapt physical behaviors in remote planetary environments.} }