I'd be curious to know some technical details on the deployment process, such as the byte size, how long it took to send, any unique challenges. It must be high stakes. Imagine if they accidentally bricked it with a bad update.
This has likely changed, especially after this most recent update, but:
> "The process took four days"
> "On the first day of the software update, the team deployed a temporary version of the new software to the rover's primary computer. This version was only held in RAM so that the computer would revert back to the previous version when it restarted. This gave the team a chance to make sure everything was functioning properly. On the second day the team deployed a more permanent version of the update to the computer's file system. On the third day they deployed the temporary version to the backup computer and on the fourth day they deployed the permanent version to the backup computer."
> "every interaction takes about 30 minutes: 14 minutes to send a signal to the rover in space, 14 minutes to get a response"
> "it only took a few minutes for the software to actually install"
> "Curiosity Rover is powered by a pair of computers built by BAE Systems. These RAD750 computers use a 10-year-old IBM PowerPC microprocessor running at 132 megahertz. It has just 120 megabytes of random access memory... doesn’t have enough memory for both the landing and surface missions"
> "Curiosity doesn't have a dedicated computer [so it can autonomously navigate during one continuous drive]. Instead, it drives in segments, halting to process imagery of the terrain after each segment... The new software will help the venerable rover process images faster"
> "Curiosity's aluminum wheels... began showing signs of broken treads in 2013... sharp rocks were chipping away at the treads... The new software [introduces] two new mobility commands that reduce the amount of steering Curiosity needs to do while driving in an arc toward a specific waypoint."
So the rover can cover more distance per unit time, with less tread wear per unit distance
> "Those are just two of about 180 changes implemented"
> "The software update will also enable them to upload software patches more easily than in past. And it will help engineers plan the motions of Curiosity's robotic arm more efficiently and point its "head" atop the mast more accurately."
When I read news about Curiosity I am always fascinated. And the fact that today it has exceeded its original mission duration of 2 years by a factor of 4 is impressive.
16 comments
[ 4.8 ms ] story [ 56.8 ms ] threadThis has likely changed, especially after this most recent update, but:
> "The process took four days"
> "On the first day of the software update, the team deployed a temporary version of the new software to the rover's primary computer. This version was only held in RAM so that the computer would revert back to the previous version when it restarted. This gave the team a chance to make sure everything was functioning properly. On the second day the team deployed a more permanent version of the update to the computer's file system. On the third day they deployed the temporary version to the backup computer and on the fourth day they deployed the permanent version to the backup computer."
> "every interaction takes about 30 minutes: 14 minutes to send a signal to the rover in space, 14 minutes to get a response"
> "it only took a few minutes for the software to actually install"
---
On the hardware: https://venturebeat.com/business/sending-a-software-update-t...
> "Curiosity Rover is powered by a pair of computers built by BAE Systems. These RAD750 computers use a 10-year-old IBM PowerPC microprocessor running at 132 megahertz. It has just 120 megabytes of random access memory... doesn’t have enough memory for both the landing and surface missions"
NASA have been using RAD750s since 2005, most recently on JWST. BAE has a successor in the RAD510, but it looks like NASA are switching from PowerPC to RISC-V with the SiFive X280: https://www.talospace.com/2022/09/the-rad750s-successor-look...
> "Curiosity's aluminum wheels... began showing signs of broken treads in 2013... sharp rocks were chipping away at the treads... The new software [introduces] two new mobility commands that reduce the amount of steering Curiosity needs to do while driving in an arc toward a specific waypoint."
So the rover can cover more distance per unit time, with less tread wear per unit distance
> "Those are just two of about 180 changes implemented"
> "The software update will also enable them to upload software patches more easily than in past. And it will help engineers plan the motions of Curiosity's robotic arm more efficiently and point its "head" atop the mast more accurately."
Curiosity is powered by an RTG so it seems like the wheels are its biggest risk of failure
I wonder what language it's written in.
Before any change gets uploaded, I'd imagine it goes through days/weeks (possibly months) of simulation and analog testing.
Not to mention the project requirements are not changing often and are going to be very clearly defined.
As I'm sure you know, Agile shines where requirements are fluid and not clearly defined.
https://www.cnet.com/tech/tech-industry/java-runs-remote-con...
"NASA Mission Software Development on the Eights: Java 8, JavaFX 8, and NetBeans 8"
https://www.youtube.com/watch?v=6O9V5nc13h8
https://isocpp.org/blog/2015/01/cppcon-2014-c-on-mars-incorp...