The OCELOT is a PLC Based Home Automation Controller. Capable of interfacing with RS232, RS485, IR, and X-10 devices, it is a compact and versatile device. It can accept up to 2048 lines of codes, has a Real Time Clock, and Stand-Alone capabilities. In addition, it can be combined with other ADI modules, such as temp or humidity sensors.

The included C-MAX software presents a very simple two-part GUI to the operator. The first screen, or EDITOR, is where your program is developed, the second screen is a direct interface to the OCELOT, or CPUXA.


The OCELOT arrived with the following components.:


OCELOT Controller

Power Supply (AC Adapter)

RS232 Cable

Telephone Cable


The USERS Manual was not included, but can be downloaded from the following website:

AVToolBox Home Theater Components
The OCELOT controller is small, measuring only 7″W x 1″H x 4″D. Lightweight enough to mount anywhere, it can be programmed for stand alone operation and mounted out of sight, or left hooked up to your computer.

The disadvantage of leaving it hooked up to your computer is that you tie up one of your serial ports. The advantage is the additional capabilities you have available with the GUI, such as manual control of most commands.

The OCELOT has the following three status lights:


Active: indicates operating mode

Comms: indicates communication errors

X-10 / IR: indicates X-10 or IR reception

as well as the following interfaces:


Internal IR Detector

Two stereo jacks for external IR Emitter and Detector.

RS232 port.

RS485 connections integral with the Power Supply input jack.

I assume that the external IR Detector jack is precisely for stand alone operation in which the OCELOT is indeed hidden from view, but the need for IR control is desired.

The C-MAX software is easily installed, and as mentioned, provides a very simple two part GUI for developing your programs, and interfacing directly with the OCELOT.

This a screen shot of the first GUI, or EDITOR, where your programs are developed

The GUI presents the operator with the following Menus.

File: typical menu
Comms: set up Com ports, access CPUXA GUI

The lower half of the GUI, with the exception of the Function buttons (IF, THEN, ELSE, AND, OR, and END), will offer different options dependent on your Function selection.

Your program structure will follow the industry standard, IF-THEN-ELSE, with the flexibility of also allowing Variables and TIME/DATE information to be incorporated into your programs.

With the right combination, you can control:


X-10 with X-10 or IR

IR with X-10 or IR

ASCII with X-10 or IR

In addition, you can create macros which can output multiple IR, X-10, or ASCII commands based on a single condition, such as IR received, X-10 received, TIME/ DATE or Variable. You can also create multiple condition macros.

This a screen shot of the second GUI, or CPUXA, where you interface directly with the OCELOT.

This GUI presents the operator with the following menus

Infrared, for learning and transmitting Infrared commands
X-10, for sending X-10 and Leviton X-10 commands, and monitoring X-10 activity
Program File, for downloading the program you have written in the Editor to the OCELOT.
CPUXA Utilities
Module Utilities
Serial Messages, used for transmitting ASCII messages to ASCII controlled devices.

In addition, the OCELOT interface provides a continuous indication of data transfer between the OCELOT and PC, as shown in the lower left hand corner.

The two GUI’s present the operator with a variety of menu options with pop-up screens, either to accept inputs, drive outputs, provide status information, or allow CPUXA and system parameters to be examined and modified.


The equipment arrived fully operational, with no noticeable defects. Following the steps in the Users Manual, I was able to quickly hook the OCELOT up to my PC. I did notice the RS232 connector did not appear to be firmly mounted to the back side of the housing, with a small amount of up and down movement noticeable. This could potentially cause a failure at the PCB if the RS232 connection was frequently made and unmade.

The manual does an excellent job of describing the hookup procedures, with appropriate warnings as necessary. It also describes the software installation and startup satisfactorily

I installed the software and started up the program. The first GUI presented itself. The OCELOT comes preloaded with an executive program, so there is no need to do any programming at this point to begin experimenting with the OCELOT.

