Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Mars NASA Programming Software Space IT Technology

The Software Behind the Mars Phoenix Lander 152

chromatic writes "Imagine managing a million lines of code to send over seven hundred pounds of equipment millions of miles through space to land safely on Mars and perform dozens of experiments. You have C, 128 MB of RAM, and very few opportunities to retry if you get it wrong. O'Reilly News interviewed Peter Gluck, project software engineer for NASA's Mars Phoenix Lander, about the process of writing software and managing these constraints — and why you're unlikely to see the source code to the project any time soon."
This discussion has been archived. No new comments can be posted.

The Software Behind the Mars Phoenix Lander

Comments Filter:
  • by QuantumG ( 50515 ) * <qg@biodome.org> on Thursday July 10, 2008 @05:11PM (#24143189) Homepage Journal

    Nope. VxWorks.

    These questions and more answered in TFA.

  • by Lumpy ( 12016 ) on Thursday July 10, 2008 @05:42PM (#24143773) Homepage

    I know exactly how to do that. I program Crestron systems remotely as well as some ham radio embedded stuff. Cresron gear across the country cant be reset without paying someone to do so, and an embedded PC in the norther wild of michigan on a tower that takes a weekend to go and fix are very much the same thing.

    You check, recheck, and test on the copy system. you also build in fail safes so that if your upload fails, it reverts to the old code or fails to the loader so you can upload again.

  • by rk ( 6314 ) * on Thursday July 10, 2008 @05:47PM (#24143861) Journal
    NASA releases all kinds of code. As an example, many people in the space science community rely on SPICE from JPL's Navigation and Ancillary Information Facility, and you can play from home [nasa.gov]. I think the newest version of Celestia [shatters.net] has a CSPICE interface to get extremely accurate planetary positions and spacecraft pointings into it.
  • by exley ( 221867 ) on Thursday July 10, 2008 @05:54PM (#24143967) Homepage

    I stand at least partly corrected then... Although still not sure they would release code like what is running the Mars lander. On the other hand, what would anyone do with that code if it was available? I suppose there could be some homebrew interplanetary lander projects out there... :)

    And for anyone else initially confused and unwilling to click links, the reference to SPICE in parent's post isn't about the circuit simulator!

  • by deft ( 253558 ) on Thursday July 10, 2008 @06:05PM (#24144161) Homepage

    I was told that the reason space craft run on very old perating systems is not because of the ideas you're thinking, but because old operating systems have basically no unknown quirks. They are having anything unknown pop out.

    the actions the have to undertake are just fine on old tech, because OLD = PROVEN in alot of cases.

  • Huh? (Score:5, Informative)

    by oneiros27 ( 46144 ) on Thursday July 10, 2008 @06:07PM (#24144201) Homepage

    Maybe because it's freaking NASA?

    What's that have anything to do with it?

    NASA has an OSI approved license:

    It could probably be easier to find NASA software, and I doubt this particular software would ever be released, but there's lots of NASA software that's been released:

    There's issues because much of NASA stuff is done as part of grants, and so it's officially owned by the academic / research institution that won the grant ... as such, there might be other NASA funded code that's out there, that you don't know is NASA code... at least one program (AISRP [nasa.gov]) has started a place to collect software by grantees.

    I've been to NASA workshops where there's plenty of code that's being written where people would LOVE to have their software find a broader audience. At the last one, we had an hour debate on if we were allowed to release code as GPL, as that'd place restrictions on the use of the code (that derivative copies have to be open), which should not be done as the software was developed w/ federal money and as such citizens should be free to do whatever they want with it. I think someone was assigned to talk to NASA's legal department and find out what we had to do to release our code.

  • by coop0030 ( 263345 ) on Thursday July 10, 2008 @07:01PM (#24144955) Homepage

    If you computer at home freezes, you hit reset. Trying pushing the reset button on a Mars rover--let me know how that works out for you.

    Actually, in the article, he basically stated that they essentially do have a reset button. The software pings the hardware every 64 seconds. If the hardware doesn't receive the ping on time, it resets the software to potentially resolve the error/lockup.

    Now in the event that that doesn't work, we have a whole second set of avionics onboard. So the hardware will try to boot to the same side, and if the same side doesn't come up and start stroking the watch-stop timer, then it will swap to the other side and boot the first side.

  • by frieko ( 855745 ) on Thursday July 10, 2008 @07:04PM (#24144999)
    I wouldn't call Ada obsolete. C is only good because a lot of people know C and lots of COTS parts are C. But you can't beat Ada if you need a language that was built from the ground up for mission-critical reliability.
  • by imsabbel ( 611519 ) on Thursday July 10, 2008 @07:19PM (#24145189)

    Also, people often forget that by the time a probe or rover makes the news, many years have passed since the "feature freeze".
    Years of design, testing, waiting for a launch possibility, travel.

  • by Buran ( 150348 ) on Thursday July 10, 2008 @07:25PM (#24145255)

    It's called a dead man's switch and is implemented in rail locomotives, for example. A horn sounds a tone at (probably) random intervals and you must press a button within a certain amount of time or the engine is throttled to idle. Previously, you had to keep your foot on a pedal at all times but it was defeated by just putting a brick on it.

    The idea is that if you're dead, you can't hit the switch, so the train you're supposed to be controlling will stop rather than plow through a stop signal at some later time and hit something or go off the track.

  • by ezzzD55J ( 697465 ) <slashdot5@scum.org> on Thursday July 10, 2008 @08:34PM (#24145963) Homepage

    It's called a dead man's switch and is implemented in rail locomotives, for example.

    Dead man's switch for humans, watchdog timer for computers. TFA mentions the phoenix watchdog going off every 64 seconds.

  • by Lumpy ( 12016 ) on Thursday July 10, 2008 @09:38PM (#24146597) Homepage

    Yes I can, if I go to the tower to connect to it. Although last time I disconnected all those wires because lightning uses those 200 foot wires coming down as antennas and destroys the computer running the digi. so right now you have to drive to the location, climb the tower, get the box, climb down, work on it, test it, climb up reinstall it and then climb down.

    i'd rather make sure I get everything right and upload via 6 meters at 1200bps overnight from 30 miles away.

  • by Tablizer ( 95088 ) on Friday July 11, 2008 @01:28AM (#24148561) Journal

    Here's an interesting web-page on the processors used in various space probes over the years.

    http://www.cpushack.net/space-craft-cpu.html [cpushack.net]

    It seems Viking was the first to use micro-processors. Before that they used TTL, which is sort of a roll-your-own CPU based on bunches of simpler logic chips (NAND gates, multiplexers, etc.).
       

2.4 statute miles of surgical tubing at Yale U. = 1 I.V.League

Working...