USB Analog and Digital IO Modules

LucidControl USB IO Modules

  • Data acquisition and control
  • Cost effective and flexible
  • Platform independent
  • Windows® and Linux
  • Compatible with RPi and Beagle Bone
  • Clippable on DIN-Rail
Read More ...
  • Industrial & home automation
USB Digital Input Module

USB Digital Input Module

LucidControl Product Series

  • 4 / 8 digital inputs
  • For 5V, 10V and 24V signals
  • Opto insulated contacts
  • Counters and edge detectors
Read More ...
USB Digital Output Module

USB Digital Output Module

LucidControl Product Series

  • Opto insulated option
  • 4 / 8 digital outputs
  • Relay module option
  • Pulse width modulation and timers
Read More ...
  • Switching and power control applications
USB Analog Input Module

USB Analog Input Module

LucidControl Product Series

  • Measurement range options
  • 4 analog inputs
  • e.g. 0-10 V or 0-20mA
  • 14 bit resolution
Read More ...
  • Acquisition of sensor signals
USB Analog Output Module

USB Analog Output Module

LucidControl Product Series

  • 4 analog outputs
  • Output range options
  • e.g. 0 - 10 V or 4 - 20 mA
  • 12 bit resolution
Read More ...
  • 4 - 20 mA current interfaces
USB RTD Input Module for Pt100 / Pt1000 with 8 Channels

USB RTD Input Module

LucidControl Product Series

  • 4/8 Pt1000/Pt100 RTD inputs
  • Temperature range: -180 ~ 180 °C or 0 ~ 360°C
  • 0.1 °C resolution
  • Heat control applications
Read More ...
  • Logging of temperatures

Plug & Play USB IO

Turn your computer with LucidControl Plug & Play IO Modules to a powerful data acquisition, monitoring and control system within minutes.

Data Acquisition & Control

Ready for many automated applications. Control your home, garden or caravan with the outstanding LucidControl IO devices.

Remote IO Device

Access LucidControl remotely over the Internet and get full power over your applications – secure and wherever you are.

Customized Solutions

Realization of customer specific solutions with the flexible LucidControl hardware and software platform. Ask us!

LucidControl USB IO Modules in a Nutshell


RSS
LucidControl DO4 - 4 Channel Digital Output USB Module

LucidControl DO4 - 4 Channel Digital Output USB Module

What is LucidControl?

The LucidControl product family consists of powerful Plug-and-Play USB IO devices turning a computer to a modular digital and analog data acquisition and control system. LucidControl captures and generates analog and digital signals like voltages, temperatures, resistances and logic. The host computer can make use of this data e.g. for logging, monitoring or control tasks. Additionally, LucidControl devices are able to generate output signals and they are ready to control power loads like lamps, fans or pumps simply via USB.

Are you looking for easy to use control devices?

All LucidControl USB IO modules are controlled by using the same software which makes working with the modules extremely simple. Once a module is connected to the computer it starts working immediately. LucidControl needs only to be connected to a computer via Universal Serial Bus. The power required by the devices is supplied by USB what makes the modules most cost effective since no additional components like power supplies or adapters needed. Using LucidControl USB IO modules is absolutely straightforward. Utilizing the provided command line tool, the Java and the Python API give full access to all functions of the modules where it does not matter how many devices are connected to the computer.

Advantages of LucidControl USB IO Modules

Whenever you are looking for a solution for automation tasks you should consider the LucidControl product family as a good choice. The USB IO Modules provide outstanding technical features at a reasonable price. They fit best for data acquisition, monitoring and control applications.

By capturing and generating analog and digital signals like logic states, temperatures, voltages, currents, resistances and clocks the flexible IO Modules are ready to control consumers like fans, pumps or even lamps via USB.

Offering a USB interface allows easy connection to a computer at lowest costs. Since LucidControl USB IO Modules are also power supplied via USB, extra components like adapters or even power supplies are not needed.

