Summary
I joined the Imager for Mars Pathfinder team while I was still a graduate student at the Univeristy of Arizona. I was tasked to write the flight software for the Imager sub-system on the Pathfinder Lander. I worked closely with the Jet Propulsion Lab (JPL) team on defining the architecture and interface for the Imager portion of the code. I was also directly involved with working alongside Lockheed Martin on the flight hardware that controlled the Imager hardware.

Imager for Mars Pathfinder
Although I left the team in 1995, I got to see the launch in November of 1996. On July 4, 1997, the first surface images of mars since the Viking missions came streaming back to Earth. It was a proud moment for me, to see the results of my efforts - and to know that the rest of the world got to see it, too.
It was this project that led me down the path of embedded development. Not only did I enjoy working with custom hardware and optimizing resources, but it gave me the flavor of what is was like to work with bright professionals outside my area of expertise. This mission set the stage for the rest of my career.
Accomplishments
Senior Programmer
- Developed the Flight Software for the Imager on the Mars Pathfinder (flight date: 1997). Images from that mission were the first images seen of the Mars landscape since the Viking missions in the 1970s.
Highlights

(taken by Sojourner)
The Imager software consisted of two primary tasks: data acquisition and image processing. The data acquisition task received messages (via message queue) to perform a set of commands. Via these commands, the operator could move the imager, change the filter wheel, and take images. There were a few higher-level commands as well - one such command was to process the image to find the sun. The image processing task would take an image and apply some basic image processing techniquies. This included removal of dark current, linearization of pixel sensitivity, and data compression.
The software for the Imager resided on the same processor as the rest of the lander. In order to keep a consistent interface to the rest of the platform, I wrote wrapper functions around the message queue iterface. Similarly, I was provided utility functions to allow the Imager software to read and write to non-volatie RAM. All of this effort was closely coordinated with the JPL development team.
Lessons Learned
- You're really never done with testing software.
- Stay on top of emerging technology. When projects slow down, it's a great opportunity to see what others are doing in your field.
Fun Facts
- It is very difficult to create a stepper motor that will work in space. Finding the right lubrication was troublesome. Getting it to be repeatable was nearly impossible.
- I can tell my friends: "My signature is on Mars."
Skills
- C
- VxWorks
- VME
- Custom hardware validation
- Image processing techniques
Links
Notice: images acquired from the JPL web site for Mars Pathfinder.