Serial Port is a serial communication interface that has been the backbone of industrial data transfer and even embedded computers (MCUs, SBC, SoC and Others) still provide support for it in one way or the other way. Although you might not be seeing the traditional RS-232 serial port again, the serial port still get used along with USB to Serial converters using things like FTDI chip.
Virtual serial ports are great when access to serial ports is not available, and a software application needs a connection to a serial device but cannot connect to it due to a physical lack of serial ports. Here, the computer will be reconfigured to send serial port data over LAN (local area network) or some other interface and then send data back to itself. This is basically is a virtual serial port. So how do you create one? Use a virtual serial port software, they are several of them and the Virtual COM Port Driver from Eltima is one I have tried out that seems interesting.
The Virtual COM Port Driver allows anyone to create virtual serial ports and connect them via a virtual null modern cable. The serial port emulator by Etima seems to emulate a serial port behavior quite well if not entirely. The software provides flexible port creation, management, and removal of ports. With it, applications can exchange data on the virtual ports and this is a great way of testing embedded system communication without necessary having the device physically available .
All these features combined make the Virtual COM Port Driver a compelling software for serial ports manipulation but what about the price tag? I must say the price tag is high, especially for someone looking for some virtual ports to play around but still, it provides functionality beyond what you will ever get from free software.
The Virtual COM port driver is great for industries and bushiness applications and especially if you work with a lot of legacy tools, it might as well be better off than free tools but if you do basic serial port stuff it might just be overkill.
Hi, I'm software, a hardware guy, and a technical writer. Have had a stint with the EdTech industries, but mostly interested in the space of deploying AI for edge computing. Otherwise, I am writing or coding about some technology pieces covering IoT, GPU computing, LoraWAN, PCB, Machine Learning, Precision Agriculture, Open Electronics, and related fields. Got a tip, freebies, launch, gig or leak? Contact me on Twitter, or via email: charlesayibiowuAThotmail.com. I don't bite.
However, If i remember correctly, it is also possible to use netburner virtual port for free (which is eltima) it is only stuck at 9600 baud. It is not ment to be used on anything beside Netburner equipment, but it works
Edit: I have tried with other kinds of software but none really works. Nor can you passthrough any usb port from your motherboard to any vm. There is a solution and that is to get a pci express usb expansion as you are able to passthrough the entire device.
I use USB Redirector from a Pi 4 (wired - POE powered) with an Aeotec Z-stick and ConBee II. I pass both devices to my Ubuntu VM in Hyper-v. I have had no problems after working out the configuration.
Is there a way to use a linked serial port pair with an Arduino Uno? I am trying to retrieve frequency data from the application SDRUno, which works with an SDR receiver called an SDRPlay RSP1A. The data is exchanged using the Computer Aided Transceiver (CAT) protocol, developed for use with amateur radio transceivers. The SDRUno User Manual specifies that in order to exchange info, the SDRUno application must be assigned to one serial port in a linked pair, and the requesting device is assigned to the other linked port. However, I can't find a way to get the Arduino to work with a linked serial port.
You have to create the linked pair with third party software. I am able to assign the Arduino to one of the linked serial ports using the IDE tools, but when I try to upload my sketch, I get an error message saying that the port is already open or in use by another device. It appears that the Arduino will only work with a serial port that is assigned to it when the USB cable is attached. I have tried deleting the automatically assigned port and then assigning the Arduino to a linked serial port, but I get the same error message.
An example for an application called Ham Radio Deluxe (HRD) is given on the following page. Third party tools , such as Eltima Software's Virtual Serial Port Driver 9.0 can create the type of linked serial ports described. My issue is that once created, and the Arduino assigned to one of the ports in the IDE tools section, the sketch cannot be loaded, an error message saying the port is already open.
That sounds like something that is commonly done with an Arduino Mega. A serial device is connected to Serial and another serial device is connected to Serial1. When a byte arrives on Serial it is written to Serial1 and vice versa. Something like
Yes, that might work. I thought about a Mega as an alternate, but both serial lines need to go to the PC via USB. I saw that Arduino sells a USB to serial adapter that was made to use with the Arduino variants that have no USB connection on the board. Could that be used on the Mega?
USB-TTL cables (or just modules) are widely available and can be used to connect the Rx1 and Tx1 pins to a PC. I find the cables more convenient to use. Best to get one that has 6 connections at the TTL end - mine have GND, CTS, 5v, Tx, Rx and RTS.
Well, using the MEGA did not change anything. The application on the PC is assigned to its own COM port. With the mega, I have two COM ports assigned, one for serial and one for serial1. Neither of them will connect to the application com port. This is what the "linked"ports are for. There are several applications that can create these linked ports, the one I am using is called "Virtual Serial Port Driver Pro" by Eltima Software. It creates a pair of virtual ports that are interconnected, so that two apps can communicate.
The problem is that the Arduino boards will not recognize the linked ports. For instance, I can create a linked pair of virtual serial ports, say COM 10 & COM 11, which show up in the Device Manager as "Eltima Virtual Serial Port (COM10->COM11)" and "Eltima Virtual Serial Port (COM11->COM10)". If I then attach the USB cable to the Arduino board, it will assign a regular COM port to the Arduino, say COM3. I then go into the Device Manager and change the Arduino COM port to COM 10, but the device manager then comes back showing a separate COM10 port, labeled as USB Serial Port COM10, i.e. a different port than the Eltima port previously created, which still shows in the Device Manager.
You wrote " It creates a pair of virtual ports that are interconnected, so that two apps can communicate.". These are called virtual ports because they are not REAL ports. Your Arduino serial connection can only exist with a real physical electrical connection.
rhhollin:
The problem is that the Arduino boards will not recognize the linked ports. For instance, I can create a linked pair of virtual serial ports, say COM 10 & COM 11, which show up in the Device Manager as "Eltima Virtual Serial Port (COM10->COM11)" and "Eltima Virtual Serial Port (COM11->COM10)". If I then attach the USB cable to the Arduino board, it will assign a regular COM port to the Arduino, say COM3. I then go into the Device Manager and change the Arduino COM port to COM 10, but the device manager then comes back showing a separate COM10 port, labeled as USB Serial Port COM10, i.e. a different port than the Eltima port previously created, which still shows in the Device Manager.
I found an image of the SDRPlay RSP1A and it looks like it has a USB port to connect to the Windows PC running the SDRUno software. You mention serial port so I assume that when you plug the SDRPlay RSP1A into your PC via the USB cable, it appears as a standard COM port.
If so, then in theory, you would need a virtual serial port (that SDRUno software connects to) that is connected to a real USB serial port that the SDRPlay RSP1A connects to, and also a real serial port that the Arduino UNO connects to. A software Y-lead from a virtual COM port to 2 real COM Ports.
Your Arduino UNO would already have to have the sketch loaded and the IDE disconnected. It would also have to ensure that it didn't transmit anything as that would interefere with the real communicatiosn going on.
The question then becomes - what do you want to do with the frequency when you decode it? You could display it on an LCD or OLED, but you can't print it over the standard serial port. You could use a software serial port on another pin if you needed to communicate the frequency to another device.
Thanks for your response, you are mostly spot on in describing what I am trying to accomplish. The additional part is that the SDRUno software has a capability built in that allows it to respond to the Ham Radio "CAT" (computer Aided Transceiver) protocol. Per the SDRUno manual, the program uses the "Kenwood" implementation of the CAT protocol (Kenwood is a manufacturer of Ham Radio transceivers, along with other electronics). When the SDRUno software is assigned a COM port in it's receiver control settings, it is intended to listed for CAT commands on that COM port. In the Kenwood implementation, sending the command FA; to the SDRUno should result in a response from the SDRUno software sending the frequency the SDRPlay receiver is set to.
So, I am trying to route that FA; command from the Arduino to the SDRUno software running on the PC, then read the frequency data from the SDRUno software. This info would then be used to set the frequency of a transmitter being run by the Arduino in conjunction with the SDRPlay receiver.
Ok, so in the video the guy had 1 radio connected to COM1 on his PC. He had 3 different applications running on 3 different virtual COM ports - say COM12, COM13 & COM14. COM12, COM13 & COM14 are virtual serial ports - i.e. they don't exist on the outside of a box with say a standard 9-pin D-Conn.
795a8134c1