I'm considering using VirtualHere to forward the USB connections to our Hamilton liquid handling robots. The robots are currently primarily controlled by a physical computer dedicated to each robot. We need a separate computer to be able to connect to the robots to test workflows that are in development without affecting the primary computer as it is a production environment.
Currently we handle this need with a virtual machine on each computer which can take over the USB connection and then test whatever is needed with the physical robot without affecting the host OS. This works but it is becoming untenable to manage all the separate VMs, so my thought is to use VirtualHere to allow a VM hosted centrally elsewhere to connect and do testing.
So I have three questions:
1. Should I: A. Run the server software on the main PC attached to the robot, where most of the time other software will be directly using the USB connection without VirtualHere and only passing it over to VirtualHere on occasion when the development testing needs to be done; or B: run a separate dedicated server device that both the main PC and remote testing users connect through?
2. Even if both of the above are possible, would one scenario be notably favored for reliability over the other? I think both are possible technically, but unsure which would be recommended for stability.
3. Supposing I do run a dedicated server device, can I have it run Linux even though the robot's client software and drivers are Windows only?
Thank you very much in advance! Any other advice someone may have for my scenario would be very much appreciated as well.
.
Be careful of network latency if your USB devices are sensitive to that. If everything is over LAN there are no problems. If you are trying to use latency sensitive devices (e.g your robot appears as a serial device) over a high latency link you might get data corruption due to serial chip over/underflow and you should switch to XON/XOFF flow control