Sparkfun and Jack Crossfire have been diving into the archives this week and looking at Apollo and Space Shuttle electronics. You think you've got tough memory and MIPS limits? Ain't nothing like what the NASA engineers had to deal with (punch card source code shown at right!). They went to the moon with computers not as powerful as ArduPilot's failsafe chip, to say nothing of its Atmega168. From a great Sparkfun roundup
|Apollo Guidance Computer
Meanwhile, Jack Crossfile digs into the Shuttle's technical details
and finds similar evidence of massive inginuity by NASA engineers:
"The shuttle runs at 1Hz during liftoff & 6Hz in orbit. Most electronics R manually shut down in orbit to save fuel. The gyros were originally sampled to only 4 bits because they didn't have enough clockcycles. Full scale range was based on liftoff oscillations, not orbit.
The shuttle doesn't use PID loops because there's not enough fuel to constantly hunt for equilibrium. It uses XY plane feedback. Given a start & end state, the computer looks up the exact required burn time in a table.
The pilot has to manually select lookup tables based on payload, robotic arm position, & docking.
The standalone shuttle is a rigid body while a docked space station & extended robot arm turn it into a flexing body.
They calibrate the tables using very accurate mission simulations in software which accurately predict the center of gravity, moments of inertia, flexing modes, aerodynamics, & noise. On STS-1 they had an unpredicted oscillation during tank separation which almost killed the crew.
Also, most of the computers failed on STS-1 because of floating solder balls."
All info from here