back to article Curiosity gets interplanetary software patch for better driving and more on Mars

NASA has successfully installed a major software update on its venerable Curiosity Mars rover, which has been rolling over the Red Planet's landscape for more than a decade. The Americans said some 180 changes were included in the update, which was deployed last week. Some were small, NASA said, such as making slight …

  1. Headley_Grange Silver badge

    Wow! Kudos. It made me imagine a Microsoft Windows dev. going for an interview at NASA.

    NASA: "Talk us through your testing processes".

    MS Dev.: "Oh, we've got a great process and it's incredibly cheap. We let the user test it after we've pushed it onto their machine."

    NASA: "OK. Shut the door on the way out."

    1. b0llchit Silver badge

      Just ask 'm if they'll do free on-site support as part of their contract...

      1. Anonymous Coward
        Anonymous Coward

        On site support

        I did have an email footer that was used for one specific customer that said

        "On-site support calls are NOT available to off-planet projects."

        Anon as my companies OS is on everything crawling on or orbiting Mars.

        1. bigphil9009

          Re: On site support

          I think we all know who you work for now :D

          All I can say is keep up the good work!

    2. FIA Silver badge

      I genuinely don't think I could cope with the stress of being a software developer on that thing. Hats off to you all.

      1. Anonymous Coward
        Anonymous Coward

        It's called Software Engineering.

        It involves planning, requirements, testing requirements, architecture, design, test design, testing, test reports, etc... with everything developed and reviewed independently.

        It is how proper certifiable software is written, not scribbles in wax crayons by the coloured pencil department.

        Anon - really p155ed off with so many websites that do not work properly - including to order my medical items - Abbot, I'm looking at you and your new website, requiring new authentication, but the process ending with an empty HTML alert box!

        1. Anonymous Coward
          Anonymous Coward

          "planning, requirements, testing requirements, architecture, design, test design, testing, test reports, etc... with everything developed and reviewed independently."

          Microsoft has heard of all of those.

          1. Boris the Cockroach Silver badge
            Windows

            Quote

            "Microsoft has heard of all of those."

            And decided it can save money by having the users to do most of it for them

          2. jake Silver badge

            "Microsoft has heard of all of those."

            Assumes facts not in evidence. Post proof or retract.

            1. Pascal Monett Silver badge

              Proof ?

              And just about every article on Windows in the past 20 years is not proof enough ?

          3. anothercynic Silver badge

            I can guarantee that they've *heard* of all of them but have chosen not to implement them, as evidenced by some heated discussions I had with some of their senior people over their Data Engine around a decade or so ago...

            And yeah, Microsofties who read this, I have not forgotten about your shit design and testing processes (or how you treated one of your Platinum development partners over said design and testing processes). Come right at me. I kept the receipts.

    3. ChoHag Silver badge

      You just need a failsafe: a mechanical arm that falls down and hits the reboot button.

  2. TrevorH

    Eurpean format numbers?

    > 21.921MB

    Did you use Euro formatted numbers here with a . instead of a comma? Is that twenty one point nine two one MB or is it 21 thousand, 9 hundred and twenty one MB? The first seems unbelievably small and the second seems more realistic but quite bloated.

    1. Jou (Mxyzptlk) Silver badge

      Re: Eurpean format numbers?

      You are posting the exact reason why I switched, a while ago, to use this style: 21'921 MB. 21 GB looks way more realistic for a 2011/2012 produced computer.

      1. heyrick Silver badge

        Re: Eurpean format numbers?

        21 gigabytes? That's several times larger than the drive I made my first XP installation on.

        I interpreted the number as "twenty one megabytes" with unnecessary precision added. A not unrealistic amount.

      2. Phil O'Sophical Silver badge
        Facepalm

        Re: Eurpean format numbers?

        Curiosity only has 2GB of flash, according to Wikipedia.

        The idea that 21GB of software could be "realistic" in any content is ludicrous even today, especially for an embedded system without graphics. 21MB is plenty for almost anything, if it's properly written. We used to regularly design complex telecomms software that fitted in 256kB.

        1. Arthur the cat Silver badge

          Re: Eurpean format numbers?

          The idea that 21GB of software could be "realistic" in any content is ludicrous even today

          Sadly sizes tending that way are all too common for desktops. (My wife just upgraded her Mac from Monterey to 13.3.1 aka the latest Ventura. From memory the full download was ~20GB.)

          especially for an embedded system without graphics

          I'd expect embedded code to be in MBs these days. I learnt to program on machines sized in kB. Unix on 11/70s had 64kB for code and 64kB for data as an absolute maximum.

          1. vogon00

            Re: Eurpean format numbers?

            Bring back small amounts of storage:-) It teaches you how to right *efficient* low level code. Try writing code that fits in an 8kbyte eeprom these days. The BIOS images I routinely flash onto machines are 16 or 32 megabyte images, just to support the flashy graphics. GUI in the BIOS? Bah!

            Back in the day, most of the changes in the source for said eeproms were commented as 'code reduction'...

            1. jake Silver badge

              Re: Eurpean format numbers?

              "Bring back small amounts of storage"

              I recommend (and use!) the ATmega328, and variations.

              If you need/want a little more polish, try the Arduino line.

              Before anyone says it, a pi is overkill at the level I'm talking. That doesn't make the pi a bad thing, mind, They have their place, too.

              1. Arthur the cat Silver badge

                Re: Eurpean format numbers?

                a pi is overkill at the level I'm talking

                I'm quite fond of the Pi Pico. Similar amount of RAM to the machine I learnt on (+ bigger flash), clocks two orders of magnitude faster, just needs a huge room full of washing machine disk drives with 4MB disk packs and a George 3 emulation to be properly nostalgic.

            2. DJV Silver badge

              Upvoted!

              I know what you mean.

              I started programming on an 8K Commodore PET back in 1979, which had a 'massive' 7167 bytes free to BASIC! Still got a heck of useful software running on it back in the day!

        2. Jou (Mxyzptlk) Silver badge

          Re: Eurpean format numbers?

          > Curiosity only has 2GB of flash, according to Wikipedia.

          Ah, thank you! That makes the writing style even worse, and mine even better... So it was 21'921'000 Bytes...

    2. Anonymous Coward
      Anonymous Coward

      Re: Eurpean format numbers?

      21 point 921 Mb does not seem too small for a computer that isn't running Windoze or some other graphics intensive OS.

      Plus the OS doesn't have to do much except take inputs from various sensors, use a robotic arm, send/receive data from the transceiver and to tell the drive motors to turn and at what speed.

      And the OS could be in simple machine code or basic C (or similar), that is uploaded and then "assembled" on site.

      1. Yet Another Anonymous coward Silver badge

        Re: Eurpean format numbers?

        But what about the new edition of Edge? And it will need new video codecs and a whole bunch of printer drivers

        1. John Brown (no body) Silver badge

          Re: Eurpean format numbers?

          They saved space by removing "unsupported" printers :-)

          1. jake Silver badge

            Re: Eurpean format numbers?

            And about a gig of fonts.

      2. rajivdx

        Re: Eurpean format numbers?

        At my last company I developed a medical device (Google it: OneStim) running Windows CE (2013), some snazzy XAML graphics, SQLite, WiFi, touchscreen, the lot. The whole thing fit in 20MB of Flash. Yes you read that right: Windows with XAML graphics in 20MB, not GB.

        We opted to go with XAML because it was so light and snazzy compared to QT which was a real pig at 400MB.

        Unfortunately Windows CE is no more (R.I.P) and XAML is following closely on its heels.

    3. 45RPM Silver badge

      Re: Eurpean format numbers?

      Kids today with your Java and your Scala and your Kotlin. Get coding in C and Assembler and you’ll see file sizes plummet. In desktop computing terms, 20MB is ample space to install an OS (with GUI), spreadsheet, word processor, database, paint programs and a few games - and still leave space over for your documents.

      So why don’t modern computers work so efficiently? Well, there are many reasons - but I suspect that the number one reason is cost.

      Developer time is expensive. And C, Assembly language (and even Pascal) et al aren’t as fast to write for as those aforementioned modern languages. Those modern languages which bring with them other benefits such as vastly improved security (which the older languages don’t provide and require the developer to implement themselves), and a virtual machine which means the software you write is more portable. But the trade off is that the modern languages are a bit bloaty - and when you start adding in other cool stuff like machine learning, they’re vastly bloated.

      And since memory, CPU and storage are cheap on earth, and security is kind of important, I think this probably means that those kids today are right. Better to have a fatter program which is secure and delivered quickly than an insecure program which is slender - and hard to port to multiple architectures

      Consider this though, if you throw away pretty graphics and pare the UI down to the bare minimum, it’s quite possible to write Tetris in 6K of memory. I’ve done it. But I’m a tiny grasshopper when compared with the person who wrote a full game of chess, with simple AI, excluding only castling, in 850bytes. Bytes!

      And I suspect that a) NASA can afford the very best and most efficient developers and b) it probably uses boring, old, programming languages.

      1. Phil O'Sophical Silver badge

        Re: Eurpean format numbers?

        I'd guess that a lot of bloat comes from developers who need a function to perform a 'wibble' operation, so turn to Google. Someone on stack exchange says "I used fwibble() from libstuff.o, they try it, job done.

        Meanwhile they're oblivious to the fact that they've just linked 150MB of other crap from libstuff.o, just to get a 2kB generic version of fwibble(), which they could have written in < 1kB themselves if they'd actually bothered to try.

        Repeat that a few times and you soon get GB bloat.

        1. 45RPM Silver badge

          Re: Eurpean format numbers?

          Excellent point. I’ve seen that done too. Have a thumbs up.

          Not to mention that careless use of libraries is a stellar way to increase the attack surface of your software.

        2. jake Silver badge

          Re: Eurpean format numbers?

          "which they could have written in < 1kB themselves if they'd actually known how to write code."

          FTFY

      2. jake Silver badge

        Re: Eurpean format numbers?

        "And since memory, CPU and storage are cheap on earth, and security is kind of important, I think this probably means that those kids today are right. Better to have a fatter program which is secure and delivered quickly than an insecure program which is slender"

        So in your opinion, it's OK to be a slovenly programmer and write bloated code because there is so much room to push your fat, ugly crap into these days? In my opinion, this is a symptom, not a solution.

        " - and hard to port to multiple architectures"

        I'm pretty sure that various flavo(u)rs of BSD might argue that point. To say nothing of the Linux kernel and core utilities.

        1. 45RPM Silver badge

          Re: Eurpean format numbers?

          That wasn’t my point. Developers shouldn’t ever write unprincipled code. But it is a defence of using languages like Java rather than languages like C (although I must admit that my personal presence is to use C - but that’s because I’m old, and stuck in my ways. Which is not a great mindset when working in technology!)

      3. jake Silver badge

        Re: Eurpean format numbers?

        "And I suspect that a) NASA can afford the very best and most efficient developers"

        "Can" and "does" are very, very different concepts.

        "and b) it probably uses boring, old, programming languages."

        When those spacecraft were launched in 1977 they were hardly "old and boring". Perhaps you'd like to haul your happy ass out there and replace the hardware so it can now run "modern, exciting" programming languages?

        Contrary to popular belief, "legacy" does not always mean "decrepit".

        Do you suppose we should tell him his bank runs Fortran and COBOL as a matter of course?

        1. 45RPM Silver badge

          Re: Eurpean format numbers?

          Again, you misunderstand. Boring isn’t an insult. I like Boring technology.

      4. FirstTangoInParis Silver badge

        Re: Eurpean format numbers?

        “ In desktop computing terms, 20MB is ample space to install an OS (with GUI), spreadsheet, word processor, database, paint programs and a few games - and still leave space over for your documents”

        Totally agree. So why is MS Word on a Mac by far the biggest file size of my apps at a whopping 1 GB?

        1. Jou (Mxyzptlk) Silver badge

          Re: Eurpean format numbers?

          Because you are in the wrong millenia :D. You need to go back to yestermillenia. And 640x350 with 16 colors, if you are rich enough to upgrade the memory of your EGA card.

    4. anothercynic Silver badge

      Re: Eurpean format numbers?

      The first. It's a patch. It's for an RTOS. It's not Microsoft bloody Office that needs a 21GB patch to work.

    5. Raphael

      Re: Eurpean format numbers?

      My old high school Computer Science teacher (in the mid to late 1990's) always taught us that if a software program couldn't on a 1.44MB floppy disk it was badly written.

  3. Zenubi
    Boffin

    Well worth a read

    A decent article on the methodology used on the shuttle software. Eye opening.

    https://www.fastcompany.com/28121/they-write-right-stuff

    1. wub

      Re: Well worth a read

      Gee, I thought AI was going to solve all of our software creation problems! </sarcasm>

      But maybe this approach could eventually come up with a system that could drive an automobile autonomously. Too bad no one would ever be able to even fantasize about that in a commercial environment...

    2. David Hicklin Silver badge

      Re: Well worth a read

      Which was summed up quite quickly : get the specification sorted before you start writing code

  4. Ashto5

    Amazing

    Every news item on the Mars rovers just smacks of quality people real engineers doing the job beautifully

    Hats off to NASA

  5. Brewster's Angle Grinder Silver badge
    Terminator

    "Once the installation was complete, Curiosity was given two days to autonomously determine whether anything was wrong and automatically revert to its older software, JPL told us."

    A dialog appeared on a touch screen saying, "Do you want to keep these changes...? They will automatically revert in 1day 23h 59min 59s..." And Curisoty had to make it's robotic arm to touch the screen and tap "Yes".

  6. bigphil9009

    Is the OS open source?

    Does anyone know if the OS is Open Source? I'd love to have a read of it!

    1. jake Silver badge

      Re: Is the OS open source?

      The Sojourner rover used a custom executive, it's base station, Pathfinder, used VxWorks.

      The other rovers all used VxWorks.

  7. Christoph

    You think that's tricky, what about the people updating the Voyagers? Megabytes? What are those?

    1. imanidiot Silver badge

      I don't think there's anything getting updated on the Voyagers anymore. Not in the least because the up-link speed is limited to about 16 bits per second and the current downlink speed is about 160 bits per second (with bursts of 2.8 kbit/s data a few times a year for plasma science data). And that speed is dropping further and further. The only reason we're still able to talk to the Voyagers at all is because of improvements of the Deep Space Network radio telescopes.

      1. jake Silver badge

        "I don't think there's anything getting updated on the Voyagers anymore."

        Voyager 1 received a software update/patch just last August, as reported in this very august journal.

  8. Fruit and Nutcase Silver badge
    Joke

    software patch for better driving

    Can NASA make it available to Tesla?

    1. jake Silver badge

      Re: software patch for better driving

      To date, they've only dumpedsent one Tesla into space.

      Still, it's a start ...

  9. Anonymous Coward
    Anonymous Coward

    Rocket science

    Bravo!

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like