Running SafecomLink for Pactor on Linux
- SafecomLink

- Jun 14
- 5 min read
This manual was kindly contributed by Matjaž Kmet (S57MK), a SafecomLink user.
This document is containing step-by-step instructions on how to enjoy SCS modems in conjunction with Linux. Ubuntu 20.04 LTS 64-bit desktop, other Debian based software & Raspberry Pi OS are on focus here, while user software Xastir and Pat (Winlink) will be introduced in the later parts of this document.
Robert Wolters (DM4RW) has programmed the non-driver solution and guided through these documented steps to achieve the installation. The scsterm solution was produced by Peter Mack (SCS - DL3FCJ).
All commands in this manual can be adapted for other Linux distributions, such as Fedora, Arch, SUSE, and others, with the assistance of AI.
Step 1: Non-Driver Solution for Ubuntu & Raspberry Pi
Start by installing the package setserial:
sudo apt-get install setserial go to cd /etc/udev/rules.d then create the following file sudo nano 10-local.rulesGo To:
cd /etc/udev/rules.dThen create the following file
sudo nano 10-local.rules:
SUBSYSTEM=="tty" \
, ACTION=="add" \
, ATTRS{idVendor}=="0403" \
, ATTRS{idProduct}=="d012" \
, SYMLINK+="DR7800" \
, RUN+="/bin/setserial /dev/DR7800 divisor 29 spd_cust"
SUBSYSTEM=="tty" \
, ACTION=="add" \
, ATTRS{idVendor}=="0403" \
, ATTRS{idProduct}=="d013" \
, SYMLINK+="DR7400" \
, RUN+="/bin/setserial /dev/DR7400 divisor 29 spd_cust"
SUBSYSTEM=="tty" \
, ACTION=="add" \
, ATTRS{idVendor}=="0403" \
, ATTRS{idProduct}=="d015" \
, SYMLINK+="PTC-IIIusb" \
, RUN+="/bin/setserial /dev/PTC-IIIusb spd_vhi" Close with CTRL-x and save it with y. Then apply the rule by the phrase
udevadm control --reload Thereafter connect the modem via USB and check under cd /etc if the Port (DR7800 or DR7400 or PTC-IIIusb) is existing.
In i.e., Xastir you can then use as TNC Port: /dev/DR7800 or /dev/DR7400 or /dev/PTC-IIIusb
The following command gives a good overview on what is happening on the port(s):
udevadm info -q all -a /dev/ttyUSB0
Kernel updates will not disable this programmed solution!
Background Knowledge Base:
First create a symbolic name P4dragon with idVendor 0403 and idProduct d013 (d013 = SCS DR7400 / d012 = SCS DR-7800) for a symbolic port. In /dev find a file P4dragon that symbolically steers to the real port. It is no longer necessary to know if the real port is i.e., ttyUSB0, ttyUSB1 or ttyUSB1001 as we just use /dev/P4dragon as of this point.
Now we call for setserial which is able to define serial ports.
The only thing to be done is to set the divisor (which is 29) and tell that we wish to operate in custom baudrate. Approaching the device now with 38400 baud it is an actual (requested) 829440 baud rate.
Pulling the USB connector makes the P4dragon file vanishing out of cd /dev. On reconnection the file is generated again and the divisor is set to 29 immediately again. Crosscheck with
setserial -a /dev/P4dragon Compile term (again) (see Part 2) whereby the ports need to be set to /dev/P4dragon. The compiled file term can then be copied as i.e., scsterm in cd /usr/bin. Just call for scsterm in the future, as the problem with finding the true port does not exist any longer (scsterm should always work).
The mentioned idProducts refers to the DR-7400 (d013) and DR-7800 (d012). However, finding your device needs the following input in the Linux-terminal:
dmesg|grep ttyUSB and check here which ttyUSB Port the P4dragon is connected to and type input
udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSBn)
(exchange n with the USB-port detected)
This results in an enormous output regarding idVendor, idProduct, etc. If you had several P4dragons connect to the computer integration of the serial number would me mandatory and each P4dragon would need an own symbolic port definition.
Step 2 (Optional): multi modem solution - SCS Term - interface detection
The latest solution from SCS employee Peter Mack (2021) is of help if you have multi range of SCS modems. Linux will after installation recognize either DR-7400/7400, PTC-IIIusb, Tracker, etc. Following the commands from the readme file are copied to do the install process.
Prerequisites: On a Debian or Debian based system simply do
sudo apt update
sudo apt install build-essential libusb-1.0-0-devIn general, you need gcc, make and libusb_1.0.
Get the source
git clone https://github.com/scsptc/scsterm.gitBuild: Change directory to the scsterm source
cd scstermand simply enter
makeStart with
./scstermOr you may copy scsterm to /usr/local/bin
sudo cp scsterm r/local/bin/
Function: SCS Term searches for SCS modems (max. 8) on USB. If more than on modem is found SCS Term presents you a list of the modems.
More than one SCS modem found! Please choose:
1: /dev/ttyUSB0 P4dragon DR-7400
2: /dev/ttyUSB1 PTC-IIIusb
Enter a number: Enter a number from the list and press enter.
If you don't want the automatic search, you can enter the device and baudrate as arguments:
./scsterm /dev/ttyUSB0 38400If you get a permission denied error, you normally have to add the user to the group dialout!
sudo usermod -a -G dialout username
replace username with your username. Log out and log in again to activate the changes!
Tested on:
- Debian 10
- Ubuntu 20.04
- Raspberry Pi OS Lite
SafecomLink Linux Installation & Configuration Guide
This guide outlines the steps required to install and configure SafecomLink on Linux using Wine. The process is highly similar to installing VarAC, with the critical addition of the .NET 4.8 runtime.
Phase 1: System Preparation & Wine Installation
First, you need to update your package manager, enable 32-bit architecture support, and install Wine alongside Winetricks.
Update the package lists:
sudo apt updateAdd 32-bit architecture support:
sudo dpkg --add-architecture i386Update the package lists again to recognize the new architecture:
sudo apt updateInstall Wine and Winetricks:
sudo apt install wine64 wine32 winetricksPhase 2: Environment Configuration (.NET 4.8)
SafecomLink requires the .NET 4.8 framework to run properly. Skipping this step will cause the program to throw an error upon opening.
Install the .NET 4.8 runtime via Winetricks:
winetricks dotnet48Phase 3: Hardware & COM Port Permissions
To ensure SafecomLink can communicate with your radio hardware or modems (such as Pactor units), your Linux user account needs proper access permissions to the serial interfaces.
Add your user to the dialout group:
sudo usermod -aG dialout $USERGrant read/write permissions to the relevant COM ports:
If using a standard USB-to-serial port (e.g., ttyUSB1):
sudo chmod 666 /dev/ttyUSB1If using custom symbolic links/names (e.g., DR7800 or pactor):
sudo chmod 666 /dev/DR7800 sudo chmod 666 /dev/pactor⚠️ Important: You must log out and log back in (or completely reboot the system) for these group and permission changes to take effect.
Phase 4: Software Installation & Verification
Install SafecomLink: Right-click the SafecomLink installer executable and select "Open With Wine Windows Program Loader" (or run wine SafecomLink_installer.exe via the terminal).
Verify Wine COM Port Mapping: Wine automatically maps Linux serial devices to Windows COM ports. To check exactly how your ports are mapped, run:
ls -l ~/.wine/dosdevices/com*Typical mapping convention: /dev/ttyUSB0 usually maps to COM33, /dev/ttyUSB1 maps to COM34, and so forth.
