Microsystems Technology Laboratories > OpenCoral

OpenCoral Prerequisites

This manual describes the prerequisites necessary for deploying Coral at a new fabrication facility.


For this and the following reference manuals, we will describe how to acquire, install, configure, and deploy Coral straight out-of-the-box. Meaning, we will install Coral with the most basic functionalities. The shell environment is assumed to be bash but, in general equivalent csh/tcsh shells may be used with minor modifications to command line instructions.


  • OpenCoral Server
    • One Intel Pentium IV PC with a minimum of 2 GB memory and 40 GB HD. This machine will be used to run the Coral servers and the Coral database. Note: Coral can be configured to run the database on a different platform than the actual Coral servers. In our experience, however, a single machine for both the Coral servers and database is more than adequate and eliminates reliability concerns related to network connectivity between the Coral servers and the database.
  • Equipment Controller Server
    • One Intel Pentium IV PC with 1 GB memory and 40 GB HD.
    • Full length ISA slots. Note: many newer computers no longer support full-length ISA slots. In this case, an older computer may be used as the equipment controller. Alternatively, one can either use a Linux-compatible ISA passive backplane or a PCI-to-ISA or USB-to-ISA adapter with an external ISA card chassis.
    • One Master Equipment Controller card for each 25 pieces of equipment to be interlocked.
  • Interlock Boxes
    • One Interlock Box for each fab equipment to be interlocked. Interlock boxes are available in low- and high-power versions. The low-power version is designed for equipment that already has existing equipment interlocks for things such as water flow interlocks, mechanical door closure interlocks, vacuum interlocks, etc. The maximum current that can be continuously run through the interlock relay is 1A. The high-power interlock box is used in cases where the power to be interlocked exceeds 1A and is most typically used in situations where AC power to one or more elements of the system is interrupted by the interlock.
  • OpenCoral Client
    • Windows XP/RHEL Linux/Solaris 9 workstation with 256 MB memory


Most of the following mentioned packages are installed by default with Red Hat Enterprise Linux. Qualifying academic institutions may purchase Red Hat Enterprise Linux Academic Server Edition for an annual subscription fee of $60. Further information may be found at http://www.redhat.com/rehl/details/academic/. RHEL 5.4 based on the linux 2.6 kernel is the latest version at the time of writing this manual.

  • OpenCoral Server
    • RHEL 5.4 or Newer (Note: other Linux distributions have been demonstrated to work with the Coral servers including Ubuntu, Debian, and CentOS. However, in those cases, the installation instructions may vary somewhat from what is described here.)
      • cvs (Avalible under Development Tools section of Add/Remove Packages.)
      • rsync (I think that this is installed by default.)
      • sudo (I think that this is installed by default.
      • openssl (I think that this is installed by default.
      • openssh (I think that this is installed by default.
      • perl (I think that this is installed by default.
      • Apache HTTP Server (Available under the Servers section of Add/Remove packages as "Web Server". Make sure that mod_perl and mod_ssl are selected under the "Extras" section.)
      • PostgreSQL Database Server Postgresql 8.1 or newer should be used for new Coral installations. (Available under the Servers section of Add/Remove packages as "Postgresql Database". Most of the individual packages will be selected, but make sure that postgresql-jdbc (the Java DataBase Connectivity package) is selected.)
  • OpenCoral Equipment Controller Server
    • RHEL 3.0/4.0/5.0/5.4
      • kernel 2.4/2.6 header files (available in the kernel-devel package).
      • gcc
You should be able to check the presence of some of the above tools and programs by issuing the command 'which program_name' to see if it exists or something like 'rpm -qa | grep program_name'.

In addition to software that is available as a part of the RHEL 4.0 AS or ES distribution, we will provide instructions for acquiring the appropriate versions of Java and Ant later in this document.


OpenCoral requires a TCP/IP-based network infrastructure with a 10/100 switched Ethernet backbone in order for the clients and various servers to communicate with each other. The OpenCoral application servers and OpenCoral clients communicate via CORBA which uses RMI/IIOP TCP/IP protocol. RMI/IIOP does not have set port number it uses, but rather a range of port numbers. The OpenCoral application servers communicate to the equipment controller server via a proprietary TCP-based port communication mechanism. The OpenCoral application servers communicate to the backend persistent storage database using JDBC. In order for the equipment controller PC and controller cards to communicate with the various interlock boxes, one needs to have a CAT3 or CAT5 network infrastructure in place between the location of the controller PC and the interlock boxes. This can be achieved with regular network cable (CAT5) or phone cable (CAT3). All that is requires is that each interlock box has two lines of communication (i.e. two wires) in order to communicate with the controller card. This is why each 50 pin controller card can support up to 25 interlock boxes.


Coral is designed to be flexible and to be deployed in a variety of environments. Coral is supplied with a variety of tools that make it easier to accommodate different laboratory environments without requiring custom Java coding. Those tools include:

  • Coral includes a configuration tool (invoked with the command ant configure that displays a set of "preference pages" that support most of the commonly used configuration parameters including database specifications, installation locations, etc.
  • Coral uses a tree-like structure to organize the display of machines. You may want to group them by location, function or which ever way you desire. Coral provides a GUI tool that allows the equipment tree to be defined and edited and the properties of new or existing equipment to be edited.
  • Coral provides the ability to collect certain process or runtime data when the equipment is in use such as number of wafers processed, the material deposited, etc. This data will be linked to the actual equipment usage and may be extracted from the database at a later date for reporting or billing usage. The definition of which pieces of equipment make use of runtime data and, if they do, what data is collected is specified in an XML document. If you are using Runtime Manager to keep track of machine usage, then each machine will need to organized into different runtime dialog groups. Contact the Coral developers if you need more information about this functionality.
  • While each facility running Coral likely shares many common attributes, each of them likely is operated under a different set of business logic or policies. For this reason, Coral provides support for site-specific policies that encapsulate the business logic of each Coral site without requiring customization of the underlying Java codebase. For equipment reservations, for example, typical policies might include:
    • Reservations can only be made 14 days in advance by non-staff members (but may be made indefinitely far into the future by staff members).
    • Non-staff members can only make 10 hours of reservations during prime time (where prime time is 8 a.m. to 5 p.m. M-F).
    • A specific high-demand tool may only be reserved for blocks of time no longer than 4 hours in length.