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
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
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
2). Startup a terminal session
3). sudo apt-get update
4). cd to wherever you have downloaded the .deb into
5). sudo apt-get install ./olctl.deb Note if mono is not already installed apt-get will install it as well.
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 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
Session persistence is provide the file olctl.ini located at
Windows: C:\Users\<username>\AppData\Roaming\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.
1) unzip olctl2.zip
2) chmod 755 olctl
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