Beside of being best prepared for home applications, LucidControl USB IO modules are also designed in order to fulfil many relevant criteria for industrial applications. Only to mention the possibility to mount them on standard DIN-Rails. This feature allows the integration of LucidControl USB IO modules into switch boxes of an automation project.

LucidControl USB IO modules are designed in order to be connected to various different computer systems. Thanks to the standardized device driver, which is available in operating systems like Microsoft Windows® and Linux, out of the box installation can be performed very easily within minutes.

Additionally, the USB IO devices are compatible with the Raspberry Pi® and Texas Instruments Beagle Bone Black computers. Employing these computer boards makes the creation of web services and mobile applications very easy.

In order to increase the usability and to improve the learning curve, LucidControl USB IO Modules are all compatible and share the same tools. As soon as a module is available on a computer it starts working immediately.

Utilizing the available LucidIoCtrl command line tool makes the work with the USB IO Modules straight forward. Multiple devices and be connected connected to a single computer can be accessed separately. APIs and examples are available for Java®, Python and .NET.

Controlling, Logging and Data Acquisition System

Diagram Logging Hot Water

LucidControl USB IO modules are used in many automation projects. When signals have to be acquired or generated e.g. in the factory floor automation section, the modules can be employed in order to control fans, lawn sprinklers or other power loads. This makes it easy to build e.g. time switches or much more complicated systems which e.g. control a valve depending on temperatures.

USB IO Modules are able to measure temperature of Pt100 and Pt1000 sensors. This makes them perfect for energy management applications. Pulsed outputs  (PWM) and standardized analog 0-10 V interfaces generate signals for controlling valves, mixers or pumps. A typical application for this is controlling of a central heating system by logic depending on measured temperatures.

In the hobby area the reasonable priced modules are ready to control LED lightning creating different lightning scenarios.

Last but not least, all applications can be controlled remotely over the Internet e.g. by using smartphones. Via a host computer which is connected to the Internet LucidControl USB IO modules are accessible remotely flexible and secure.

Flexible interfaces with USB Analog IO & USB Digital IO

Our companies goal is it to equip LucidControl USB IO modules with many different interfaces.

LucidControl USB Digital Input Modules read logic input signals with 5V, 10V and 24V threshold levels common in automation industry. They are available with 4 and 8 channels. These inputs can communicate with other control system components or e.g. read the state of a push button or switch.

LucidControl USB Digital Output Modules can generate logic output signals up to 24V. They are available with solid-state relays, mechanical relays and open collector outputs with 4 and 8 channels. Typical applications are controlling of power loads like pumps or valves or to create general purpose digital output signals.

LucidControl USB Analog Input Modules (ADC) are available for voltage input ranges of 0-5V, 0-10V and 0-24V. The 0-10V input range can be used for 0-10V interfaces. The devices measures 4 channels. Options with negative input voltages ±10V and for currents 0-20mA are available.

LucidControl USB Analog Output Modules (DAC) can generate 4 voltages ranges 0-5V, 0-10V and ±12V. The modules can also source 4-20mA current signals. 4-20mA current loop interfaces are often used in the automation industry for reliable and lossless analog signal transmission over long distances.

LucidControl USB RTD Input Modules acquire the resistance and calculate the temperature of a standard Pt100 / Pt1000 sensor element. They are available with 4 and 8 input channels and for ±180°C and 0-360°C temperature range.

Raspberry Pi® and Beagle Bone Black

Raspberry Pi

LucidControl is compatible with most computers running Microsoft Windows or Linux.

Additionally, small and powerful computer boards like the Raspberry Pi® and the Beagle Bone Black work with the USB IO Modules, too. These boards provide USB and network interfaces and allow the connection of keyboard and display.

Because of the Linux operating system these computer boards can solve lots of tasks instantly. Tested and often free available software e.g. Internet servers and databases can make life much easier. After an Internet server has been installed, LucidControl can be accessed with all its functionality remotely simply by web browsers, secure and all over the world.

