Hacker News new | past | comments | ask | show | jobs | submit login
SpaceX Crew Demo-1 Mission [video] (spacex.com)
288 points by mch82 47 days ago | hide | past | web | favorite | 82 comments

I am an engineer who builds with a computer. And when I see such things as this, I sometimes spend a minute or so marveling and thinking about the complexity of building and orchestrating such a launch. In fact, I really cannot comprehend how something like this can be successfully done, given how so many things could go wrong. Yes, I understand the idea of redundancy, I understand gravity, I understand that physics and chemistry goes into this, but still, the engineer in me wonders how on earth can we make all of this work together. Really, kudos to spaceX, kudos to NASA, and and kudos to those who believe in science.

To help you with not feeling overwhelmed - they are doing it since May 6, 2002. It has taken a lot of time, of a lot of people to get here. There was a lot of failures also, along the way.

A lot of what they are doing dates back a lot further than that. The innovations SpaceX has brought to the industry are more process related than technical. SpaceX has done a great job of setting a streamlined vertical integration for their production processes, which has allowed them to iterate a lot faster than others in the industry.

That isn't to say they haven't been doing interesting things from a technical perspective (they're landing rockets on barges, after all), but the real secret to their success has been taking proven technology and doing it better/more efficiently (for instance, the fundamental design of their rocket engine, the Merlin, dates back to 50's).

So, out of curiosity, was there one person responsible for SpaceX operating in this manner? Was it Musk, or someone else?

Unless they accomplished a miracle by building a world-class engineering team from zero, there must have been a catalyst.

Elon Musk definitely deserves a huge share of the credit for SpaceX's success, but there have definitely been other folks who have made (and continue to make) critical contributions.

Just a couple examples would include Tom Mueller, who was responsible for most of the design of the propulsion systems SpaceX currently uses (including the Merlin and Draco engines), and Gwynne Shotwell, SpaceX's President and COO. SpaceX absolutely owes its existence to Shotwell, both its commercial success, and the fact that it didn't die (a number of times) are directly due to her.

From an outsider's perspective (_very_ outside), it seems like it's really the "synergy" of Elon and Gwynne that have made SpaceX what it is today.

> there must have been a catalyst

There is - having visionary, charismatic founder(s). This pattern has been successful at Apple, Microsoft, Amazon, Facebook, Netflix, Tesla\SpaceX, Google.

The resulting cost savings they (SpaceX) are bringing to the launch market is really amazing. United Launch Alliance (ULA) made a fortune on over-charging the United States Government for their National Security launches. SpaceX is now competing for those launches with a price between 1/4 to 1/3 of what ULA is charging.

Part of that also comes from the pricing model. ULA has often done cost-plus contracts, which incentivize inflating the cost. When SpaceX joined the party, most of the contracts became fixed price (i.e. the government is going to pay $X, and it's up to the launch provider to build their profit into that, and any cost overruns are the provider's problem).

> SpaceX is now competing for those launches with a price between 1/4 to 1/3 of what ULA is charging.

Is there really a competition for this much price difference?

I remember reading here a document about C programming guidelines for military / space software ( basically no dynamic memory allocation ever), but that was set a long time ago. I wonder if spaceX reinvented some parts of the software stack, or if they went along the traditional way.

I don’t expect seing rust code in the shuttle, but maybe formal proof with custom functionnal languages...

The flight software team did a reddit AMA a while back [0]. They use C++ for writing the flight software (what flies falcon, dragon, etc) running on a customized RT Linux.

[0] https://www.reddit.com/r/IAmA/comments/1853ap/we_are_spacex_...

Thanks for this! ”We’re looking to start crew trials as early as 2015.” :)

And FreeRTOS. RTLinux is only barely soft realtime.

> RTLinux is only barely soft realtime.

Linux used to run as a non-privileged process in hard real-time kernel, which taken together was guaranteeing responses in nanoseconds range.

If this is still the case (along with what Wikipedia states) , the whole system is by definition hard real-time.

Wow, that's really silly that someone went out, made a hard realtime system using Linux as the lowest priority level, and then called it RTLinux. RTLinux for years had meant Linux with the PREEMPT_RT patches.

In any case, SpaceX doesn't use Linux for hard realtime systems.

