Table of Contents

Section 5 - Using Virtual Modem

Getting online

Now you can proceed to check out the system specific guides on how to interface different vintage computers and devices with VModem. Once you are done, return back to this guide!

Make sure vmodem.sh is running on the Raspberry Pi first before attempting connection!

Making Virtual Modem run at startup

After you have verified that the VModem works properly on the console, and you have tested that you are able to connect to your network, you can make VModem run automatically as a background process after the Raspberry Pi is powered on. It will run as a background process so you won't see it's output, so it's highly recommended to thoroughly test the script first.

# Start serial port and simulate a modem
cd /boot/vmodem/
/boot/vmodem/vmodem.sh &

Beware the ampersand “&” at the end of the line. Without it, the boot process may not complete correctly (or at all).


Supported Commands

Functional Hayes commands:

Supported Extended Modem Commands

Faked Commands (does not perform any action, always returns OK)


Troubleshooting

Cannot communicate on serial terminal with the vmodem script
After running the Virtual Modem script on the Raspberry Pi, and connecting it to your computer via the USB-to-Serial adapter and a null modem cable, you should be able to fire up a simple serial terminal on the computer and issue a few Hayes commands to ensure connectivity. Hayes commands are a common way to communicate with Modems, and by typing AT and pressing enter in the terminal, you should see an “OK” response. The vmodem script also recognizes other commands, such as HELP which should provide a short list of recognized commands). If you receive a garbled response after typing AT or HELP, your serial speed settings may not be the same on both ends. Make sure you have adjusted the communication speed to match. If you receive no response whatsoever, you might have a problem with the USB-to-Serial adapter or you may be using an older UART on your computer (see section 2 for more on this). If you're still unable to communicate with the VModem script, feel free to join our Discord channel (see bottom of page for link) for further support. Simple tutorials can only go so far… :)

After dialing in, system is disconnected immediately
Make sure you are using the latest version of the Virtual Modem script. An early version had an issue where the serial connection would be cut before the network connection was established. Also, be sure to make sure your serial baud settings are correct, and they match the virtual modem script. Finally, try turning off Flow Control from the Modem Settings under Advanced Settings.

After dialing in, system reports connected, but no network is available
Make sure you have updated the network device in vmodem.sh to reflect the correct network interface. By default it is eth0. If you are using Raspberry on WIFI, you may need to change this to wlan0.

Is there any way to get it work faster than 56k?
Your serial port hardware will govern the maximum speed you can do with Virtual Modem. Please note, that Virtual Modem is a dial-up simulator. The best dial-up modems only went up to 56 kbaud, that was on a good day. You can crank it up to do a little bit faster, but you're running into limitations on what your serial port hardware can do, and faster speeds are beyond the scope of support, as going beyond your hardware limits can cause other connectivity issues that are unrelated to the virtual modem. If you would like a faster speed, you might need to look into other solutions, as this is beyond the scope of this project.

I am still having issues using your script on something else than a Raspberry Pi and Raspbian/Raspberry Pi OS
Unfortunately there is very little in terms of support with hardware and software combinations that I can offer. If it works for you, great. But if it doesn't, you will need to try the recommended hardware and software combination as highlighted in Section 2 - Shopping list and follow the instructions carefully in further sections. Unfortunately I cannot offer support with untested setups, because I will not have access to the same software or hardware as you do. And if I don't have the same hardware and software, I cannot replicate the issue in the same way as in your particular environment. If I can't replicate the issue, I'm unable to troubleshoot it and offer support. This is why we have recommended hardware and software, because it is tested known working. If you are able to replicate the issue with our recommended hardware and software, and are still having the same issue, feel free to contact us on Discord and I will be more than happy to assist.

Other issues:


Skip to previous sections


Get In Touch With Us!

Get support, share your thoughts and report bugs on Discord.