72

This Wikibooks link lists its strong points, some of which are: An extremely strong, static and safe type system, which allows the programmer to construct powerful abstractions that reflect the real world, and allows the compiler to detect many logic faults before they become errors. Modularity, whereby the compiler directly manages the construction ...


54

Timing. Ada was developed in the 1970s and 80s with the intent of replacing the plethora of languages used in the US Department of Defense's realtime systems. NASA (and also organizations from Europe) were active participants. The DoD mandated Ada for all major development in 1991. NASA did much the same. The International Space Station had been a paper ...


54

Almost all of the safety critical software that runs on the US side of the Space Station is written in Ada. I wrote "almost all" rather than "all" because there are probably some low level device drivers written in assembly. I can't find out in which language / languages the code that runs on the Russian side was written. I wouldn't be surprised if that also ...


37

Although the Space Shuttle flight software was of outstanding quality, it's completely incorrect to think that there was only one bug. There were many known bugs in the flight software (FSW). Here are three I can think of off the top of my head that impacted missions. The flight campaign of the Shuttle program started out with an embarrassing software bug! ...


33

In 2015, the last original Voyager engineer still on the project, retired. NASA specified that his replacement would have to know FORTRAN. The software was updated regularly after launch: The last true software overhaul was in 1990, after the 1989 Neptune encounter and at the beginning of the interstellar mission. "The flight software was basically ...


18

