Ingenuity had more computing power than all NASA deep space missions combined
arstechnica.com
arstechnica.com
I remember he was ranting about how they used Python. Like they had so much compute power available they could just "waste" it running "slow as hell" Python. It was such a departure from all his previous rover missions where they very judiciously optimized low level code.
When we met up in 2023, we were still surprised he was working. He was too since he didn't expect Ingenuity to be in service for that long, but he figured, "well, no one's going to train a replacement for me, might as well see my last mission to its end."
I don't know about the dynamics of how this plays out usually in NASA but I would think this problem is there and the approach is probably the same too.
The code that runs on Mars was always written by career programmers, not the rocket scientists. It was the mentality that they didn't have to carefully plan resource use, or even care too much about it, and if it didn't work, they could just ship a patch was just a giant cultural shock for them, because it was so different from how they wrote mission critical software in the last several decades.
"The miracle of Ingenuity is that all of these commercially bought, off-the-shelf components worked. Radiation didn't fry the Qualcomm computer. The brutal thermal cycles didn't destroy the battery's storage capacity. Likewise, the avionics, sensors, and cameras all survived despite not being procured with spaceflight-rated mandates."
If you look at slide 15 of this presentation [1] "TID (Total Ionizing Dose) Mitigation", the ISS would be in the "LEO-LOW" category on the curve. When you start looking at the MEO and GEO orbits you have to start contending with the trapped proton and electrons of the radiation belts. Not a whole lot in MEO outside of the various GNSS constellations, but tons of things in GEO that still have doses that are orders of magnitude more.
[0] https://mepag.jpl.nasa.gov/topten.cfm?topten=10#:~:text=Mars....
[1] https://www.osti.gov/servlets/purl/1524958
Edit: Also worth noting that the radiation environment for Single Event Effects (SEE) is going to be comparatively worse than the total dose when compared to the ISS. SEE are cause by individual high energy particles. This will be worse on Mars due to the lack of magnetic field. So from that perspective it is quite a bit worse. However, if you go look at my other comments in this thread you can see that they specifically did SEE testing and not TID testing on the Qualcomm chips.
Does anyone know what type of camera they used on the rovers.
This is what blows my mind. a 2015 smart phone has more power than everything else. proof that modern programming can be massively wasteful on resources.
Depends what you consider resources. CPU cycles are resources. Programmer hours are resources.
Not really. The things that regular end-users do on their smartphones are computationally much more intensive than what you deploy on the edge in space. I'll be the first to gripe about the inefficiencies of modern front-end programming, but the software on a Mars rover also just doesn't have that much number-crunching or throwing around ginormous assets to do.
A much more interesting question is to ask what you could do on Mars if you had that compute power. For example, how realistic is it to expand further on autonomous capability.
As a simple example, greater autonomy might allow the rovers to do more by avoiding the number of times where they have to wait for the speed of light (20 minute one-way latency plus annual blackouts) & bandwidth delays for someone at JPL to learn about an obstacle, decide what to do, send commands, and see what happens. They’ve spent a lot of time doing that cautiously because the failure mode of some outcomes is losing a rover, but there are other scenarios where the same is true in the other direction so I’m sure they’re keenly working on ways to make it better able to handle safety navigation and various recovery scenarios for things like losing communications, but I’d expect that might come in the form of a system which operates as they have but logs what it would have done so they can compare the human and robotic commands.
I guarantee Starlink isn't using components from the 1990s.
It's only very recently that they've started to look at what the sensors are giving onboard the craft. I'm glossing over some very important details, but mainly, the sentiment holds: Spacecraft didn't have to do much, so they didn't have to think much.
Alternatively, consider the possibility that what a smartphone does is a lot more computationally complex than you realize.
Disclaimer: I worked on smartphone chips for many years, including the Qualcomm chip that ended in Mars.
The things that seem the most computationally complex, like viewing hd video streamed over the internet in realtime, work fine on my phone. But mundane tasks I know shouldn't by any rights be complex regularly take forever to complete. Because they're probably negotiating some nonsense protocol for the bluetooth headphones I connected three weeks ago while facebook tries to access my gps signal for the tenth time this second while sending an updated list of every gesture, tap, and scroll to thousands of separate parties, each individually as a separate task
Have you considered the possibility that the phone is doing what most phone users want, and that their needs being more complex than yours doesn't mean that "programming can be massively wasteful on resources"? Instead, the phone you purchased is not fit for your purposes.
> But mundane tasks I know shouldn't by any rights be complex regularly take forever to complete
It is also possible that what it takes to complete that task is somewhat more complex these days than you realize. Not because it's poorly programmed, but because the software is designed to support many more features than you are currently using. An individual user may only rely on 5% of the features, but different users want a different set of 5%. Supporting other people's needs isn't any more wasteful than supporting your needs.
Or is just crazy luck and the thing avoided the beams ? Might be plausible, if the last flight is not explained, it was the one flight with less radiation luck ?
Edit: database here, but I haven't looked for data on the chip: https://radhome.gsfc.nasa.gov/radhome/raddatabase/raddatabas...
I wonder why they are testing GPUs? I would imagine there are at least some people somewhere writing papers about sending GPUs on rovers etc for better on-device AI/ML (e.g. image processing)
Also: brief mention of raspberry pi (no dedicated wreite-up like the GPU): https://nepp.nasa.gov/files/27888/NEPP-CP-2015-Campola-Paper...
Not surprised that they didn't do TID as it was only supposed to be a 90 day demo mission so not terribly long. And TID can be a costly test because it can take so long.
As to the GPUs, yeah the main application is some processing when you are comm bandwidth constrained. Then you can send down processed products or snapshots from something that is collecting a lot of data (like large imager or high bandwidth SDR)
Goddard does quite a lot of work on camera-based RPO (rendezvous and proximity operations) which require cameras and lidars to image a client spacecraft and calculate relative pose. This is the single most computationally taxing operation for robotic satellite servicing missions.
Rather, they're turning to other options to achieve rad tolerance in critical systems, stuff like soft cores specifically designed for redundancy running on radiation hardened FPGAs.
Also, the rad tolerant parts aren't there to do the crazy high speed work. When people talk about voting architectures with redundant COTS parts, what do you think is counting the votes and resetting the effected systems?
Interesting to see how the lithium batteries did with such extreme temperature cycling. And here I am bringing my mower batteries inside in a cold snap.
As for launching several cheap, redundant probes - I think the biggest issue would be the cost of the scientific instruments. I don't have the background to know how much money could be saved you by using commercially available equipment. The basic scientific requirements might be too specialized for cheap commercial equivalents to exist, though maybe not; I really don't know.
I am surprised you are mowing the lawn and a cold snap though
In addition, being on a planetary surface greatly reduces the thermal cycling. In free space, the instantaneous thermal gradient on your spacecraft could be several hundred degrees, which the spacecraft either has to mitigate via thermal control or it just has to take; usually it will do some of both, so the electronics do need to survive a not insignificant thermal cycle.
You never get that on Mars. The planet is a huge heat sink.
I notice the two flight control MCU's connected to the Qualcomm CPU were still radiation-hardened.
For example NASA's Lucy mission that launched in 2021 had a just under $1 billion budget, in which $560m was spacecraft development and $280m was for keeping a mission team staffed for 12 years. The launch on an Atlas V was $150m. What's $250k for a radiation hardened CPU in that? It's not even peanut crumbs. And as expensive as the launch was, even if SpaceX and other new launch companies drive it down by 90%, the budget for this mission would still be about a billion dollars.
Heck, even if you started series production of probes and their instruments and as such were able to amortize the development costs over a bunch of spacecraft, the fact remains that if you wanna go somewhere interesting it's gonna take years and you're gonna have to have a staff of mission specialists on retainer for most of that time. You can't disrupt away the fact that space is really big, at least not until someone discovers some new physics.
Wow! Can’t wait for Dragonfly!
I think that's a bit exaggerated. The RAD750, which has been used for all sorts of devices, runs from 110 to 200 MHz, typically. A Snapdragon 801 is a quad core 32 bit CPU that can run up to 2.36 GHz. Even if the Snapdragon's IPC is twice that of the PowerPC, even if the Snapdragon is run at its full clock speed (which it certainly is not), and even if the comparison was with the slowest 110 MHz clock of the RAD750, that'd be a factor of 172 times faster.
I think that the person saying this is comparing the floating point throughput of the RAD750 and other CPUs sent in to space with the floating point throughput of the Adreno GPU built in to the Snapdragon 801. That's both misleading and not how things work. But I suppose it makes for catchy headlines, even if it's not factually correct.
Even if the IPC were FOUR times that of the PowerPC and we accepted the other assumptions in favor of the Snapdragon, that'd make one quad core Snapdragon 344 times faster than the slowest RAD750, so if four or more RAD750s have ever been sent to space, then that'd make the Snapdragon LESS than 100 times faster than just four RAD750s. That's not taking in to account all of the other CPUs used in space missions.
Larger caches and faster memory are necessary to just maintain the IPC - they don't mean that the Snapdragon is faster per clock by virtue of those alone.
I have a 600 MHz PowerPC 750 system (original iMac with Sonnet accelerator) and a Cortex-A15 system (the Cortex-A15 is a 32 bit ARM from around the same time as the Snapdragon 801, and which has better IPC than the Snapdragon), and I can say that the IPC of the Cortex-A15 is much closer to 1.5 times than 2 times that of the PowerPC.
"Radiation hardened" is what I've heard so far. But as I understand it, the work done to actually improve chips is small compared to the huge number of certifications they have to test / pass. Sounds like a LOT of paperwork.
It's similar with in-flight infotainment or in-car systems. Back in 2020, when I was shopping for cars, the car salesperson's big pitch on innovation was "touchscreen". I was very underwhelemed.
is as an indicator of where we are in the Moore's Law (etc.) type views on the inverse performance and cost curves in our computational infrastruture.
There was some implicit dotted line in N-space representing the necessary reliability, performance, weight, etc. characteristics required for multi-million-dollar NASA missions.
The take-away is that we have now advanced the industry generally such that with are we can be over that line.
I can connect this, observationally, to a hardware startup I was employee #1 at many years ago. At the time a friend started his company, it had only just—perhaps in a 12 month window—become viable for two people to design, program, and ship a hardware product based on embedded systems on microcontrollers, fast-turn PCB fabrication, and to do mechanical design in e.g. Solidworks on a PC. At the time, data sheets were still delivered via FAX trees. McMaster-Carr and Digikey were all we eneeded. It COULD be done, and we did it.
It felt at the time like what we were able to do represented a collective crossing of some event horizon. The garage was back, baby.
That we have now crossed a similar threshold wrt putting largely autonomous flying bots on Mars I didn't foresee. Nonlinearity is hard.
But at moments like these I do like to try to look over my shoulder, ahead. Where in another 25 years?
I'll play. Autonomous mesh-networked group-mind self-repairing and possibly bootstrap-replicating vestigial von Nuemann probes, populating and mapping the ocean worlds of the gas giants.
And I'll bet that's conservative—one X factor being just how long it takes to get out there. But I'm cautiously optimistic we will be getting there in sub-year travel times by then.