miércoles, marzo 11, 2009

Just do it!

Photo by Carmel Zucker for the New York Times

An interview with John Pultorak, the man who built an Apollo lunar spacecraft computer on his basement just for fun

They say it takes a whole generation to convert any event into history.

But, for Apollo lunar landings, the process has been much faster. People seems really interested learning how could it be possible that in a such ancient time, with virtually no personal computers, a bunch of men could dare to fly and land in the moon inside tiny capsules.

Maybe their risk assessment was dramatically different from the one we have nowadays. The value of a life, the value of a dollar… go figure. The point is that they did all those things, pursuing a rather naïve dream from a president died long ago. Things that amaze, overwhelm us today, so we praise the people that make it possible. A unite world, maybe by the 1st and last time, around a common purpose.

So many people around the globe show interest in the things and facts that surrounded the Apollo program.

We had before a chance to meet Ronald Monsen, author of an awesome simulation software, whose interview published this very same month can be found right here, and today we turn to another amazing story from another Apollo geek.

His name is John Pultorak, a middle age psychologist, now software engineer for the space systems group at Lockheed Martin, living in Highland Ranch, Colorado, whose second love is computers.

He undertook all on his own the effort to build a replica of a 1964 prototype of the Apollo Guidance Computer, probably the 1st embarked computerized system. And he did it in his own backyard.

So we knocked at his door to know a little more about his very particular endeavour. We did read his interview in the New York Times back in 2005, but now we wanted to take a retrospective look at it.

Hello, John and many thanks for joining us at Aerial Phenomena. What is your own technical background?
I have a B.S. in psychology. As far as electronics and computers are concerned, I'm self-taught. I built electronics kits in the 60's and early 70's and breadboarded various circuits. When microcomputers arrived in the mid-70's, I couldn't afford my own but I assembled computers from kits for other people. I built at least 2 SWTPC 6800 systems and a CRT terminal kit that must have had over a hundred ICs.

I was surprised that they worked.

Around that time, I got a job as an electronics technician where I did some CMOS design. After that, I went to graduate school in experimental psychology and took a part-time job as their resident computer engineer. I taught myself assembly language programming on a dozen different 8- and 16-bit architectures (6800, 8080, 6502, Data General Nova, SC/MP, and a bunch of others). I designed and wire-wrapped a dozen microcomputer trainers and used them to teach a microcomputer class.

The space shuttle was starting orbital flight tests around then, so I dropped out of graduate school and hired on as an engineer for Ford Aerospace in Houston where I worked in the Mission Control Center for 3 years.

I got tired of the Houston heat and moved to Colorado where I've been a systems engineer and software engineer for 25 years. After awhile, I decided I needed some academic credentials so I got a master's in computer information systems from a local university.

How did you start thinking on building a fully functional AGC in your own backyard? What was the purpose of it?
Well, I didn't build it in the backyard. That would have been a mess. I built it on a workbench in my basement, but I did lug it upstairs and out into the backyard to photograph it.

...I can't imagine how anyone could make money from redesigning a 40-year-old computer. Anyway, there's more important things in life than money. Live below your means, be kind to others, and be grateful for what you have; I think that will bring happiness to most people...

In the late 1990's I decided it would be fun to design and build a simple computer from scratch. I designed a 4-bit machine with a 16-bit instruction word; a 4-bit opcode and a 12-bit address. I wire-wrapped it and put it in a nice metal chassis with lots of lights and front-panel switches.

Afterwards, I decided to try something a little more challenging. I thought it might be fun to recreate a minicomputer from the late 60's or early 70's. At first I thought about a Data General Nova or PDP-8. But then, I thought, maybe, I should pick something a little more strange. So, I decided on the AGC.

The project had no purpose other than to satisfy my curiosity about whether I could do it.

What is the main problem or barrier you have found in your way? Where did you source your means to carry it on?
My main problem, initially, was finding enough documentation on the AGC. To keep myself motivated, I broke the project into stages. Each stage was a complete sub-project of its own that produced something of value. At the end of each stage (around 6-9 months each), I could decide to stop or to go on to the next stage. That way, if I stopped, I'd still have a complete and successful project.

The stages, roughly, were:

  • Stage 1: gather documentation.
  • Stage 2: create architecture diagrams (at the register level) and write an AGC simulation in C++.
  • Stage 3: write an assembler for the AGC.
  • Stage 4: use the assembler and simulator to write a suite of test and checkout code to verify each AGC instruction.
  • Stage 5: use the assembler and simulator to host and debug the AGC operating system and user interface portions of the Apollo 11 CM code.
  • Stage 6: design LSTTL implementation of the architecture and run it on a circuit simulator.
  • Stage 7: wire-wrap the subsystems and integrate them.
  • Stage 8: debug.
  • Stage 9: organize all my notes and diagrams into .pdf files.
  • Stage 10: enjoy having an AGC for a few weeks.
  • Stage 11: donate it to a museum.

    What is the main lessons you have learnt along the way?
    You don't have to be particularly smart to tackle a big project. You just need to be very organized, disciplined, and persistent. Break it down into small parts and don't get too side-tracked by any particular part.

    What did you do with your creation?
    I donated the AGC to a local air and space museum. They put it on open display in a hanger next to a 'boilerplate' Apollo command module, fenced-off from the public only by a rope. Of course, it quickly became damaged. I declined to repair it and I've heard it has been removed from display. I don't feel any sense of "attachment" to it, so I'm not much bothered.

    The Computer History Museum in California wanted it and it probably would have been a better "fit" there, but I didn't want to spend 18 hours driving it to California in a minivan so the local museum got it instead.

    What would it be your main advice for other people seeking to start their own project?
    Just do it. Don't tell anyone beforehand; tell them after you're done. My observation is: people who talk about a project they’re going to do seldom get around to actually doing it. The act of talking about it seems to satisfy some need and destroys the motivation for completing the work. Maybe that's just me.

    Did you consider turning it into a money making venture?
    I can't imagine how anyone could make money from redesigning a 40-year-old computer. Anyway, there's more important things in life than money. Live below your means, be kind to others, and be grateful for what you have; I think that will bring happiness to most people.

    What are your plans for the future?
    I can't tell you; if I did tell, then I probably wouldn't get around to doing it (see above). But, I almost broke my own rule.

    Many thanks, John, for sharing with us your dream.

    This is John. A bit idealist, but owner of an indomitable spirit.

    The spirit of the people that made Apollo possible.

    Want to know more? Maybe dare to try building your own Apollo Guidance Computer? Check here for more.