Online From Jupiter 97
N. Talbot Brady
Computers and Data Management
My name is N. Talbot Brady. People usually call me Tal (rhymes with Al). I am a 45 year old man, unmarried, with no children. I sometimes have tropical fish, a lizard, or a cat as a pet, but I don't have any animals living with me right now, just some squirrels living in trees in my yard. I live near JPL in Pasadena, California, but I don't work on the Rose parade. To relax, I have friends over about once a week to play old style (on paper not computer) Dungeons & Dragons in the dungeon that I made several years ago. I am the dungeon master and have been running games for more than 20 years. Additionally, I build plastic models, mostly of ships and spacecraft and I travel with friends to look at old buildings and ruins. My favorite trip was to the Yucatan in Mexico and Guatemala, where I spent several weeks visiting Mayan ruins. They are fascinating to look at even in pictures, but are really awesome to see close up.
My job on Galileo is designing and programming the flight software for the Control and Data Subsystem (CDS) computer. This computer is one of the two main computers on the Galileo spacecraft. It is used to control the activities and communication on the Galileo spacecraft. It receives commands and programs from the ground, executes those commands and programs, and sends commands to the other subsystems (for example, the science instruments) on the spacecraft. It also collects the science and engineering data from the other subsystems and packages them into the telemetry sent back to the earth. The other main computer is in the Attitude and Articulation Control Subsystem (AACS). It is used for navigation, maintaining the spacecraft position, and pointing the remote sensing instruments (cameras and spectroscopes) at their targets.
I have worked on Galileo since 1979 (about 17 years), with some time spent working on the Cassini (that's the upcoming Saturn mission) CDS flight software between 1988 and 1991. We did not expect to do much new design or programming of CDS flight software after the Galileo launch in 1989. However, since the high-gain antenna could not be opened, a very large amount of new design and programming had to be done to support the return of data using the low gain antenna at lower data rates. For that reason I have been very busy over the past several years, working with the mission scientists to discover what new capabilities were needed for the CDS, and then designing, programming, testing and teaching people how to use those new capabilities. I did not develop all of the software by myself, but led a team of 14 programmers and testers. We developed more than 100 new complicated programs to support the new capabilities. All these programs were developed using assembly language and tools from the late 1970's. Compared to what is available now for writing programs on a PC, these tools are very primitive. It was hard work and we sometimes worked late into the night.
The CDS computer is really 6 smaller (micro) computers, each somewhat similar to an old Apple-2 computer in size and speed, all working together. Some of you may have used an Apple-2 computer in your school. The software is written separately for each of the 6 computers, but it all has to work together and at the right times. Also since the CDS is on the spacecraft, not connected to my computer or a monitor, we have to write the programs on another computer and when we get them working, put them in uplink (the process of sending things to the spacecraft) packages and send them to the testing computers or up to the spacecraft. After a number of months of testing the software in our test lab here at JPL, and making some changes to fix the things that didn't work right, we made the uplink packages to send to the Galileo spacecraft and a book of instructions about how to send the new programs to the spacecraft and start them up. The book was over 200 pages long and the loading process took almost a week. Loading the new software is complicated because the old software on the spacecraft must be kept running while the new software is being loaded.
Starting the new software was very exciting because the software changed the way that data was sent to the earth by the spacecraft and so the software on the computers that receive and store the data on the ground also had to be changed. Both the new spacecraft software and the new ground software were started and then we waited to see if the computers on the earth could understand the new type of data sent from the Galileo spacecraft. We waited over an hour for the new data to arrive because Jupiter and Galileo are so far away that the radio signals from there took more than an hour to travel to the earth. Suddenly, data started appearing on the ground computer monitors. It worked and we were successfully sending data from the spacecraft and receiving it on the ground. We all clapped and cheered. For me, one of the best times in the mission occurred later during the following weeks as the science data was collected and the scientists could see that they were getting a lot of useful data. It is probably the best part of my job being able to program the computer to help people get what they need to do their jobs well. Sometimes, there are bad parts to the job like working all night on stubborn code that will not work right, and not seeing my friends for weeks at a time, but when the scientists can use the new data collected by our new software to better understand the world around us, it's all worth it. I have found from my studies that as scientists explore new ideas and make new theories, their new theories spread to other researchers, engineers and inventors and inspire them. They in turn expand their research into applications and inventions and then after a while life improves for everyone.
Sometimes working here at JPL is like being in one of the science fiction books I read so many of when I was growing up. (Yes, I still read them -- Yes I saw the new release of Star Wars and I liked it almost I much as the first time I saw it in 1977. I even saw it with the same group of friends as in 1977.). Also, I grew up with the space program. We started sending men into orbit in Mercury capsules when I was in the fifth grade. As long as I can remember, I have been interested in space, science, and computers, probably because of my reading. The first book I remember reading about space was called 'The Spaceship Under the Apple Tree'. It's for second or third graders and should still be in the library. The first book I remember about computers was called 'Danny Dunn and the Homework Machine'. It was about some kids who tried to program their uncle's computer to do their homework and discovered that to program it to do homework, they had to learn more about their school subjects than they would have, if they had just done the homework themselves. I think that's still true. It was written for fourth and fifth graders and should also be in the library.
For me, programming computers is like solving puzzles in a foreign language. Also to write software here at JPL, you must have a pretty strong science background and interest. Otherwise, it is very difficult to understand what the scientist, that you are working with on the program, really wants the program to do. Most of the people that I know who write software took the science and math college preparation courses in high school and majored in either computer science or mathematics at college. I majored in philosophy, but several of my philosophy classes involved logic and logic puzzle solving. Also, I took lots of undergraduate computer science courses as electives. However computer programming seems to be changing as a job. There is new software available to make it easier for people who are not trained in programming to write simple programs for use on their desktop computers and there are programs that can now write entire complex business application software from just the requirements. Much of the software that I wrote when I first started to work as a programmer can now be written automatically. Many programming jobs are now done in other countries where the programmers are often paid less than 25% of what a programmer in the United States is paid. Probably, the jobs that will be available to future programmers will be in the production of more complicated software and in system design. Future space program software engineers will need to major in computer science and will need a strong background in both mathematics and hard sciences (Physics, Chemistry, Biology, Astronomy). The software they write will usually be special purpose, highly technical in nature, and developed in close conjunction with a scientific research team. There will be very few long term tasks like Galileo flight software lasting 10-20 years. Most missions or tasks will last only 2-5 years. In any NASA software engineer's future there should be many challenging and rewarding tasks.