OLCTL - Frequency Controller for Olivia Digital Mode with Fldigi de GM8JCF

 

Downloads

Windows/WINE
Linux inc RPI 
MacOS
Raw Bundle 


setup_olctl_2.4.0.0.exe

olctl-2.4.0.0.deb
olctl-2.3.0.0.pkg
olctl-2.4.0.0.zip
Join the Olivia group at https://groups.io/g/Olivia

Latest Version 2.4

Description:

Olctl is a utility which can control the frequency and operating mode of Fldigi.

Weak signalling modes such as Olivia are difficult to discern using the usual human senses of hearing and sight which is how Amateur Radio operators have found each other's signals ever since Amateur Radio started. Recently the weak signal mode FT8, and latterely JS8, have enjoyed great success resulting in explosive growth in their usage despite Olivia being much older and much more established. I was at first puzzled why such new entrants could so rapidly displace encumbent existing digital modes such as Olivia. As I operated on FT8, it became very clear to me, that because just about everyone uses WSJT/X to operate FT8, and WSJT/X has a fixed frequency "baked in" for each band, people being people will simply click the band drop-down selector and commence operating, ie they just accept whatever frequency WSJT/X has set for the band. So just about everyone operating FT8 on a given band, does so on the same frequency and hence find each other automatically, ie as Larry (K4WLO) said, the "watering hole" effect. JS8 by Jordan Sherer, KN4CRD, is an even newer digital mode which shares the weak signal and modulation characteristics of FT8 but has the through put of Olivia 16/500, and provides real conversational capbilities has taken the same approach, ie because JS8 operators all use JS8Call, and JS8Call has a fixed frequency "baked in" for each band, again JS8 operators tend to just select a band, and start operating on whatever frequency JS8Call has selected for that band.


Olctl tries to remedy the situation for other digital modes, initially Olivia, by providing that same "select a band, and start operating" experience enjoyed by FT8 and JS8 operators, and in doing so, define a de-facto standard operating frequency for each band for each digital mode, eg 3.581 MHz for Olivia 8-250, thus creating the "watering hole" effect for Olivia which will hopefully increase usage because Amateur Operators will find each other more easily, ie https://en.wikipedia.org/wiki/Network_effect first described by Theodore  Vail  and much later by Robert Metcalfe. Writing a program such as Fldigi is a very major undertaking, and certainly beyond the resources available to me, however Fldigi is a very popular (the most ?) digital modes operating program, available across Windows, Linux & MacOS, and crucially has a very easy to use and extensive API allowing 3rd party programs to interact with, and control just about every aspect of Fldigi's operations - real kudos to the Fldigi development crew for being so far sighted and un-selfish - thank you. Olctl connects to Fldigi over this API.


The primary goals of the design of Olctl is to make  it as simple as possible to use, ie there should be no need for an instruction guide, and available on as many platform as possible, ie Windows, Linux & MacOS so as to increase the probability of the "watering hole" effect. It is of course a matter of opinion if those goals have been achieved with Olctl, only time will tell, and any suggestions for improvements to Olctl are most welcome.

The current release of olctl is focused on the Olivia digi mode, other modes will be added depending on peoples suggestions.

For each of the HF bands, 160~10m, olctl contains on a per band basis the frequency to be used for each mode on that band, eg for 40m, 8-250 on 7.041 with a passband offset of 1.500 leading to a transmit frequency of 7.042500, ie 7.041000 + 0.001500

Selecting a band and mode will automatically select the well known calling frequency for that band & that mode.

The 3 frequency windows, Dial, Offset, RF Out from left to right may be changed using the mouse scroll-wheel, default of 10Hz per click. Holding down the CTRL key whilst scrolling will increase the rate of change by 1 Hz per click. Holding down the SHIFT key whilst scrolling will increase the rate of change by 100Hz per click.

In addition, the Dial & Offset frequencies may be changed by clicking on the buttons below each window.

For the Dial frequency < or > buttons will change the frequency by 500Hz, the << or >> buttons will change the frequency by 1KHz.

For the Offset frequency < or > buttons will change the frequency by 50Hz.

For both the Dial and Offset windows, clicking the ^ button will set the frequency to it's default value for that band and mode.

If the "Autoload" checkbox is ticked, then on each startup, olctl will connect to the olctl website and download the latest bandplan. If you edit your bandplan, then don't use the Autoload option. For most people, the use of Autoload is strongly recommended so that all Olivia users are on the same frequencies for each band and mode.

When starting up, olctl attempts to connect to Fldigi and until it successfully connects, olctl will probe every 2 seconds.

