Author Topic: SpaceX Software  (Read 32713 times)

Offline zt

  • Member
  • Posts: 89
  • Liked: 10
  • Likes Given: 17
Re: SpaceX Software
« Reply #40 on: 09/23/2013 05:56 pm »
My experience: Very few good mathematicians or good mechanical/aerospace/control engineers are also good programmers and software designers. If you can master both the maths/physics/engineering and the software, you'll be very valuable for a company such as SpaceX.

Oh, and write a lot of open-source software, preferably on github.com.


That being said, I am a mechanical engineering student with a fairly extensive programming experience. Extensive, as in I can give upper level CS students a run for their money. Now, that being said, will any companies be willing to let their mechanical engineers touch production software?

If they do code reviews for code produced by programmers, they might be willing to review and accept code produced by an engineer. But, after a decade of industry experience, I have to say that most CS grads have very little understanding of software engineering or how to work in teams on large projects, so giving them a run for their money is not hard.

Offline AJW

  • Full Member
  • ****
  • Posts: 626
  • Liked: 584
  • Likes Given: 66
Re: SpaceX Software
« Reply #41 on: 01/22/2014 10:08 pm »
Apologies for the Necro-Thread, but didn't see a more appropriate active forum…

Saw an interesting job posting today…. If you like KSP and rocket sims, SpaceX may be looking for you.

http://forum.kerbalspaceprogram.com/threads/66897-Simulation-Engineer-Opening-at-SpaceX?s=af20e5ae315f7a4f114fb22e33acab1c&p=922928#post922928

Offline Lar

  • Fan boy at large
  • Global Moderator
  • Senior Member
  • *****
  • Posts: 11641
  • Saw Gemini live on TV
  • A large LEGO storage facility ... in Michigan
  • Liked: 8727
  • Likes Given: 7354
Re: SpaceX Software
« Reply #42 on: 01/23/2014 01:35 pm »
Thread trimmed of a general argument about C, Linux, what Linus thinks, and a fair bit of other stuff not really on topic... even by my somewhat lax standards.  Which argument was a response to a many months old posting because the thread resurfaced. 

Yeesh.
"I think it would be great to be born on Earth and to die on Mars. Just hopefully not at the point of impact." -Elon Musk
"We're a little bit like the dog who caught the bus" - Musk after CRS-8 S1 successfully landed on ASDS OCISLY

Offline Llian Rhydderch

  • Full Member
  • ****
  • Posts: 1056
  • Terran Anglosphere
  • Liked: 900
  • Likes Given: 6914
Re: SpaceX Software
« Reply #43 on: 03/04/2014 04:36 am »
This article was published in IEEE Spectrum recently:  Avionics Guide to SpaceX Rockets, 28 Jan 2014.

It is a profile on the guy who "oversees avionics R&D, leading a group of about 60 people. On his to-do list is the development of sensors for SpaceX’s newest project, a reusable rocket known as Grasshopper, which has already completed several vertical-takeoff, vertical-landing test flights."

His department of 60 employees "is responsible for all the electronics in the SpaceX rockets and capsules, which include sensors, communications equipment, guidance and navigation systems, and engine-control mechanisms." 

It doesn't say much about the software, but since the software must execute on, and receive all real-time inputs from, and output all the control flows to, this hardware of various types, and since there has so little published on the avionics and embedded software at SpaceX, I thought others who follow this thread might be interested in it. 

Re arguments from authority on NSF:  "no one is exempt from error, and errors of authority are usually the worst kind.  Taking your word for things without question is no different than a bracket design not being tested because the designer was an old hand."
"You would actually save yourself time and effort if you were to use evidence and logic to make your points instead of wrapping yourself in the royal mantle of authority.  The approach only works on sheep, not inquisitive, intelligent people."

Offline john smith 19

  • Senior Member
  • *****
  • Posts: 7935
  • Everyplaceelse
  • Liked: 1350
  • Likes Given: 8993
Re: SpaceX Software
« Reply #44 on: 03/04/2014 11:36 am »
Returning to the actual topic of this thread....

