Eterlogic virtual serial ports emulator

Virtual Splitter device

Purpose: share serial port with multiple applications on the same computer by doing the following:

Splitter needs existing source serial port (real or virtual, which will be used as data provider) and virtual serial ports (which applications will open to send/receive data).

Splitter can work in Special or Default mode.

Distributing data to connected clients

Splitter will wait for all connected clients (including the slowest one connected to some virtual port) to finish reading data before continuing reading from source COM port. It means that if one of the clients is not reading data (or reading it very slowly), Splitter will eventually fill in its internal buffer and will stop reading from source COM port. The reading from source COM port will resume as soon as the slowest application starts reading again. This behavior can be overridden by the "Not allowed to block read flow" virtual COM port setting. Alternatively, you can uncheck "Allowed to receive data" to mark virtual COM port which is not supposed to read any data.

splitter_allow_reading.png

Uncheck "Allowed to receive data" or check "Not allowed to block read flow" for applications that connect but do not read data!

Multiple writers and write conflicts

For non-trivial scenarios with multiple writers please use Serial Router device instead of Splitter. It provides settings to avoid write conflicts.

Please note that Splitter works best in "all connected applications can read, just one application can write" scenario. If all connected applications are sending data to Splitter virtual ports at the same time, Splitter will do its best trying to avoid merge conflicts, but it does not guarantee that device connected to source COM port will function properly. "Multiple writers" scenario can cause issues with connected applications but Splitter device can provides configuration settings to mitigate it.

Write conflict example: application A is sending "switch to channel A" command, but application B is sending "switch to channel B" command. In this case the latest sent command will take effect, but the first command will be overwritten. The device will switch to channel B, even though application 1 expected it to switch to channel A.

If your applications do not function properly, you can uncheck "Allowed to send data" checkbox to prevent writing for undesired applications (the application will work in read-only mode and all write requests will be ignored). Every virtual port can be configured separately. For example Splitter COM1 <-> COM2,3,4 can be configured to have COM3 and COM4 as read-only (reading data from COM1), and COM2 can read and write.

Additionally, you can configure redirecting DTR/RTS modem registers for every virtual port.

Splitter configuration example

splitter_graph.png

Data flow diagram

splitter2.png

Splitter settings

Splitter settings

Splitter settings: Data source serial port

Splitter settings: Virtual ports

Troubleshooting Splitter connection issues

In very rare cases, Splitter may not work properly with serial ports created by other software. If that happens, you can apply one of the following workarounds:

See also:

2007-2025 Eterlogic Software