Professional databases like MySQL are very helpful when it comes to reliable logging of acquired process data with minimal effort.

Many available example applications demonstrate the use of LucidControl.

Software & Documentation

A large and still growing software package makes the setup of LucidControl USB IO Modules very simple.

Additionally, all functions are documented in detail and tutorials give valuable information and ideas for various applications.

A first start should be the LucidIoCtrl command line tool which works with all LucidControl modules. It is ready for all major operating systems and runs without any necessary installation on most computers. It it the best choice to control the modules without a single line of programming.

Popular programming languages like Python and Java are supported by application programming interfaces. Due to the comprehensive documentation the modules can be integrated into other programming languages without hassle.

Concept & Support

Our company – deciphe it GmbH – is the developer and manufacturer of LucidControl products and we use the devices for our own projects and purposes.

We try to to make the first steps into the LucidControl system as easy as possible but if you have some problem which you can not solve on your own, we will help you as good as we can to find a solution.

The hardware as well as the software follow a consistent and modular concept which is clear and expandable.

On customers request we are able to realize add-on modules providing additionally functionality without changing the basic functionality of a LucidControl USB IO module.

Because of the adaptable and upgrade able firmware, functions can be implemented and updated on the field easily.

If you have any questions, our support would be happy to assist you. Feel free to contact us.

Highlights Modular IO data acquisition and control system

Highlights Modular IO data acquisition and control system
Compatible with various digital io and analog io signals
No power supply needed
Most simple installation
Consistent and easy usage for the whole series
Applications Building services
Control engineering
Energy management
Logging and Monitoring
Camping and hobby
Portability Platform independent
Works with Windows® and Linux
Compatible with popular Raspberry Pi® and Beaglebone Black
API for Java® and Python
Services Web applications
Internet remote access
Smartphone access
Industrial
Design
DIN-rail mountable
Switchboard assembly
Reliable Connectors

NI LabVIEW Support for LucidControl Modules

LucidControl Analog Output USB Module with 4 analog outputs

LucidControl Analog Output DAC USB Module

In the past several of our customers used LucidControl USB IO Modules together with National Instruments LabVIEW and they developed their own VIs and projects.

Since the USB IO Modules can be interfaced by using a simple and well documented protocol based on serial port communication, it is easy to access them in any programming language even if no Application Programming Interface is available for a specific environment.

Thanks to one of our clients we can now provide an example of a LabVIEW project using VIs made for the USB Analog Output Module (AO4).

 

This example explains how to communicate via the virtual serial port with the USB IO Module and includes VIs for:

  • Reading device information like device class or serial number from the USB IO Module
  • Setting the value of an analog output channel
  • Reading the value of an analog output channel
AO4 LabView Settings

AO4 LabView Settings

The controls allow entering the comport to which the USB IO Module is connected to. The user can select a channel to update and the new output voltage to set.

 
AO4 LabView Device Info

AO4 LabView Device Info

This screen shows device relevant information like device class and type, firmware version and serial number of the USB IO Module.

 

The example explains reading from and writing to the USB IO Module. It is a starting point and should make it easier for a LabView developer implementing other modules.

The example can be found in our download section.

USB RTD Input Module with 8 Channels Pt100/Pt1000 DIN-Rail

Connect to a remote IO Module with Windows

The network connectivity of LucidControl USB IO Modules opens them to a much wider field of remote io applications. Together with the Raspberry Pi, the USB IO Modules are e.g. able to measure or control temperatures over the Internet.

In earlier articles I described how the LucidControl USB IO Modules can be accessed over a network by employing a Raspberry Pi. There are solutions available that make the USB IO Modules ready for remote io network communication.

Remote Io Network Device Server and Client Computer

Network Device Server and Client Computer

First of all, and that’s true for all described solutions, ser2net can establish a TCP communication on the network device server. The ser2net application is routing a data stream from a TCP socket to a local device like a serial port. And since our LucidControl USB IO modules use the standard USB CDM profile, they behave like a standard serial port. The LucidIoCtrl command line tool as well as the API support direct socket communication. We recommended this method for remote io solutions.