Once olctl connects successfully, the little square LED just above Dial display will turn Green.

Each time the program starts it will restore the position of the main window from the previous session, and also restore the band, mode, and offset from the previous session.

On the very first execution there is no previous session, so the program will use defaults of 40m. 8-250, and 1.500 for band, mode, offset respectively. The main window will be located at X=100, Y=100 where X=0,Y=0 is the top left corner of the display.

Clicking the Close button or the X in the top right hand of the main window will close the program with an option to cancel the close if needed.

Hovering the mouse over most elements on the main window will display a tooltip containing a shortform description of the element's function. Hovering the mouse over a clear area  of the main window will display the s/w version, and copyright message.

Installation:

Windows/WINE: olctl is installed on Windows based system by doing

1). Download the package fusing the link above

2). executing the setup.exe.

The installer will create the appropriate start menu entries under GM8JCF.

Linux inc RPI: olctl is installed on Linux Debian systems by doing (if your LINUX system has WINE installed including winetricks, then using the Windows Installer will probably be easier)

 1). Download the .deb package from the link above

2). Startup a terminal session

3). sudo apt-get update

4). cd to wherever you have downloaded the .deb into, usually ~/Downloads

5). sudo apt-get install ./olctl.deb Note if mono is not already installed apt-get will install it as well.

 The installer will create a menu entry under the Sound & Video group on Gnome/KDE X display system.

 MacOS: olctl is installed on macOS by doing

1). Install mono from https://www.mono-project.com/docs/getting-started/install/mac/

2). Download the package from the link above

 3). Use “Finder” to locate olctl.app.pkg - probably ~/Downloads

4). Double click to launch the installation process

5). Click through the various screens

6). On completion use Finder and Go to /Applications

7). olctl should appear as an app

For other OSes,
        For systems which can't use .DEB files for installation, try installing WINE and using the Windows Installer
        If WINE is not available for your system, download the "Raw Bundle" and manually install the components according to your system needs. You will need to install MONO - see https://www.mono-project.com/docs/ to see if your OS is supported officially.

Technical Details:

olctl is written in .NET and executes on Windows, and by using the MONO subsystem on Linux and MAC OS X. The binary of olctl (olctl.exe on Windows) is 100% processor neutral like all pure .NET assemblies. Mono provides the facilities to JIT compile the neutral assembly code to the machine specifics on which it is executing, the same thing happens under Windows but the JIT compiler is provided natively by Microsoft on the Windows platform.

Session persistence is provide the file olctl.ini located at

Windows:  C:\Users\<username>\AppData\Roaming\GM8JCF\OlCtl\OlCtl.ini  or %APPDATA%\GM8JCF\olctl\olctl.ini

Debian:     ~/.config/GM8JCF/olctl

MacOS:     ~/.config/GM8JCF/olctl/olctl.ini

To reset the settings to their default values simply delete the olctl.ini file. Next time olctl is started it will revert to default settings, and recreate the olctl.ini when it is closed.

 For systems which can't use .DEB files for installation, try installing WINE and using the Windows Installer, if that is not possible then a zip file olctl2.zip is available. Installation is then a case of performing

1) unzip olctl2.zip

2) chmod 755 olctl.exe

3) moving the two files, olctl and CookComputing.XmlRpc.dll file to a suitable place, eg /usr/local/bin. Adding the menu entry to the display system must also be carried out manually. If somebody wishes to create an installer for olctl for non Debian systems, eg Red Hat, SUSE, then this author is more than happy to assist as much as he is able to.

olctl connects to Fldigi using its XML-RPC API, as documented at http://www.w1hkj.com/FldigiHelp-3.21/html/xmlrpc_control_page.html using port 7362.

When starting up olctl attempts to connect to Fldigi and until it successfully connects, olctl will probe every 2 seconds.

Once olctl connects successfuly, olctl thereafter communicates every 100mS with Fldigi so as to ensure that any changes made in Fldigi are reflected/synchronised into olctl quickly. Any changes made in olctl, eg Dial, are immediately communicated to Fldigi.

Although XML-RPC protocol is used, and therefore in principle olctl and Fldigi could be executing on differemt machines connected by a network, in practise the latency does not make for smooth operation, therefore olctl will only connect to an Fldigi instance executing on the same machine as itself, ie http://127.0.0.1:7326.

The author used VS2019, VB.NET and CookComputing.XmlRpc written by Charles Cook, to implement olctl.

The Author may be contacted via GM8JCF (AT) G8JCF.UK

Any and all feedback/suggestions is always very much appreciated.

73s

Peter - GM8JCF

http://www.g8jcf.uk