Virtual COM port
# Virtual COM port

A virtual serial port is a software representation of a serial port that either does not connect to a real serial port, or adds functionality to a real serial port through software extension.

## Software virtual ports

A software-based virtual serial port presents one or more virtual serial port identifiers on a PC which other applications can see and interact with as if they were real hardware ports, but the data sent and received to these virtual devices is handled by software that manipulates the transmitted and received data to grant greater functionality.

Operating systems usually do not provide virtual serial port capability. Third-party applications can add this ability, such as the open-source com0com, freeware HW VSP3, or the commercial Virtual Serial Port Driver.

Some virtual serial ports emulate all hardware serial port functionality, including all signal pin states, and permit a large number of virtual ports in any desired configuration. Others provide a limited set of capabilities and do not fully emulate the hardware.

This technique can be used either to extend the capabilities of software that cannot be updated to use newer communication technologies, such as by transmitting serial data over modern networks, or to achieve data flows that are not normally possible due to software limitations, such as splitting serial port output.

### Port sharing

A serial port typically can only be monitored or transmitted to by one device at a time under the constraints of most operating systems, but a virtual serial port program can create two virtual ports, allowing two separate applications to monitor the same data. For instance, a GPS device which outputs location data to a PCs serial port may be of interest to multiple applications at once.

### Network transmission

Another option is to communicate with another serial device via internet or LAN as if they were locally connected, using serial over LAN. This allows software intended to interface with a device over a local physical serial port to instead communicate at long distance.

## Bluetooth

Bluetooth implements virtual serial ports over the Serial Port Profile. This is the standard way of receiving data from Bluetooth-equipped GPS modules, for instance.

## Softmodems

The drivers for a software-implemented modem create a virtual serial port for communication with the host operating system, since the modem is implemented entirely in the device driver and therefore there is no point where the serial data would be sent to the physical card.

