Test controller, installing


What is needed before TestController works with you test & measurement devices? I will try to show that here.

    Installing program
        Java & OS
        Disk locations used
        Starting TestController
    Adding some devices to TestController
    Using TestController
        Connection/value problems
        Anything else
        Device not supported
        Missing features and functions
Main page

Installing program

There is no install program included and the program do not need to be install, what is needed is:

Java & OS

A Java must be installed on the machine, for Linux it is important to include GUI/desktop support.
The java must be version 8 (1.8) or later. Java can be found here: Open JDK or Oracle java

The zip file can be unpacked anywhere.
On Linux execute privileges must be granted to the files:

The TestController.png or TestController.ico can be used as icons for TestController (TestController do not use these files).

On Linux the user must have access privileges for serial ports to use serial connected devices.
On some Linux versions this can be done with "sudo usermod -a -G dialout " where is the user id.

Disk locations used

TestController will not store or change any files in the directory where the zip file is unpacked, except if it matches the directories below. This happens on Linux if TestController is unpacked and run in the home directory and that is best to avoid (Unpack TestController somewhere else or in a subdirectory to home).

When started TestController will create some working directories (Not all are created on program start):
On Windows:
On Linux:

They are used for:
.../TestControllerDefault save and load location for files
.../SettingsConfiguration and help files, (autorun.txt can be created here)
.../DevicesYou own device definitions
.../ScriptLibraryScripts stored from TestController

These locations can be changed with command line options, see inside TestController.bat for explanation.

Starting TestController

From a GUI it is often enough to click on the "TestController.jar" file.
Alternative use "TestController.bat" from windows or "tcrun" from Linux. Both batch files are designed to not block the command line when TestController is running and not having a empty command line window open.

When started TestController will download a few extra files to the "Settings" directory, these files are not needed for TestController to work, but provides more help in TestController and a library of scripts.


When started first time TestController will ask if you want to load some devices for demo/test. This is not any special mode in TestController, but some internal generators that can simulate physical devices.



The purpose of this is to generate some sample data and make it possible to play with TestController without connecting any physical devices.

Adding some devices to TestController

The demo may be fun for a short time, but lets get to some real work.


The demo devices can be disabled by removing the check marks in the Enable column or completely removed by marking the lines and pressing the "Remove" button (They can always be added again if wanted).


This popup will show when the "Load devices" page is empty, this function can automatic add network connected LXI compatible devices (Most newer test equipment from major brands is LXI compatible, cheap brands not so much).


To add other device, type its brand or type number in the filter field (1), then use TAB or the mouse to select the combobox (2) and find the device there. When the device is selected press the Add button (3).

This will add a line to your inventory list with the device, next step is to configure the connection.
The Type column specifies the way the device is connected (4), with some devices it is possible to click on it and select between different connection methods:


Select the method you use.
Next is the address field (5), the actual contents depends on connection type and on OS. It can be a serial port, a IP address for a network connection etc. To enter it click on the field and start typing (Pressing F2 will enter edit mode). For LXI compatible devices it is possible to leave the address field empty or use the device serial number (sn:xxx).

Some examples of address:


The last field is the baudrate field (6), it is only needed for serial devices with variable baudrate, for all other devices a - will be shown in the field and it is not possible to change it.


The actual baudrate must be typed (Press F2 for edit mode).

When a device has been added, it can be tested by pressing the "Reconnect" button. This will unload all currently loaded devices and try to load any check marked devices from the above list. Any devices that fails to load is ignored, there is not always a error due to this.


At the top of the log window TestController will list what it have found, this list can be optimistic, depending on the actual device. If there are error messages they will be show in the log window.
The list in the help window is more reliable, but a few devices is not verified and may show as present, even when not present (Typical handheld multimeters, that will be present when the address is valid, i.e. serial port present).


The best way to very that a device works is to select the "Current values" page and give the device some value to show.

Using TestController

This is not a guide on using TestController, but only a few pointers.

The "Current values" is the main way to view all the values from the connected devices, but there are other way:

Pressing the "Popups" button on the command page will list a couple of different ways to see the meter readings:


Readout: Large digit readout that can be placed anywhere on the screen. It is possible to open multiple of these. Font size, colors and transparency can be adjusted.


Adjust scale: a analog scale and helper for adjusting values.


Alarm: it will not show values, but can give alarm and turn device off when a value is outside the expected range.

The Chart, Histogram and Range page will not be available before some data are logged, i.e. press the "Log" button and select a time (1 second is usually fine). The data can also be viewed on these pages.


I do not test everything in the program, it is usually only tested on a single Windows machine with a few devices. This means that bugs sometimes sneak past be. I will like to now about these problems and if I can reproduce them I will usually fix them fairly fast.

Connection/value problems

These are problems where TestController do not connect correctly or gets wrong values from devices.
Try starting the program with "testControllerDebug.bat" or "tcrundebug" on Linux, this will give a lot of extra output. If you can see and fix the problem from the output it is fine else send the output to me.
Try to minimize the output by only using one device and if the problem first shows up after program start, use the "Clear" button to clear output from program start. Linux generates a file called "tc.log" that contains the output, in windows it must be copied from the log Window.

Not all supported devices are defined by me and it is limited how much I can help with devices I do not know.

Anything else

Problems in the user interface may not show up in the debug log, but if it shows some Java errors the debug log may interest me.
Screen dumps and how to reproduce the error will help me a lot in finding it.

Device not supported

TestController do not support everything on the marked and will never do, but it is fairly easy to add a SCPI device to test controller. Start on the "Load devices" page and open this menu:

Select "Create new SCPI definition", fill in some info and a skeleton device is create.
Check here for more information and check the supplied device definitions for examples.

Missing features and functions

It is always possible to ask me about new features and functions and if I believe they will be useful I will usually add them (if possible).


Main TestController page with download

Thread on EEVBlog forum