I remember taking Computer Science courses in the late 90s. The professor of CS explained to our meager group of CS majors that he was going to teach us C, rather than COBOL or Ada, because it would be more useful in general. At the time, they were the major programming languages colleges were teaching back in the day (every major university in the area ...


15

There are a lot of programs involved in running the ISS. The exact details are difficult to discern, a lot of NASA's software is available via this site, with some restrictions, but here is what I can find. Astrobee- Runs the "Robotic Operating System" Geolocation via a Python Library Some elements use LabView I'm sure there are many other languages, ...


14

From the website: AdaCore tools can be used to meet verification objectives including coding standard compliance, code accuracy (prevention of errors such as buffer overrun, integer overflow, and references to uninitialized variables), and structural coverage analysis up to MC/DC. Specialized high-assurance run-time libraries, including one that ...


13

The Voyager spacecraft are not reprogrammed anymore, so the language in which they are programmed is largely irrelevant. The uplink is only 16 bits/second, just enough to send (simple) commands. How these commands are generated is irrelevant to the spacecraft. Any language that can generate a sequence of bits theoretically suffices. This pdf document ...


12

NASA's standard desktop office computer configuration is Windows 10 with Microsoft Office. This software is provided agency-wide by the NASA Shared Services Center (NSSC). Here is an excerpt from the NASA-STD-2804 Fall 2017 MINIMUM INTEROPERABILITY SOFTWARE SUITE requirements document (the latest version available from the NSSC website to the general public)...


10

I didn't work on Voyager, but can tell you that deep-space missions tend to retain the original ground hardware, software, language, and build environment, both for continuity/safety as well as budget reasons. There may be little or no funding to continue the mission; it may even fall to outright volunteers. It's amazing and sad to me how much we depend on ...


10

I have retrieved via FOIA request the "Space Launch System Program (SLSP), Flight Software Application, Software Assurance Plan (SAP)". It is the core document describing the software development processes for the Flight computer (the bit responsible for on-pad prelaunch, launch, and ascent of the SLS vehicle) and the Green Run Application Software (software ...


9

The biggest single change in the Houston Mission Control Center (MCC) occurred in the late 1990s. This was the change from a mainframe based system architecture to a workstation based system with a client/server architecture. The project was led by John Muratore and it's discussed at some length in his oral history. Several of the papers in the Control ...


7

This is a little bit of a cop-out answer, but I have some pertinent experience. There are GPUs in use on the ISS ... in the laptops. The astronauts on the ISS receive briefings before EVAs in a "3D walkthrough" form. This uses NASA's EDGE renderer and a super-accurate 10mil poly model of the exterior of the Station. They also stay up to date on SAFER ...


7

MRO uses the Electra software-defined radio: Electra is a telecommunications package that acts as a communications relay and navigation aid for Mars spacecraft. Toward the end of the primary science phase, other Mars missions launched in 2007 and beyond will begin to arrive. Mars Reconnaissance Orbiter will use its Electra UHF radio to support any ...


5

Satellite control systems are usually created ad-hoc or based on existing in-house systems. For example, ESA reuses its own SCOS-2000 infrastructure. In Europe, there are many companies that develop SCS like SSTL, GMV, SCISYS, DEIMOS, TERMA, and many more. There are also some open source systems like Cosmos and yamcs. In all the cases, you will have to ...


5

What I have seen of the code the Russians deliver to the Space Station trainer is written in C. These are the same engineers from Energia that write the Service Module software so I'm guessing they also use C. If the C is generated from DRAKON I don't know. Lua is also used in the Russian simulator.


5

Of all the possible languages to choose from, what are the aspects of Ada that make it NASA's choice for such a critical application? What might be the weighting between legacy reasons versus intrinsic suitability? Ada is a language designed for this very kind of situation, i.e. fault intolerant, real-time and (often) embedded systems used to control ...


4

As the author of 1 of the posts you reference about the number of bugs found, you've misunderstood the words. Please re-read them. On the STS, a "bug" is when the software did not meet the requirements. It didn't necessarily mean something bad would happen, just that the code didn't match the requirements. The developers didn't classify the bugs. For overly ...


4

NASA was (and still is) a leading organization in the field of software engineering, even before the term "software engineering" existed. The kinds of software programs developed for NASA range from one-off scripts / spreadsheets meant to yield a rough approximation to a specific engineering question to programs / scripts / spreadsheets that contain ...


4

You are overthinking gravity, under thinking uncertainties, and under thinking easy ways around the problem. Presumably you have a (pseudo) omnidirectional antenna on your cubesat. Your cubesat needs to point its antenna toward the Earth. The cubesat doesn't need to know where it is so much as it needs to know where the Earth is. So use a cheap sensor such ...


4

I had the distinct honor of working for John Muratore on two distinct projects. One was the X-38. But before that, I worked on developing advanced software for his Real Time Data System project. The RTDS project started in 1986 when Muratore saw the archaic structure of Mission Control. The primary goal of the project was to transition from a single ...


3

In the space industry there is a great need for software engineers of all backgrounds and interests. I did a couple of internships at NASA and now work at a private space company. Through these experiences I got to work on autonomous software for rocket tests using Matlab, deep learning for virtual reality using Python & Unreal Engine, and now flight ...


3

Big organisations have big cracks for things to fall down. NASA has the additional problems of: There not being much precedence for most of the things they do. They only getting one shot at it most of the time. In such case the big ticket items, are typically well taken care of. If it's clear what the question is and there is the potential for get it wrong ...


3

The Jon McBride Software Testing and Research Lab (JSTAR) Team / Independent Test Capability (ITC) Team both created NOS3 and proposed/built/coded Simulation-to-Flight 1. The stf1.com website has recently been updated to include a NOS3 section since the software has recently been released through NASA's Open Source release process. The link for NOS3 is ...


3

The first that comes to mind is the Github repository of the Apollo 11 Guidance Computer (AGC). The repository has both Command Module and Lunar Module software, but note that it is transcribed from hardcopies, so it might not be fully complete (yet). You can find a simulator of the AGC on the Virtual AGC website (there's a ton of other references there also)...


2

There are a couple of great open-source tools available for that including NASA's Trick library. I did an internship at NASA where Trick was heavily utilized for GN&C software-in-the-loop and hardware-in-the-loop scenarios. There is also Cesium for 3D visualization of your model and physics.


2

The main ways I'd go about this, depending on the application and precision you need: Approximations you can code up simply: Plain-text keplerian elements are available on the NASA JPL website: https://ssd.jpl.nasa.gov/?planet_pos These give good approximations up to the year 2050 If you need something more precise then the Planetary Ephemerides DE431 is a ...


2

For European p.o.v. you could try opening an account to ECSS (ecss.nl), it requires you to create an account. It's not very recent.. but it's still current, and still applied (whether good or bad). There's some online discussion of how to adapt to processes to agile approaches.


2

In many of the early probes, up until close to Apollo there were not true computers on space probes. All computing was done on earth and the onboard electronics was known as a sequencer, for Pioneer 10 it had 222 possible commands 5 of which could be readied. Early Venus probes sent data by mechanically switching different sensors to modulate a CW ...


Only top voted, non community-wiki answers of a minimum length are eligible