CLIC Control Project

Takahiro Mark Kuba
Columbia University
New York, NY 10027
USA
tmk29 at columbia dot edu

Abstract

This document outlines the methodologies employed in creating a control system for various audio/visual systems in the CLIC booth as well as the Knox media router, and building a web interface for them.

Introduction

The goal of this project was to provide a simple web interface for controlling various audio/visual systems in the CLIC booth. The main components to be controlled were the Knox media router, the VCR, DVD player, and the Sony AV system. The Knox media router has an RS232 serial port in the back which can be used for a direct connection to a computer. The VCR, DVD player, and AV system were to be controlled using the Slink-e infrared transmitter by Nirvis Systems.
Nirvis Systems, Slink-e
Nirvis Systems, Slink-e
Knox Video Technologies, RS8x8HB Media Router
Knox Video Technologies, RS8x8HB Media Router

Architecture

The architecture can be divided into two main components. There is a component for dealing with the Knox media router, and another component for dealing with interaction through the Slink-e. In all, the project was ~400 lines of code (not including the various package dependencies), and was written entirely using the TCL language, for its cross-platform properties and maintainability.

Knox Media Router Component

This component of the architecture is set up by running a web server on a machine and attaching that machine to the Knox media router using a standard RS232 serial cable. The machine will accept input through a CGI script on the web server, and will send the corresponding commands to the Knox media router via the serial port. In the current configuration for the CLIC control project, the web server and CGI script is located on mork.clic.cs.columbia.edu, the Sun machine located inside the CLIC booth.

Slink-e Component

The component for communication via the Slink-e is slightly more complicated than the Knox media router component. In this case, there is a web server and CGI script located anywhere one wants, and a the machine physically connected to the Slink-e is set up as a device control gateway. This machine (ankara.clic.cs.columbia.edu for now) listens on port 5000 for TCP connections and directly takes commands from that port. The CGI scripts for the Slink-e web interface will make connections to the device control gateway and send commands to it depending on the user's input.

Architectural Overview

Below is a diagram of the overview of the system architecture:

Architectural Overview

Difficulties Encountered

There were a few problems encountered while implementing the CLIC control project.

Sun and Slink-e connection

First and foremost, there were considerable difficulties in getting the Sun machine in the CLIC booth to successfully communicate with the Nirvis Slink-e. Several attempts were made, testing for many different faults, including using different cables (faulty cable), re-training the Slink-e on the Sun (byte ordering), but none were successful. In the end, the decision was made to use a separate Linux machine for communication with the Slink-e, and the device control gateway was set up to this end.

New Slink-e has a weak transmitter

The new Slink-e which was ordered from Nirvis comes with a different IR transmitter than the old version. This new IR transmitter is significantly weaker in transmission range. When using the new Slink-e, the infrared transmitter had to be held within 15-25 centimeters within the devices in order for the infrared transmission to be received. However, using the old Slink-e would allow for successful transmission from across the room, at least 5 feet away.

Bug in Slink-e TCL package

A bug was discovered in the Slink-e TCL package provided. When using the Slinke::learnsession procedure, only the first received infrared transmission is stored correctly by the program. All subsequent infrared transmissions were not received or stored correctly. The author of the Slink-e TCL package has has been notified about this bug and has verified it.

Program Documentation

The README as well as instructions on how to INSTALL and configure the system are available for download.

System Requirements

The CLIC control project requires a running web server with support for accessing and executing CGI scripts. TCL 8.x is also required as well, in order to execute the scripts.

The physical devices required for this project are the Slink-e by Nirvis Systems, and the RS8x8HB Media Router from Knox Video Technologies.

Future Enhancements

One future enhancement is to consolidate the two scripts into one. The main obstacle to this is the hardware problems mentioned above in getting the Sun machine in the CLIC booth to communicate successfully with the Slink-e.

The project could also be extended to controlling more than these components. The entire electronic classroom could possibly controlled via a simple web interface, including the cameras and video mixers.

Acknowledgements

Special thanks to Xiaotao Wu for his advice and help for this project, especially in setting up the device control gateway.

Screenshots

Below are screenshots for the final web interface.

Slink-e web interface
Slink-e web interface
Knox media router web interface
Knox web interface


Last updated: 2003-05-11 by T. Mark Kuba