So many interesting details in this article. Snapdragon 801-based hw running Linux, sensor fusion from three sensors whereof some bought COTS from sparkfun (who make breakout boards for sensors, basically the sensor datasheet recommended design). 3 flights planned, but potentially more which will be planned after the three first. 30 day lifetime window, due to dependecy on the rover, which needs to conserve resources.

I would looooove to know more more more about this. What did dev of this look like (eg simulators)? What's the flight envelope? What are the most important risks and how are they mitigated? What internal discussions took place (do this, prio that, don't do X etc).

Just so much interesting stuff! Can't wait :)

edit: from wikipedia: "Each flight is planned to be at altitudes ranging from 3–5 metres (10–16 ft) above the ground.[1] In up to 90 seconds per flight, it could travel as far as 50 metres (160 ft) downrange and then back to the starting area".

"The helicopter uses counter-rotating coaxial rotors about 1.2 metres (4 ft) in diameter".

Etc. Recommend the wiki page on it: https://en.wikipedia.org/wiki/Mars_Helicopter_Ingenuity

Actually the computing power of Ingenuity surpasses one of the Perseverance rover (and probably by a lot). The rover has a radiation hardened RAD 750 CPU (based on PowerPC 750 architecture, which was introduced in 1997 to compete with Intel's Pentium II [1,2]) with 250-150nm technology process operating at 200Mhz[3]. Ingenuity's Snapdragon 801 can reach up to 2.5 GHz and is based on more energy-efficient 28nm modern (released in 2014) ARM architecture [4]. This CPU even has Wi-Fi and GPS, though probably not much of a use on Mars :)

1. https://arstechnica.com/science/2019/11/space-grade-cpus-how...

2. https://en.wikipedia.org/wiki/RAD750

3. https://mars.nasa.gov/mars2020/spacecraft/rover/brains/

4. https://www.qualcomm.com/products/snapdragon-processors-801

Do you know why radiation hardening is not needed for the Ingenuity? Is there a mechanical shield? Or is it just the shorter runtime that makes the use of an off-the-shelf processor acceptable?

I had the opportunity to go down to JPL and speak with team members about this design decision. The space hardened processors are not fast enough to do real time sensor fusion and flight control, so they were forced to move to the faster snapdragon. This processor will have not flips on Mars, possibly up to every few minutes. Their solution is to hold two copies of memory and double check operations as much as possible, and if any difference is detected they simply reboot. Ingenuity will start to fall out of the sky, but it can go through a full reboot and come back online in a few hundred milliseconds to continue flying.

In the far future where robots are exploring distant planets, our best tech troubleshooting tool is to turn it off and turn it on again.

Do you have a source for those fast reboots? It's running Linux after all

is Ingenuity running Linux? All of the flight controller software i've seen for autonomous drones don't use an operating system.

Yep, from the article:

"This the first time we’ll be flying Linux on Mars. We’re actually running on a Linux operating system. The software framework that we’re using is one that we developed at JPL for cubesats and instruments, and we open-sourced[0] it a few years ago. So, you can get the software framework that’s flying on the Mars helicopter, and use it on your own project. It’s kind of an open-source victory, because we’re flying an open-source operating system and an open-source flight software framework and flying commercial parts that you can buy off the shelf if you wanted to do this yourself someday. This is a new thing for JPL because they tend to like what’s very safe and proven, but a lot of people are very excited about it, and we’re really looking forward to doing it."

[0]: https://github.com/nasa/fprime