My very first program was a continuous loop outputting a simple ASCII message which I read using HYPERTERMINAL. It was at this point I made a serious error. One cautionary point that the Users Manual stressed is that transmitting ASCII messages on the RS232 port can interfere with OCELOT-PC communications. This is true, and putting the OCELOT in a continuous loop with my simple three line program prevented me from reloading the standard CPUXA executive, as it was continuously outputting this ASCII message. I was able to reload the executive only by powering down the OCELOT and reloading the executive within the first 5-10 seconds after powering up, before my program started to run again. Although the manual does warn about potential interference with OCELOT-PC communications when transmitting RS232 commands, it does not warn you that this can completely interfere with reloading the executive program, and my evaluation was almost derailed. Not recommended.

After verifying RS232 communications, I then proceeded to evaluate the programming and IR capabilities.

The OCELOT Manual specifically recommends Xantech or Buffalo IR emitters. After evaluating the Xantech Emitter, I decided to try a simple IR Emitter from Radio Shack. This worked superbly, but if I was worried about the appearance I would go with the Xantech Emitters. They look nice.

I then tried a simple program to change the channel on my TV every ten seconds. After putting the OCELOT through a very simple IR learning process, I wrote the program. In the process of writing this program, a couple of confusing aspects came up.

First, if I want to set an initial condition, must I have an IF-THEN pair? The answer is no, a THEN statement can be used by itself. In practice, an initial condition probably is not necessary, but it can be done. This was discovered by experimentation only

Second, if you want to use a Timer, how do you activate it. The answer is to set it to one, then monitor the value in your program loop.

Again, the manual does a good job of explaining the basic programming procedures, along with providing examples. The only complaint I have with the users manual is that the graphics are fairly low resolution. This fact, coupled with the fact that the examples are not always accompanied by text, can make it difficult to interpret the examples, or make sure that you are entering commands correctly.

Satisfied that the device was operating correctly up to this point, I then proceeded to review the X-10 capabilities.

The X-10 capabilities appeared pretty typical. Allowing both manual and automatic control of up to 256 X-10 modules, the OCELOT allows their status to be continuously monitored, and used for programming purposes.

The nice feature of the OCELOT is the capability to allow indirect X-10 / IR interaction, bridging a gap, per say, in Home Automation.

As well as typical X-10 capabilities, the OCELOT offers commands specific to Leviton Series 16xxx Modules. These group commands allows modules to be arranged and controlled in groups, adjusting to a preset level with one command. I was not able to specifically test these kinds of modules, but the users Manual made it sound pretty straightforward.

The OCELOT can also control PCS style switches, which allow the brightness to be set with one command, instead of multiple dim/bright commands that standard X-10 modules required.


The OCELOT appears a well thought out answer to Home Automation. Capable of interfacing essentially 4 different types of Protocol’s (RS232, RS485, X-10, and IR), and with expansion capabilities, it seems capable of the manufacturers claims. In addition to being easy to hook-up and program, most user definable parameters ( such as programs and learned IR commands) can be stored for backup purposes. The only exception are ASCII strings, which cannot be saved, or even retrieved, from the OCELOT. No explanation why.

The OCELOT does suffer from the limitations of its peripherals, however.

The capability to control 256 X-10 devices, under an almost unlimited amount of conditions, appears more than the average person needs, or can effectively manage. But if interference is a problem, this limits its effectiveness.

IR appears easier to use, and less prone to interference. However, Xantech emitters are designed to be placed right on the device to be controlled, and my simple IR emitter has a maximum range of 6 inches. Even mounted in an obtrusive manner, it probably could not control more than a few devices at a time. Although this is possible, as up to 1024 IR commands can be learned, it does not seem practical for large scale control. I can envision a couple of things that could be done to expand IR capabilities. The first is to use a Xantech Dual Emitter, but this will provide only a modest gain in IR capabilities. The second is to use the OCELOT to drive an external device which can then drive multiple IR Emitters. These IR Emitters can then be mounted wherever needed. The drawback to this is the potential for an IR command that is meant for one device to interpreted by another. This would be determined by trial and error only.

In conclusion, with a modest price ($199), expansion capabilities with several types of external modules, and ease of programming, the OCELOT is worth investigating for your Home Automation needs. I was certainly impressed with the capabilities the manufacturer had incorporated into such a small package.