> They do not have hard realtime requirements


And I probably wouldn't use the RTLinux for a real hard realtime system if I were making the choice. Putting all of the realtime code in the same memory domain as the rest of the Linux kernel is a huge surface area for corruption. I'd probably use sel4 with a virtualized Linux to get the same semantics.

But only the underlying kernel part is actually real-time, the Linux process wouldn't be, right? That leads me to the question: Shouldn't all things in a rocket be real time? Are they "post-poning" stuff like telemetry and other communications?

All critical processes can run outside of Linux, in hard real-time fashion. Linux is used for non-critical things, like networking... The whole RTLinux includes Linux (non-RT part) and a hard RT part, for which you can write your code.

From what I understand, they are pushing the boundaries on the hardware front, i.e. relatively recent, typical Linux computers onboard, and just relying on having a few redundant ones and short flight times, rather than very radiation hardened systems like those used in satellites or real-time operating systems.

However on the SpaceX software side I think they’re fairly conservative and “boring”, so I’d guess C and similar guidelines to what you’ve mentioned.

I'd be surprised if they were able to be human flight certified without all the redundancy and hardening that any other manned spacecraft has, though.

For example, my understanding is that the redundancy approach is basically "do everything on 3 computers, vote on the outcome".

Sometimes you even have different firmware/software teams write code for each of the three different configurations (often targeting different processors/architectures, etc). Pretty cool

You can "skimp" on hardening if you use more redundancy (which is generally cheaper, and often lighter (which is the real cost savings)).

You can also skimp on hardening if the operational lifetime in space is minutes to days, instead of months to years like most satellites.

They build everything in-house - software and hardware. You can read about it in detail in Musk's biography - https://www.amazon.com/Elon-Musk-SpaceX-Fantastic-Future-ebo...

Computer engineering is new. We're still at the phase where bridges collapse and ships sink regularly.

Computer engineering is not substantially newer than aerospace engineering.

It's true, they just have different focuses. Aerospace (in general) has traded huge costs for safety and reliability. Computer engineering (in general) has traded correctness/reliability for low cost and rapid development.

It's a matter of tradeoffs. If your webapp is unusable 2 days a year people will just do something else in the meantime. If your flight control software fails for two days a year planes might come crashing down. The former is tolerable even if unpleasant from a customer perspective, thus they don't pay for flight control levels of reliability.

And it's not like this is unique to software. It's the difference between a disposable plastic fork and surgical instruments.

Yes, I agree. I was wildly exaggerating.

Life sustaining equipment is regulated and has a lot of resources spent on it to make it reliable. And toy software doesn't matter if it falls down.

I guess medium level services fall in between. Still causing inconvenience and monetary losses when they fail.

To be fair, a big portion of high profile computer engineering failures involve attackers actively searching for vulnerabilities, which bridges and ships don't need to deal with as much.

This comes down to the cost of failure. If your app crashes or hangs sometimes, some of us might get annoyed but in the end we are all used to this now. It's a different story if your engine blows up from time to time. I am sure if every failure meant a 6 month and a million dollars setback, we would be designing software differently.

I was a summer intern at CERN a few years back. I had the same feeling of watching thousands of people working on projects together including tons of code, wiring, machinery, and complex physics to measure extremely hard things at ridiculous precision. I could never really shake the feeling that it should have been practically impossible to make such projects work. It is hard enough to not make bugs in personal projects, but when you are hundreds of people writing code and plugging in wires over time, some mistakes should appear that breaks the results.

Last night watching the launch I said to my friend: If I worked at SpaceX I would be second-guessing everything I'd ever done every time there was a launch.

"Did I finish that weld good enough?" "Yes, we checked it 1000 times" "But what if I missed something?"

And clearly, those kinds of mistakes have happened. And that's why we check 1000 times instead of 500.

>>In fact, I really cannot comprehend how something like this can be successfully done, given how so many things could go wrong.

I have no idea how it is actually done. But my guess is that lots and lots of automated testing. It is the only way to make sure that any changes you make do no break some other critical parts.

Yes, lots of testing.

Sadly, not as automated as you would hope/think.

The industry is working toward fuller automated testing, but it is much harder to do with “real hardware” in the loop.

