eightolives' RadioRemote
PRELIMINARYDownload RadioRemote Server (Linux)
Eightolives RadioRemote is a remote control system for operating the Elecraft KX3 radio. You properly connect the radio to a "Primary" computer (think laptop) or smart interface box (think Raspberry Pi) that is running the RadioRemote software. This lets you operate the radio from the "Primary" computer. You can add other remote devices like smart phones, pads or other platforms using your WiFi local network or the external internet.


The "Primary" computer connects to the radio using the Elecraft KXUSB serial cable for control functions. That's all that needed to control the radio and use CW and digital modes. For remote operation, audio connection is also required using one of the audio connection schemes described below. You can use a USB Audio Adapter or a custom audio cable / interface that connects the radio's headphone output to the computer's mic / headset input.
The interfacing "Primary" computer must run 2 programs:
- The RadioRemote Server which can control the radio and manage remote device interfaces
- The RadioRemote User Web App which is the User Control Panel running in a modern browser
Any other remote platform, like a smart phone, only runs the RadioRemote User Web App in its web browser.
The RadioRemote Server
The RadioRemote Server manages the USB control interface to the radio and web access to remote platforms. The software needs to be installed on the Primary computer that uses either the Windows or Linux operating system.
Third-party software is needed to run the server software. Python 3 is used for the server's GUI. NodeJS, an open-source, Javascript runtime environment that runs on Windows or Linux computers, provides a command line interface to the server's operation. Various configuration options are possible, see installation notes.
The server is installed by downloading and unzipping the selected zip file. You need to specify who can log in and what privileges they have.



The RadioRemote Web App
The RadioRemote Web App is the User Interface to the radio. It provides displays, buttons and controls and runs in a modern browser such as Firefox, Chrome, Edge and Safari. It also manages the audio to and from the radio.
The server installation package contains an autostart script which starts both pieces of software. It can be also be used to "autostart" the system when you power on the "Primary" laptop.
Things you can do
- Operate the KX3 from the "Primary" laptop (Windows or Linux).
- Operate the KX3 remotely from your smart phone or remote computer using any modern browser (Google-Chrome, Safari, Firefox, Edge).



Connecting the KX3 to a Laptop Computer
Before connecting the KX3 to anything, use an AC voltmeter or scope to verify that no ground loops will exist when cables are connected. Ground loops can cause audio hum, become safety issues or damage sensitive interface components.
The Elecraft KXUSB cable provides the easiest connection for control and data signals between the Laptop's USB port and the radio's computer control connector. (In Linux, the serial port is part of the "dialout" group. You, the user, need to be part of that group (sudo adduser $USER dialout))
For audio, a USB Audio Adapter is recommended to connect between the radio and laptop.
The KX3 radio has a mono MIC input (TRRS connector), a PHONES audio output (TRS connector) and a 2.5 mm RX/IQ output (TRRS connector) (not used in this application). Plugging into the PHONES connector mutes the radio's speaker. Most modern laptops only have a HEADSET connector (TRRRS) that combines MIC and L/R audio output. Plugging into the HEADSET connector mutes the computer's speakers. You can, however, use an external Bluetooth speaker to hear the radio.
A USB Audio Adapter provides separate connectors for audio input and output. This allows point to point cabling between adapter and radio. By not using the HEADSET connector, the laptop's speakers will still function.
The audio connection between headphone output and mic input typically requires signal attenuation. Mic inputs are approximately (1 to 10 mv) -60 to -40 dbV. Headphone audio output is approimately 1 V. Additionally 1 to 1 transformers to isolate ground may be useful in reducing hum.
Installing the RadioRemote Server
The RadioRemote Server is software that must be installed on the Primary computer. It also requires either Python3 or NodeJS and supporting libraries to be installed depending on which install version you select. Either version will function in both Windows and Linux environments.
NodeJS is an open source, cross platform, Javascript runtime environment. If it is not already installed, you can download the latest version from https://nodejs.org
The server software is packaged in a .zip file. Download the selected server RadioRemote Server software into the working directory. Unzip the file in the working directory. Read the README.txt file for further instructions.
Security
The RadioRemote Server needs to operate in a secure manner and supports the following secuirty features:
- User Name / Password login to access server and radio functions with privilege levels.
- SSL secure protocol for all http and web socket communications.
An SSL certificate is needed to run the https and wss protocols. You can aquire one from:
- Let's Encrypt (free, steps involved)
- Create you own self-signed certificate using openSSL (free, steps involved, browser warnings)
- Use the default self-signed certificate provided in the RadioRemote installation zip-file (free, easiest to use, browser warnings)
All certificates are only valid for a certain time period, such as 1 year, and then they need to be replaced with a new valid one.
If you use a self-signed certificate, your web browser may warn you that it cannot verify that the link is secure because there is no traceability to a valid Certificate Authority, which is true. You must first get your web browser to recognize it as acceptable.
On encountering a self-signed certificate, your web browser will provide various warnings and buttons or links that will let you eventually proceed to accept the certificate.
A pass phrase is used for login access. The file permissions.js in the server directory needs to be updated when you install the server. It "hardcodes" the users who you allow to access the radio. Users can be categorized as Control Op, Operator, and Guest (SWL).
Networking
The Primary Browser that runs on the Primary computer uses the localhost IP address (127.0.0.1). When you start the RadioRemote Server, the display will show the actual local IP address of the Primary Computer. That is the IP address that should be used by other using platforms on the local network.
The server uses default network port numbers of 3002 for secure https access and port number 3001 for secure wss access.
Note that the IP address for the Server running on the Primary computer may be dynamically assigned upon application of power by the computer. It is recommended that you assign a fixed value for the IP address to avoid having remote users "discover" it each time you turn on the computer. The Server software will display the IP value, but if you are remote, you can't see it. The UI software does have a discovery option, but having a known, fixed IP address results in faster performance. The method for assignng the IP address to one, fixed value is operating system dependant.
If you intend to access the radio from the external internet, beyond your local network, you need to assign Port Forwarding in your network router. Port Forwarding of ports 3002 and 3001 to the Server's fixed IP address will allow external platforms to access the Server with the appropriate External IP address. The External IP address of the Server is displayed by the Server and by the UI when the UI is on the local network.