Remote Io Network Device Server with socat and ser2net

USB IO Module Network Device Server with socat and ser2net

I also described how to create a virtual serial device with socat on a Linux client computer. Virtual devices are routed to a TCP socket of a network device server ser2net is listening to. The virtual devices are transparent and accessible on the client computer the same way as a local device is.

In this article I show now a method how to create virtual remote io devices on Windows operating systems which are routed to a USB IO Module connected to a network device server.

But why should you use this method, when the LucidControl tools support direct TCP connections?

Beside of the tools we provide it is also possible to access the USB IO modules directly. The protocol of the USB IO modules is fully documented and easy to understand. Because of this, a developer can implement the USB IO module from scratch sending data frames to devices.

ProfiLab-Expert Application

ProfiLab-Expert Application

ProfiLab-Expert 4.0 for example, accesses the USB IO Modules natively without using an API. It sends data frames directly via the serial port to the IO Module.

ProfiLab-Expert is an application for visualization and control of analog and digital signals. It allows you to employ the USB IO Modules in order to control e.g. a temperature by changing the state of a digital output module which controls a heater by switching it on and off.


How to create of a virtual remote IO device on Windows?

LucidControl USB IO Modules can be used with Windows without the need of a driver. The IO modules implement the standard CDM profile which most Windows versions support natively .

Linux provides with ser2net and socat all tools which are needed in order to create a network device server. Is can also provide a virtual device on the client computer connected to the network device server.

Windows does not provide such tools out of the box and third party tools are necessary. A comport needs installation of a new device. This requires a kernel mode driver what is very different compared to application software. Special skills are necessary in order to develop a device driver with Windows Driver Development Kit (WDK).

If an application running in user mode has a bug it should probably not crash the whole system. In worst case the application terminates, but the system should remain responsive. Other applications should not be affected by this and should continue running.

In kernel mode things are different and everyone who is involved into driver programming knows that the famous “blue screen” still exists and is not a thing of the past.

We developed device driver in the past for our RFID Universal Reader Module. This device is a reader for contactless cards that can e.g. access contactless passports. It can also be used in banking applications. PC/SC is a standardized interface and a reader should support the Windows Smart Card API. Having this experience, I belive I can estimate how complicated it is to develop a new kernel device driver working.

Fortunately, there are serial port redirectors available that install a new serial port which is forwarded to a TCP socket. We successfully tested our USB IO Modules e.g. with COM2TCP and the VSP driver of HW Group.

Finally, we put special attention on the open source project com0com. It is not a port redirector as e.g. the VSP driver is, but a null-modem emulator. It installs a pair of virtual serial ports connected to each other.

Connecting to a Network Device Server with com0com Null-Modem Driver

Connecting to a Network Device Server with com0com Null-Modem Driver

The picture explains the concept of connecting to a network device server via a null-modem emulator driver. At a first glance it seems to be difficult using two virtual serial ports instead of one. The gray highlighted part shows the function of the kernel mode driver, the yellow highlighted part shows applications running in user mode.

com0com creates a pair of serial port devices (here COMa and COMb) connected to each other. It receives data on COMa and sends it to COMb and vice versa.

This concept has a big advantage because it allows using an application running in user mode in between the serial ports. It accesses the serial port COMa and connects it with a remote io TCP socket. The program com2tcp (not to mix up with COM2TCP in capital letters) connects a serial port with a remote TCP socket. It belongs to the com0com project but it is not automatically installed by the setup and must be downloaded separately.


How to install com0com device driver?

The com0com project can be downloaded as a Windows installable file. On recent Windows versions the installation of the driver may fail. This happens because the driver is unsigned and new Windows versions test the driver signature.