Part of the reason why space has [historically] been expensive is exactly because you have to have specialized humans doing a ton of tests.

One reason Elon has been able to lower costs by reusable rockets is exactly because you don’t have to do as much testing per launch.

Totally understand what you mean. The complexity is mind boggling. And as more and more processes become software driven, the programmer's responsibility increases manifold. It's a wonder of engineering and team work.

Agree. Amazing accomplishment by SpaceX, cannot fathom how many things could have gone wrong, and yet they persevered anyway.

Looks like they nailed the launch: first stage recovered and Dragon 2 separated successfully. Congratulations SpaceX!

Docking with the ISS is scheduled ~27 hours from now on Sunday, March 3 at 10:55 UTC (5:55 EST).


Anyone know why they choose a launch time and trajectory such that the arrival at ISS is more than a day later? It seems like you could choose to arrive at the ISS almost immediately after reaching orbital velocity if you wanted.

They don’t reach the stations orbital velocity immediately after launch though. What they do is launch into a lower orbit behind the station. Lower orbits have a shorter orbital period, so they gradually catch up and raise their orbit as they get closer.

If the went into a ballistic trajectory directly at the station, there is a risk of debris from the launch, such as paint flecks, scraps of metal, etc hitting the station. Also a lower initial target orbit makes various abort scenarios easier. Then of course another poster has pointed out they need time to check and validate all the vehicles systems.

Generally in space it’s best to avoid doing anything in a rush if you can avoid it. In recent years the Russians moved to a 6 hour launch to rendezvous window which is pretty quick really. This is what made it possible to capture footage of the launch from the station.


Technically they do reach the stations velocity. In fact they exceed it. The lower orbit is slightly faster. Total energy is lower, but they are moving faster than the station.

A counterintuitive part of spaceflight is that often you have to first accellerate in order to slow down.

Makes sense. Get up to a higher speed and it’s easier to do a controlled slow down. Than having to speed up after getting into orbit near another orbiting body.

That's not really it. "Speeding up" and "slowing down" are equally easy (or hard). They're both acceleration, just in a different direction.