Yes Spacex runs Linux and likes ARM processors for the vehicle. They are low power and in embedded terms (and here's the important thing) goo enough to get the job done.

So I would suggest ARM Assembler on the list of stuff to learn.

NASA is a bit trickier. There used to be a guy on the Shuttle threads who worked for what was IBM Federal Systems (I think they are now part of Loral but basically the same outfit in Houston) that writes their software. It used to be HAL/S and I think it's now Ada, which is also an embedded language but a very different beast to C/C++.  You may sneer. It's what PWR use for their RL10 and other work, and they reckon it's saved them a ton of cash.

You should be aware that the whole CMU "Capability Maturation Model" of how good a software development operation is was calibrated around how IBM FS developed software.

If you want some insight into to how they did it I'd suggest "Structured Programming" by Linger, Mills and Witt, who worked there. People talk a lot about "provably" correct code and all sorts of super duper proofing tools. This book recommends the human brain as the most advanced proof tool, and how to use it.  :)  :)

A lot of it was simply having a process that put a bunch of people in a room to eyeball each others code and spot mistakes and misunderstandings, fixing the problem and not blaming the programmer. Simple but effective.

I'll note 2 general points. 1)"Premature optimization is the root of all (programming) evil." The original Macintosh team wrote the OS in Pascal before they translated into Motorola assembly because they wanted to know they had software that worked right before it worked fast.  2)Spell check is your friend. As is being able to touch type, a skill that is supposedly going to be obsolete "Real soon now."  :)  :)
[EDIT But spell check is not enough. Homophones (sound the same but different spelling, like trie and tree data structures or die and dye) are a PITA  ]
As others have said get used to some kind of source code control system. One oddity no one has mentioned.
Labview. Handy for instrument control but also building control systems and graphing. I suspect when you look at a lot of shots of the Spacex launch control, those are what you're seeing.
« Last Edit: 03/05/2014 09:47 am by john smith 19 »
BFS. The worlds first Methane fueled FFORSC engined CFRP stainless steel structure A380 sized aerospaceplane tail sitter capable of flying in Earth and Mars atmospheres. BFR. The worlds biggest Methane fueled FFORSC engined CFRP stainless steel structure booster for BFS. First flight to Mars by end of 2022. Forward looking statements. T&C apply. Believe no one. Run your own numbers. So, you are going to Mars to start a better life? Picture it in your mind. Now say what it is out loud.

Offline docmordrid

  • Senior Member
  • *****
  • Posts: 5454
  • Michigan
  • Liked: 2843
  • Likes Given: 1
Re: SpaceX Software
« Reply #45 on: 03/05/2014 07:03 am »
The DragonLab factsheet says it uses VxWorks (as an embedded RTOS?). Has that changed?

http://www.spacex.com/sites/spacex/files/pdf/DragonLabFactSheet.pdf

Also listed as being used in SpaceX's flight computers on Wind River's customers page

http://www.windriver.com/customers/customer-success/aerospace-defense/

« Last Edit: 03/05/2014 07:24 am by docmordrid »
DM

Offline dragon44

  • Full Member
  • *
  • Posts: 106
  • Liked: 8
  • Likes Given: 0
Re: SpaceX Software
« Reply #46 on: 03/06/2015 07:01 pm »
I haven't seen this posted yet. Some discussion of SpaceX at the Game Developers Conference 2015 at r/spacex. Short talk given by Jinnah Hosein, VP of Software.

u/venku122 attended the talk and posted some notes. Some things that might not have been mentioned before include
* Opening a software office in Silicon Valley
* FSW almost done with landing software, moving to Dragon v2
« Last Edit: 03/06/2015 07:01 pm by dragon44 »

Offline king1999

  • Full Member
  • **
  • Posts: 276
  • F-Niner Fan
  • Atlanta, GA
  • Liked: 160
  • Likes Given: 785
Re: SpaceX Software
« Reply #47 on: 03/06/2015 08:54 pm »
The DragonLab factsheet says it uses VxWorks (as an embedded RTOS?). Has that changed?

http://www.spacex.com/sites/spacex/files/pdf/DragonLabFactSheet.pdf

Also listed as being used in SpaceX's flight computers on Wind River's customers page

http://www.windriver.com/customers/customer-success/aerospace-defense/
No longer on WindRiver's English page (still on Japanese page and Google Cache).

Offline IRobot

  • Full Member
  • ****
  • Posts: 1296
  • Portugal & Germany
  • Liked: 297
  • Likes Given: 262
Re: SpaceX Software
« Reply #48 on: 03/06/2015 09:01 pm »
I'll note 2 general points. 1)"Premature optimization is the root of all (programming) evil." The original Macintosh team wrote the OS in Pascal before they translated into Motorola assembly because they wanted to know they had software that worked right before it worked fast. 
It is a common mistake, but I think the biggest root for all software problems is using purist software programmers, with no connection with the real world.

One oddity no one has mentioned. Labview. Handy for instrument control but also building control systems and graphing. I suspect when you look at a lot of shots of the Spacex launch control, those are what you're seeing.
LabView is very slow with complex systems.

Offline Lee Jay

  • Elite Veteran
  • Global Moderator
  • Senior Member
  • *****
  • Posts: 6713
  • Liked: 1106
  • Likes Given: 140
Re: SpaceX Software
« Reply #49 on: 03/06/2015 09:17 pm »
One oddity no one has mentioned. Labview. Handy for instrument control but also building control systems and graphing. I suspect when you look at a lot of shots of the Spacex launch control, those are what you're seeing.
LabView is very slow with complex systems.

Yes and no.

I use LabView (which I don't really like) as a real-time control platform at work.

We run a fairly complex real time controller at 400Hz using a real-time target (not a Windows PC).  That works fine.  The really fast stuff runs pipelined in an FPGA but the FPGA code was developed and compiled in Labview.  That code can execute at 1.6MHz, and it's of moderate complexity.

Offline dunderwood

  • Full Member
  • *
  • Posts: 158
  • Liked: 6
  • Likes Given: 1
Re: SpaceX Software
« Reply #50 on: 03/06/2015 10:47 pm »
You'd be surprised how much you can do with LabVIEW. 

Offline Patchouli

  • Senior Member
  • *****
  • Posts: 4447
  • Liked: 203
  • Likes Given: 408
Re: SpaceX Software
« Reply #51 on: 03/06/2015 11:21 pm »
Returning to the actual topic of this thread....

Yes Spacex runs Linux and likes ARM processors for the vehicle. They are low power and in embedded terms (and here's the important thing) goo enough to get the job done.


I thought Spacex used RAD750 processors for their vehicles.

Offline dragon44

  • Full Member
  • *
  • Posts: 106
  • Liked: 8
  • Likes Given: 0
Re: SpaceX Software
« Reply #52 on: 03/07/2015 12:16 am »
No, they don't use rad hard components (at least as of a few years ago).
http://aviationweek.com/blog/dragons-radiation-tolerant-design

Offline inventodoc

  • Full Member
  • *
  • Posts: 178
  • Frederick, Maryland
  • Liked: 84
  • Likes Given: 503
Re: SpaceX Software
« Reply #53 on: 03/07/2015 11:47 am »
I'd like to add that modern programming languages support object oriented structures and that this is a great benefit over procedural languages. Things can be done more simply, reliably and at a greater degree of complexity while remaining simple to the programmer.

Granted, lower level languages or assembly are better for determinism, but speeds we run at now make this rarely necessary.

Offline ChrisWilson68

  • Senior Member
  • *****
  • Posts: 3878
  • Sunnyvale, CA
  • Liked: 2595
  • Likes Given: 3353
Re: SpaceX Software
« Reply #54 on: 03/07/2015 12:02 pm »
Don't believe anyone who tells you object oriented or functional or any other programming paradigm is objectively better or simpler to use or more readable or more natural.

Programming languages are interfaces between computers and the people who program them.  How good the language is depends on how well it maps to the way the programmer thinks.  That is, it's inherently subjective.  The result will be different for different people.

Many people make the mistake of thinking that what's natural for them is natural for everyone else too, or that whatever is fashionable must be true for everyone because they hear about it a lot.

Online Herb Schaltegger

Re: SpaceX Software
« Reply #55 on: 03/07/2015 02:26 pm »
Okay, this is turning (as usual) into another lovely set of nerd-fight pontifications, but can you PLEASE stick to software for spaceflight applications and, as the thread title indicates, for SpaceX's purposes? If not, there are plenty of other places for random "my brain is bigger!" arguments.
« Last Edit: 03/07/2015 02:26 pm by Herb Schaltegger »
Ad astra per aspirin ...

Tags: