logo
SECS-I Implementation

The SECS-I implementation is part of the our Remote Microscope system, where it's used in the server to control the microscope's optics. Because this component might be useful to people, even if the entire microscope system isn't of interest to them, we've made the SECS-I code available separately.

SECS-I is a simple protocol carried out between a host (usually a computer or other controlling device) and a master (which is some piece of equipment such as a microscope). The parties communicate by sending messages back and forth; messages can be broken up into 244-byte blocks. SECS-I specifies the rules for sending and acknowledging blocks, but says nothing about the contents of the messages being sent, just how to send them. SECS-II specifies a format for message content, but our device doesn't use SECS-II, and so we haven't implemented it.

Known Problems

Our SECS-I device never generates messages larger than 244 bytes. This means that all our messages are always sent in a single block, and the code for handling multi-block messages has been written but never tested because I lack a device to test it against. If multi-block handling is broken, it shouldn't be very difficult to fix; if you try it, please let us know about your experience.

Related Links

  • SEMI
    SEMI is the industry trade organization that created the SECS specifications. The specs aren't freely available, but you can pay $50 per document to download a PDF version of the 12-page SECS-I standard; go to Equipment Automation/Software under Standards on SEMI's Web site. (Paper versions are also available, but cost even more.) If you want to understand the SECS-I implementation, you'll really want to have a copy of the standard to compare with the code.