Linux Out of the Real World

The motherboard is a CoreModule/4DXi from Ampro with an Intel
486 DX4 100 MHz CPU, an IDE and a floppy controller, two serial
ports, a parallel port and a hardware watchdog. The 4DXi ships with
4MB RAM that we upgraded to 16MB. Ampro hardware has in our
experience been consistently reliable, well documented and given
excellent support.

The payload needs three serial ports: one to talk to the Rack
Interface Computer (that provides the uplink and downlink), one to
talk to the astronauts (through a touch-screen) and one for
connecting a terminal for development on the ground and for
resolving any emergencies that may crop up in space. We needed one
serial port in addition to the two on the motherboard, so we added
an MPC302 card from Micro/sys that provides two additional serial
ports and a second parallel port. The MPC302 card supports shared
IRQs (interrupt requests)—a big win.

The touch-screen is a GTC-100 from DesignTech Engineering. It
is a touch-sensitive LCD screen with a serial port. It accepts
high-level text and graphics commands and reports the location of
screen presses. Through this device we provide the interested
astronaut with detailed information about the experiment, and a
menu interface for control and meta-control.

The experiment is monitored and controlled by a number of
bizarre gadgets: accelerometers and gas chromatographs, volumetric
pumps and porous condensation plates—your regular Sci-Fi gardening
tools. These are in turn monitored and controlled by a number of
analog and digital inputs and outputs to and from the Linux box. We
are using three I/O cards from Diamond Systems: two “Diamond-MM”
for analog I/O and one “Onyx-MM” for digital I/O. These cards
provide all the I/O required to perform the process automation and
monitoring.

In addition to the numerical data gathered, we are taking
periodic pictures of the plants with two miniature video cameras.
The cameras are mounted in the “ceiling” of the plant-growth
chamber (the side with the lights), and their combined field of
view covers the entire “floor” of the chamber (where the plants
are). The NTSC video signals feed to an ANDI-FG board from Ajeco.
The ANDI-FG has a 3-input frame grabber, a Motorola 56001 DSP and a
megabyte of on-board memory. On request, the ANDI-FG delivers to
the host CPU a high-quality JPEG-compressed image. Ajeco has been
most helpful, providing a Linux driver and excellent technical
support.

Plugged in to the IDE controller we have a FlashDrive
solid-state disk from Sandisk. We chose to go with a solid-state
disk as opposed to regular rotating magnetic media, because our
system needs to operate under heavy vibration for extended periods
of time. The FlashDrives are more expensive and have low capacity,
but they are guaranteed to operate under 1000 G shock and sustained
15 G vibration without damage. We have plenty of persistent
storage, although we could easily increase that to several hundred
megabytes should we need it by using larger FlashDrives. 40MB is
enough disk space for the software we need, plus enough to buffer 5
days' worth of data and images. A normal, successful mission would
need only two days' worth, but having the extra space made
sense.

My only complaint about this hardware is that most PC/104
cards (all the cards listed above except for the CoreModule)
provide only an 8-bit bus, thereby allowing only the use of IRQs
2-7. The CoreModule, being 16-bit, supports the full range of IRQs.
Between our I/O cards and serial ports, we are running out of
hardware interrupts.

Absent from the above list of hardware is a video card and a
network card. In its production configuration, we run the PC/104
without either of these cards. During ground development when we
have physical access to the computer, we use a simple serial
terminal for a display, and PPP over a null modem at 115 Kbps for
networking.

The ground control uses an Ampro MiniModule/Ethernet-II card,
a 16-bit Ethernet interface card based on the SMC 9194. The ground
control is on the Net from behind NASA's firewall at Kennedy Space
Center and gets data from our ground side support computer in
Boulder.

As to software, the experiment is running a customized
installation of the feature-rich Debian 1.2 base, plus a few select
additional packages (notably a decent editor). We use version
2.0.27 of the Linux kernel, plus Miquel van Smoorenburg's
serial-console patch and a couple of nonstandard drivers we wrote
ourselves for the analog and digital I/O cards. The
manufacturer-supplied driver for the Adjeco frame grabber is a
user-space-only implementation. Last but not least, we have the
custom automation/communication software suite.

Trending Topics

Webinar: 8 Signs You’re Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th

Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.