The reason it's going faster is because it's lower. The lower an orbit, the faster the thing is moving. In order to slow down, you have to accelerate twice (I'm using the term "accelerate" here to refer to "going faster in the direction you're already going").

The first acceleration raises the far side of your orbit. You then have to "climb" up to that new higher orbit. Once there, you accelerate again to raise the low side of the orbit (otherwise you'd pick up all that speed again then "falling" back down to the lower altitude).

At the end, you're in a new, higher, orbit, going slower than when you started.

So they have time to validate the systems are working correctly. A direct launch would leave little margin for error, especially on a test flight.

Edit: now I think more it also allows for variations in launch performance. Soyuz does a three day rendezvous as back when the system was designed the accuracy required wasn’t possible, though now they’ve planned a same-day docking.

Soyuz has done "fast track" (same day) approaches for years now.

tl;dr because the ISS orbit is not equatorial, choosing the right launch time is non-trivial and solutions are only approximate.

ISS launch windows are complicated - you have to match both plane (i.e. the Earth needs to turn so that the Cape/Baikonur is under the ISS's orbit path) and phase (i.e. at the time the plane match happens, the station needs to be at the right part of its orbit for the spacecraft to meet the ISS right after launch).

A launch site crosses the plane of the ISS orbit twice a day, but the phase angle at those crossings is often quite far off of optimal - you want the ISS to be a bit behind at launch so that by the time your spacecraft gets up to the right altitude/speed it's matched up. So you have to find the minimum phase angle at launch window for a targeted several weeks or so, then have the ISS make slight orbit changes to bring the phase angle closer to optimal. Once you're up and have as low of a phase-angle difference as possibly, you then have to spend a bunch of 90-ish-minute orbits getting your position in orbit matched up to the ISS.

At fastest, you can get down to the single-digit-hours range, but that takes a good selection of launch window, a bit of a burn in advance from the ISS to tweak its phasing, tracking systems that don't waste an orbit determining where exactly you are, and no scrubs.

This article is a good example of the process (but not the physics/geometry): https://www.nasaspaceflight.com/2018/07/progress-ms-09-super...

> The long sought attempt at launching a Russian Progress resupply vehicle to the International Space Station and having it rendezvous with the orbital complex after just two and a half orbits and just under 4 hours in space is being attempted.


> As with the other fast track rendezvous attempts, the reboost and phasing alignment of the Space Station with the Baikonur Cosmodrome is only available for this launch day. A scrub to today’s instantaneous launch of Progress MS-09 would have resulted in the craft having to fly a two-day, 36 orbit phasing profile to the ISS on a realigned launch date later this week.

If you don't mind me simplifying your answer a bit...

Imagine the orbit of the ISS like a tilted hula hoop around the Earth, with the Earth revolving inside it. Because the Earth rotates once every 24 hours, any given spot on Earth will be directly underneath that hula hoop twice per day (once on either side of the hoop).

When launching to the ISS, you need to launch when that orbit "hoop" is directly overhead. That's the bit that really matters, because you need to be in the same orbit. The ISS itself is almost certainly not overhead (it may be on the other side of the planet entirely), and so it will take some time to catch up to it.

From Eric Berger's twitter[1]

>If the first stage lands tonight, SpaceX will have successfully landed 35 of its 69 launches, meaning that MORE THAN HALF of its rocket launches will have safely returned.


Important to note that for many of their launches they weren't trying to land. They had 42 landing attempts, so over 80% success rate.

Same thing happened to NASA, started at 43.6% success rate for 1950s then 85.1% for 1960s, etc. etc. https://space.stackexchange.com/questions/1659/what-is-the-s...

This is so exciting! I had not heard this was happening and came to my favorite site to check out some bed time reading and find this! Awesome

Ah, here I am, setting under the blanket and drinking a cup of tea with lemon, watching a rocket 9600km away from me that's about to go to space in few minutes.

What a time to be alive.

Pretty great friday night!

It's Saturday 11AM here, though.

Saturday night here.

What time zones do rockets use?

UTC is the time zone of space missions usually.

Probably the one that mission control is using.

Pretty great Saturday morning!

pretty great Saturday morning!

The NASA TV feed seems to be higher quality than youtube (and has identical content).


Had same quality issues - then just told YouTube to use 720p instead of auto-resolution and it got all better.

The NASA feed appears to be delayed by ~45 seconds from the YouTube feed.

but it is more delayed :)

Man this makes me miss when I was living at UCF - we'd see shuttles taking off at Kennedy space center from East Orlando

I grew up in southwest Orlando. We'd go outside during elementary school to watch the launches, we'd interrupt little league games and football games to watch the launches. Kids and parents all just found it so magical and amazing. Those solid rockets were clearly visible even 70 miles away.

I am 180+ miles South from the pad and it is visible from here! I love watching them.

I’m at Kennedy Space Center on the causeway across from the launch pad. Just watched it from approximately 5 miles away. Insane.

Thanks for posting this. I always watch the launches with my kids and I'd totally forgotten it was this morning.

Post Launch Interview w/ Elon Musk & NASA Team Discuss SpaceX Dragon 2 Launch Success @ https://www.youtube.com/watch?v=HuXPLtJXd14

Goosebumps when stage 1 stuck that landing.

Godspeed, Ripley!

Same here. Watching rockets land from orbit will maybe never get old.

Awesome job to everyone at SpaceX! Godspeed for the rest of the mission!

Everything went well so far. Lift off, stage separation, first stage Landing, Dragon separation. They have honed these steps over the past several years. The ISS rendezvous is going to be just as successful. Great going SpaceX/NASA.

Kudos to the entire team of SpaceX, Nasa and Ripley (dummy) for this mission. This takes a great amount of co-ordination and integration to make this complex mission successful. Living in great era of innovation and advancement in space.

Launch window opens at 2:49 a.m. EST, or 7:49 UTC.

It also closes at 2:49 a.m. EST (Falcon 9 launches to the ISS have instantaneous launch windows).

Amazing footage. The precision Landing of stage 1 was something I hasn't expected.

This was actually one of the less precise landings. Generally it's right on the X. It looks like it may have slid a bit after touchdown.


no crew onboard

(still a great achievement)

If anyone is confused, the posted unofficial link is a rebroadcast of the Nusantara Satu mission and is not the Crew test.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact