OLIVIA Mode User Manual

  1. Introduction
  2. Features
  3. Operation
  4. Bugs and deficiencies
  5. Copying

1. Introduction
OLIVIA Mode supports communications in the Olivia digital mode. OLIVIA Mode's source code is based on the original C++ reference application written by the creator of the Olivia digital mode, Pawel Jalocha. In order to incorporate the relevant source code, I had to manually translate it to C and to adapt it for use with the Lhpsdr HPSDR client application. OLIVIA Mode operates as a Guest mode of Lhpsdr and in its own GTK-3 Window. The Receive and Transmit functions work with Lhpsdr's receiving and transmitting functions and not with the computer's sound card, as was the original, and an IFFT-based "Waterfall" display is available to help tune in signals.

Transmission of OLIVIA-encoded characters is realized by sending pre-computed audio samples to the transceiver's DUC. OLIVIA mode has a limited built-in CAT capability which enables the user to change the Transceiver's center frequency using the Waterfall and to switch between Transmit and Receive modes.

OLIVIA Mode's receiving functions are based on Pawel Jalocha's original reference application. Reception of Olivia transmissions is carried out by processing the audio samples stream from the CW Demodulator, after down-sampling to the original 8kHz sample rate from the Demodulator's 48kHz sample rate.

2. Features
"Waterfall" display with CAT
OLIVIA has a "Waterfall" (audio spectrum) display derived from the IFFT of the Receiver's audio output. A vertical white line indicates the center frequency of the CW Filter used in reception. When tuning a signal manually, its trace should be centered on this line for best results.

The Waterfall display can be used to tune in a signal by clicking with the left mouse button near its trace. OLIVIA will scan a small section of the display either side of the mouse pointer, looking for the strongest trace and then tune the receiver so that the signal is centered on the whiter center line. Because of the very narrow frequency error tolerance of OLIVIA, it is usually necessary to fine tune manually after this, usually by rounding to the nearest 0.1 kHz value.

Macros in Transmit mode
OLIVIA allows 10 prepared Macros to be sent by clicking on one of the ten buttons in the 'Prepared Macros' frame for easy transmission of repeated messages like call-sign exchanges, station info, BTU, sign-off etc. Theses Macros are stored in the ~/.lhpsdr/olivia/olivia.config run time configuration file and are invoked by clicking on the relevant Macro button. Short labels for these Macros are also stored in olivia.config and are displayed in the button labels. For even more operating convenience OLIVIA allows the use of 'tags' embedded in the Macros for automatic insertion of certain basic strings in the transmitted message: call-sign, RST, name, QTH and QTH locator for both the operator and the remote station, the current UTC date and time and the operating frequency. The program's version string is also available as a tag so that it can be included in a macro, e.g. there are 13 tags altogether in this version. More on this in the Operation section.

QSO Recording and Logging
OLIVIA Mode can save details of activity during its operation in three separate files on the disk:
1. In ~/.lhpsdr/olivia/record.txt all characters printed in the Transmit or Receive window including Macros are recorded 'raw' e.g. in real time and unedited. This makes it possible to check everything transmitted or received during operation if something goes wrong.
2. In ~/.lhpsdr/olivia/log.txt all details of a QSO entered in the QSO Record form (under the Receive window) are saved in text form with the addition of date and time to form a standard station log.
3. In ~/.lhpsdr/olivia/log.adif an ADIF-formatted version of the QSO Record is saved for direct uploading to eQSL.cc or other sites that can accept ADIF formatted logs.

3. Operation

OLIVIA Mode User Interface
OLIVIA Mode's window has the following widgets:

The Transmit window: Any text typed during transmission appears in this window. When it is filled, it scrolls automatically so that the last line is always visible. It can be cleared by right-clicking in the window and activating the 'Clear Window' item in the pop-up menu. Clicking the middle button toggles OLIVIA between the Transmit and Receive modes.

The Transmit Character Monitor: At the top of the Transmit window there is a long text entry widget that displays the characters that are being transmitted by the OLIVIA Mode in real time. Characters typed in the keyboard or supplied by a saved Macro appear immediately in the Transmit window and are queued in the Olivia transmit buffer for the Olivia encoder to be transmitted in turn. When transmission is complete, the "LED" indicator at the left of the entry widget will turn to green and a "Beep" sound will be played in the audio output of lhpsdr.

The Receive window: Displays characters decoded from a OLIVIA signal. When it is filled, it scrolls automatically so that the last line is always visible. It can be cleared by right-clicking in the window and activating the 'Clear Window' item in the pop-up menu. Clicking the middle button toggles OLIVIA between the Receive mode and Standby.

Receive Parameters display: At the top of the Receive window there are text entry widgets that display the status of the Receive functions:
The Char/sec entry indicates the number of characters that can be transmitted per second, depending on the Olivia mode.
The Input SNR entry indicates the Signal-to-Noise ratio of the input signal.
The Sync SNR entry indicates the Signal-to-Noise ratio at the Olivia Synchronizer.
The Freq Offset entry indicates the calculated difference between the transmitting and receiving stations. This difference is indicated in Hz and the Tune button to the right can change the Transceiver's frequency to match the incoming signal's frequency. The reading is valid when it stabilizes after the initial synchronization effort by the Olivia functions.

The QSO Record frame: In this frame there are seven entry fields in which basic QSO data are entered for saving in the text-format station log file and the ADIF-format log file in the ~/.lhpsdr/olivia/ directory. The minimum requirement for a valid record is the DX station's call-sign, signal report and operating frequency. The mode and date are entered automatically by OLIVIA each time a new record is opened. OLIVIA will read the Transceiver status and enter the signal report and operating frequency automatically each time a new record is opened.

The buttons below the QSO Record fields have the following functions:
Open New Record: This button clears all but the 'Band' field and enters the mode (BPSK, QPSK-USB or QPSK-LSB) and date and time to the QSO record buffer in memory. If there is a previous valid record then this is saved to the log files in ~/.lhpsdr/olivia/ before a new record is opened. Key F10 also opens a new Record.
Save Record: Opens a pop-up save dialog box. If the QSO Record is valid (call-sign, RST-out and Band have been entered) then a confirmation request for saving is shown, otherwise if not, a warning is given to that effect. Key F11 also has the same function.
Clear All Fields: This button clears all entry fields. NOTE: This will clear the QSO Record buffer in memory, resulting in lost data if the record has not been saved first!.
Clear Windows: Clears the Transmit and Receive windows of all text.

The Macro buttons frame: In this frame there are ten buttons that initiate the transmission of prepared macros, e.g. standard messages saved in the run time config file OLIVIA (in the ~/.lhpsdr/olivia/ directory). Clicking on a button puts OLIVIA in Transmit mode and starts transmission of the macro, clicking again on any of these buttons interrupts the macro but leaves OLIVIA in transmit mode.

The pop-up menu: This opens on a right-click on the Receive or Transmit window. It has the following items:
OLIVIA mode: Select the Olivia mode. The OLIVIA Guest supports some of the popular Olivia modes: 4/125, 4/250, 8/250, 8/500, 16/500, 32/500 and 32/1000.
Record QSO's: Enable/disable recording of everything printed in the Receive or Transmit windows to the record.txt file.
Capitalize letters: Enable/disable capitalization of letters in the Receive and Transmit windows.
Clear Window: Clears all characters of the underlying window.
Identify in CW: Sends sends the station call-sign in CW/Morse code.
Quit: Quits OLIVIA Mode.

Configuration and set-up
After compilation and installation, the ~/.lhpsdr/olivia/olivia.config run time configuration file MUST be edited for proper operation! To do this, load ~/.lhpsdr/olivia/olivia.config into your favorite editor and make sure that you review ALL the configuration fields in the file and that you properly edit all the ones that must be edited. There are three sections, OLIVIA Run time, Operator/QTH info and Macros fields. Please review ALL and EDIT as needed!! There are more detailed instructions in the file itself so please follow them for a proper set-up. In particular, station details like Call-sign, operator's name and QTH etc must be edited for Macros to be usable.

Receiving OLIVIA signals
OLIVIA Mode is a narrow-band mode and it requires accurate tuning for reliable operation. For manual tuning this requires the receiver to have a tuning step of 1 Hz, but because Olivia is a (very) weak signal mode operating frequencies are normally channelized on a voluntary basis. Stations may also agree on a frequency if a schedule is agreed on. In both cases, usually the operating frequency would be rounded to the nearest 0.1kHz value. The Waterfall display can be used to tune in a signal by clicking near its trace. OLIVIA will adjust the center frequency so that that the signal is tuned in closely but manual fine tuning will likely be needed.

Conducting a QSO
As usual to make a QSO with another station using OLIVIA you may call CQ or reply to a CQ. Calling CQ would normally be done using a prepared Macro by clicking on the relevant Macro button and during the course of a QSO, other Macros can be started as needed, to send some of the standard messages that are usually exchanged. When the Macro is finished, OLIVIA will revert to Receive mode if an underscore '_' in the macro is encountered. Otherwise if a tilde '~' is encountered, OLIVIA will remain in Transmit mode so that a manually typed message can follow the Macro. Reversion to Receive would then be done by typing in ESCAPE.
Please note that Macro transmission can be interrupted by middle-clicking on the Receive or Transmit window.

When a station replies to a CQ it would normally be netted closely and characters transmitted will appear in the Receive window. If there is a significant frequency offset, it will cause errors in decoding but offsets less than +- 50-60 Hz will be automatically corrected by the Olivia Sync functions.

Once two-way contact is established, at least the station's call-sign, RST, and the QSO frequency must be entered in the QSO Record's fields before it can be saved to ~/.lhpsdr/olivia/log.adif and ~/.lhpsdr/olivia/log.txt. BUT PLEASE NOTE: Always remember to 'Open New Record' before entering any data otherwise the mode and date/time will not be entered to the record buffer by OLIVIA.

Any information entered in the fields is available to any relevant 'tag' in the Macros but please note that if any fields are not filled, OLIVIA enters blanks in place of tags! Please note that during transmission no entries should be made to the QSO Record fields since these will reflect in whatever tags are embedded in Macros.

To reply to a CQ, tune in the station accurately and type or copy-paste its call-sign, signal report and frequency in the QSO Record fields. Then prepared Macros can be used to reply to the call and conduct a QSO. Have a look in ~/.lhpsdr/olivia/olivia.config for some typical prepared Macros.
NOTE: You will need to edit at least some of these!!

4. Bugs and deficiencies
I have fixed whatever bugs I came across testing OLIVIA, but there may be some hiding, waiting for the right conditions to appear.

5. Copying This software package is released under the GNU Public License. Please see the COPYING file for more details.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.