Note: eightolives web pages use Javascript which is not enabled.
    eightolives.com

eightolives' RadioRemote

PRELIMINARY


Download RadioRemote Server (Linux)

Screen Shot Screen Shot Eightolives RadioRemote is a remote control system for operating the Elecraft KX3 radio. It requires the radio to be properly connected to a "Primary" computer or smart interface to link control and audio between the radio and the software. This allows the "Primary" computer to control your radio. You can also use a remote phone, pad or other platform to connect to the radio using your local network or the internet via the "Primary" computer.

The "Primary" computer connects to the radio using the Elecraft KXUSB serial cable for control. That's all that needed to just 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 software which manages the USB control interface and a RadioRemote User Interface (UI) web app running in a modern browser which 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.

The RadioRemote Server is primarily Javascript software that requires pre-installation of NodeJS, an open-source, Javascript runtime environment that installs on Windows or Linux computers. Optional GUI interfaces are provided for Python and Tk/Tcl. The server controls the USB serial link interface to the radio and communicates to the primary and remote UIs using WebSocket technology.

The User Interface web app is a web page using regular HTML5 and Javascript that runs in a modern browser. It's tested using Firefox, Chrome and Safari. It also manages the audio transfers between the radio and remote UI using Web Real Time Communications (WebRTC) technology.

Things you can do
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, the 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.

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 must be installed on the Primary computer or interface box. It also requires NodeJS and supporting libraries to be installed. The server and NodeJS support 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 software is packaged in a .zip file. Unzipping the file presents the "server" directory which contains all the required pieces.

Download the RadioRemote Server software into the working directory. Unzip the file in the working directory. Read the README.txt file for further instructions.

The server uses a default network port number of 3001 for secure https and wss access. Port 3000 is also used for unsecure http access. If accessing from a remote platform, note that the IP address for the Server running on the Primary computer may be dynamically assigned upon application of power by the network router. It is recommended that you assign a fixed value for the IP address to avoid having to "discover" it each time you run the program. 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 internet, beyond your local network, you need to assign Port Forwarding in your network router. Port Forwarding of ports 3001 (and 3000) 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.

The Primary UI which runs on the Primary Browser which runs on the Primary computer and controls audio accesses the Server using IP address "127.0.0.1:3001". Other UIs on the local network may use "0.0.0.0:3001" or the internal, fixed IP address on port 3001. Platforms on the internet beyond the local network would use the External IP address on port 3001.

The Server needs to run in a secure manner requiring an SSL certificate to run https and wss protocols. You can aquire one from various providers or create a self-signed certificate using openSSL or you can use the default, self-signed certificate provided. The self-signed certificate is only valid for a certain time period, such as 1 year, and needs to be replaced with a new valid one.

If you use a self-signed certificate, you must first get your web browser to recognize it as acceptable by accessing the https port on the server and acknowledging the various warnings about the certificate until it is accepted. A default self-signed certificate is provided in the software and here.

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).