Nowadays, Windows allows to use device drivers with a valid signature. While this was earlier only true for the 64 bit versions of Windows 7 it became more difficult in newer Windows versions to run unsigned kernel mode software. The validation of driver signatures can be disabled in general (e.g. when the system is started) but the complete deactivation should only be a temporary solution for a development computer. We cannot recommend this for a productive system.

On our download page we provide a signed driver of com0com that can be used with our USB IO Modules. The installation is straight forward and it is explained in this document.

Note:We are not the developer of com0com, we only signed the existing kernel modules and we appreciate the developers work very much. The com0com project can be found on Sourceforge.

Validation of the com0com Driver Signature

Validation of the com0com Driver Signature

Continue the installation as explained. Windows will ask you to confirm the installation of the signed software. Click Install in order to agree that you want to install the kernel mode driver signed with our signature. It can be necessary to confirm the signature several times during driver installation.

Windows Driver Update Installation of com0com Null-Modem Driver

Windows Driver Update Installation of com0com Null-Modem Driver

If Windows searches Windows Update in order to find a more recent driver you can skip this by clicking Skip obtaining driver software from Windows Update. There is no newer driver available than the one you already downloaded.

It might take a few minutes (at least on my system) to complete the installation.

Device Manager with com0com Devices

Device Manager with com0com Devices

After the installation has completed, com0com devices appear on the Ports section. In this example you can see the new installed serial ports COM6 and COM7.

It is possible to change com0com ports settings and to create lso new ports with Setup for com0com. The installation process copies this application to the system during the com0com setup.


How to setup TCP redirection ?

Setup for com0com Application

Setup for com0com Application

This screen shot shows the current configuration on our machine. It is possible to create a new pair of linked serial ports by clicking onto Add Pair. The installation of a new pair of serial ports took some time on our machine because Windows Update was looking for some more recent driver versions.

Pending Installation of com0com

Pending Installation of com0com

Setup for com0com - new serial Port

Setup for com0com – new serial Port

The fresh created ports have the names CNCA2 and CNCB2.

For compatibility reasons we recommend using standard names for serial ports. Some applications may not be able to work with a serial port name like CNCA0 but needs standard names like COM6. We also recommend activating use Ports class what installs a serial port in the Ports section of the device manager. Otherwise the port pair appears in the com0com section only.

The setup program recognizes the slow installation and shows a dialog. A confirmation could be necessary.

Setup for com0com - new serial Port

Setup for com0com – new serial Port

The fresh created ports have the names CNCA2 and CNCB2.

For compatibility reasons we recommend using standard names for serial ports. Some applications may not be able to work with a serial port name like CNCA0 but needs standard names like COM6. We also recommend activating use Ports class what installs a serial port in the Ports section of the device manager. Otherwise, the port pair appears in the com0com section only.


Connecting serial ports to a remote IO TCP socket

Now you can connect one virtual comport of the pair with the TCP socket of a network device server running ser2net.

Connecting to a Network Device Server with com2tcp

Connecting to a Network Device Server with com2tcp

com2tcp –ignore-dsr \\.\COM6 RPI-AZ-2 4001

This command connects the virtual serial port COM6 (that is connected to COM7) with the TCP port 4001 of the computer named RPI-AZ-2.

Accessing USB IO Modules with com0com

Accessing USB IO Modules with com0com

This command connects to COM7 with COM6. com2tcp opened and redirected COM6. LucidIoCtrl queries the USB IO Module for device information. The Analog Input Module answers and returns that it is able to measure 4 voltages in the range of 0 to 10V.


Summary

This article explained how to connect a virtual serial port to a TCP socket. It explained how to install the driver on a Windows machine and how to establish a connection to a network device server by using the LucidIoCtrl tool.

Although our tools and API support direct TCP socket communication, a virtual comport that is redirected to a TCP socket is helpful for compatibility reasons. E.g. using the USB remote io modules together with ProfiLab-Expert.

Using com0com it is possible to switch to remote io access quickly. If you are using USB IO modules locally, it is not necessary to change your software. You can change the comport number of the measurement object in order to route to an IO module connected to a remote network device server.