Virtual Serial Port Tools - Advanced serial port configurations for your custom ports usage scenario
Download Virtual Serial Port Tools Hide this button

Overview

Virtual Serial Port Tools (VSPT) is the ultimate virtual serial ports creation and management application. It is capable of creating software-only virtual serial port devices and then using them to form advanced device configurations. It also allows sharing of local serial ports (physical, PnP or virtual) over the network over TCP/IP.

It builds upon a versatile high-performance virtual serial port driver, created by HHD Software Ltd. The driver operates exclusively in user-mode, raising the overall OS stability. The functionality of the driver may also directly be used by user code, allowing creation of custom virtual serial ports solutions. This is as simple as writing a small portion of TypeScript or JavaScript code that utilizes a simple yet very powerful Device Script API.

Below is a list of essential features provided by the toolkit:

Virtual Bridges

VSPT supports creation of either local or remote virtual bridges.

A virtual bridge is a pair of virtual serial port devices interconnected by means of a virtual null-modem cable. Virtual Serial Port Tools supports full emulation of serial port baud rate, line control parameters, flow control, buffer overflow and even allows setting specific level of noise emulation.

NOTE

Bridge always connects two virtual ports, which either reside on a single computer (local bridges) or two distinct computers (remote bridges).

To make an advanced configuration where a virtual port is connected to a real port, see one of the next sections.

Use Create Local Bridge Window to create new local virtual serial bridge and Create Remote Bridge Window to create new remote virtual bridge.

The following API methods can be used to configure local serial bridges:

The following legacy API methods can be used to configure remote virtual serial bridges:

Alias Ports

A virtual serial port may be created as an alias to another existing serial port.

For example, you can create a virtual COM2 which will be an alias to an existing COM1. Any application that successfully works with COM1 can be switched to work with COM2 without noticing any differences.

Use Create Alias Port Window to create new alias serial port.

The following API methods can be used to create and configure alias ports:

Shared Ports

It is well known that Windows operating system treats serial ports as exclusive devices, that is, it only allows a single application to “open” a port and communicate with a device.

However, this “exclusiveness” is sometimes a stop factor that prevents a very convenient setup. For example, you have a GPS Modem that constantly reports its location data to the serial port and you want two applications, Application A and Application B to receive this data.

Since it is impossible to remove the exclusive state of an existing COM port, Virtual Serial Port Tools solves this task by allowing you to create a new virtual serial port which shares any existing serial port to any number of applications.

For example, say our GPS Modem is connected to COM1. An invalid setup would be:

ApplicationPortResult
Application ACOM1Success
Application BCOM1Fail

Now we create new virtual serial port COM2 and set it to share COM1 and the valid setup would be:

ApplicationPortResult
Application ACOM2Success
Application BCOM2Success

Created virtual serial port “backs” any given existing serial device. Any application opening the shared port continues to work exactly like it worked with original device. At the same time, there is no longer a limit of a number of times a port may be opened by different or same applications.

Use Share Port Window to create and configure new shared virtual serial port.

The following API methods can be used to create and configure shared ports:

Split Ports

This type of serial port is similar to shared port described above, but also allows you to assign multiple device names to a shared serial port. In fact, when you create a split port configuration, the following happens under the hood:

First, a shared virtual serial device is created that provides shared access to a given serial device. Then a number of alias ports are created for the shared serial device. Any number of applications (or the same application multiple times) may open those alias ports, effectively accessing the same original serial device.

Use Split Port Window to create and configure new split virtual serial port.

The following API methods can be used to create and configure shared ports:

TCP/IP Ports (RFC2217, RAW)

VSPT allows the user to create a virtual serial port whose traffic is redirected to a specified TCP endpoint (host name/address and TCP port). The exchange protocol corresponds to RFC2217. A raw protocol is also supported.

The following two modes are supported for created TCP/IP virtual serial ports:

Connecting (TCP/IP client)
The user provides a remote host name or address and TCP/IP port to connect to. When application opens a virtual serial port, a TCP/IP connection is attempted to the specified endpoint. After successful connection, communication continues according to selected protocol.
Listening (TCP/IP server)
The user provides a local address (or * for all local addresses) and local TCP/IP port. When application opens a virtual serial port, a listening socket is created and driver waits for incoming TCP/IP connection. After successful connection, communication continues according to selected protocol.

Virtual Serial Port Tools also contains a TCP/IP Serial Ports Server component, which can be used to share local serial ports over TCP/IP network. This component may also be separately installed or even “copy-deployed” on a remote computer for simple port sharing scenarios.

Use Create TCP/IP Serial Port Window to create and configure new tcp serial port.

The following API methods can be used to create and configure TCP/IP ports:

Script Ports

“Script ports” is the exclusive and powerful feature, only offered by the Virtual Serial Port Tools. Virtual script port is a port that is “powered” by a custom device script, written in TypeScript or JavaScript programming language.

A device script implements a virtual serial device, uncovering a tremendously wide list of capabilities and fast turn-around times for any custom serial port scenario, including creation of all kinds of device emulators, local and network communication channels and a lot, lot more.

Simple yet powerful and fully asynchronous Device Script API allows the device script to access the local file system, establish network connections and send HTTP requests.

Remote Ports

VSPT allows you to directly connect to any serial port that physically exists on another computer. This is done by means of creating a new local virtual serial port and directing it to a port shared by Remote Serial Ports Server component. This component may also be separately installed or even “copy-deployed” on a remote computer for simple port sharing scenarios.

Use Connect Remote Port Window to create and configure new remote virtual serial port.

The following API methods can be used to create and configure shared ports:

Pipe-connected Port

A new virtual serial port may be connected to a named pipe. This configuration mainly exists to simplify connection with virtual ports created by VM software in running guests.

Use Create New Pipe Port Window to create new pipe-connected port.

The following API functions can be used to create pipe-connected ports:

Listening Port

Finally, the last supported type of virtual serial port forms a “server”, listening part of a remote bridge.

A listening port first needs to be created on one computer and then remote bridge is created on another computer, connecting to this listening port.

Use Create Listening Port Window to create new listening port.

The following API functions can be used to create listening ports: