Table of Contents
Have you ever wanted to connect to a USB device, such as a webcam or a printer, but you were in a different room? With VirtualHere you can connect to remote USB devices over your wired or wireless network, and your computer will think they are directly attached.
VirtualHere is the perfect solution to connecting USB devices over your network, be it Ethernet or WiFi. It works seamlessly with Windows, Linux, or macOS, and it’s very easy to set up.
All you need to do is to run a VirtualHere server on a Raspberry Pi, any Raspberry Pi will work as long as it can connect to your network. You plug your USB device into the Raspberry Pi and then use a VirtualHere client on your workstation to connect to the server over your existing network.
If you’d like to run a remote camera, this is an ideal solution. So let’s get it installed!
Installing the VirtualHere Server
You will need to have a network-attached Raspberry Pi that is running the current version of the Raspberry Pi OS for this to work. Any type of network connection will suffice, including WiFi, so you can even use a Raspberry Pi Zero W or Zero 2 W.
Getting the Server Software
Once you have your Raspberry Pi connected to the network, use it to go to the VirtualHere website. You might want to read some of the home page text to learn more about the capabilities of VirtualHere.
After that, head over to the Linux Server download page. Scroll down until you get to the Generic VirtualHere USB Server Builds. Download the “VirtualHere USB Server for Linux (ARM)” file to your Raspberry Pi.
Once the file has been downloaded you can close the web browser on the Pi, you’ll need to revisit it on your client computer later.
Installing and Running the Server
Open your terminal and navigate to the Downloads folder.
The next step is to make the file you downloaded, which is named vhusbdam, executable:
sudo chmod +x vhusbdarm
And finally, you can run the server file:
When you run the VirtualHere server, you’ll get a message on your terminal saying that it is active. You can press Ctrl-C to stop it if you need to.
Run Automatically on Boot
If you plan on dedicating a Raspberry Pi to being a VirtualHere server, then you’ll likely want to have it run automatically every time the Pi is powered up. This way, you can run it in “headless mode”, without a keyboard or monitor.
You can do this by editing your rc.local file to contain an entry for VirtualHere. Open your terminal and type the following command:
sudo nano /etc/rc.local
This will open the Nano text editor, and you can now modify the file. Scroll down to the line before the “exit 0” statement and type the following:
Now save the file using Ctrl-X and then respond “Y” to overwrite the existing file.
You’ll need to reboot your Raspberry Pi for the change to come into effect.
Installing the VirtualHere Client
Now that you have a VirtualHere server working on your Raspberry Pi you’ll need to install a VirtualHere client on your target workstation.
On the workstation that you want to use with VirtualHere visit the VirtualHere client page. You will find clients for Windows, macOS, and Linux.
Download the client that suits your machine. The installation procedure will depend upon the operating system:
- Windows – The client is an EXE file, just click on it to run the installation.
- macOS – The client is a DMG file, click on it and run the installation.
- Linux – The client file needs to be made executable with a chmod command before you can run it.
Once the client is running, it will open up a dialog box when it detects a VirtualHere server on its network.
Running VirtualHere is easy, in fact, it just about runs itself!
Make sure that your Raspberry Pi is running VirtualHere, either from the terminal or by having it start on boot. Then plug a USB device into one of the Raspberry Pi USB ports.
Now go to the workstation running a VirtualHere client. You can only connect to one client at a time, just as you can only plug a USB device with a cable into one computer at a time. VirtualHere is not a replacement for a print server!
If all is working correctly, the client machine will pop up a window that displays the connection to the VirtualHere server, and it will show the server’s IP address (i.e., the address of the Raspberry Pi).
The pop-up window will also list the devices it sees connected to the server’s USB port. You may see it by name, or it may just show a hexadecimal number on the port.
You can select the device by right-clicking on it and choosing “Use”. Once you do, the device will be connected to your computer, just as if it were connected with a USB cable. If there are drivers to install, your computer will do that in its usual fashion.
You should now be able to use the remote USB device as if it were connected directly to your computer!
VirtualHere does have a licensing requirement, and I have to confess that it isn’t very clear as to what that is. To fully license the product, there is a one-time fee, which was 49 dollars when I last looked. However, it does seem that you can run a single device without a license, but again, I’m not entirely clear on this, so please don’t quote me!
Licensing aside, this is a very neat product that does seem to work as advertised. I used it with a webcam, and it performed as well as it would have had I directly connected the camera.
So for remote access to your USB devices, I suggest you give VirtualHere a try, it may just be the solution you’re looking for.
Here are some components that you might need to complete the experiments in this article. Please note that some of these links may be affiliate links, and the DroneBot Workshop may receive a commission on your purchases. This does not increase the cost to you and is a method of supporting this ad-free website.
This article is part of a series of 10 Projects for the Raspberry Pi. Check out the other articles in this series.