1.
Introduction
The HELL Guest mode supports communication in the Hellschreiber
"fuzzy" digital mode and it currently supports two modes, standard
Pulse-modulated FeldHell and FSK-modulated FMHell as per IZ8BLY's
design. HELL detects the Pulsed or FSK Hellschreiber signals by
processing the audio samples stream from the CW Demodulator.
The audio samples stream is processed by a Goertzel tone detector
and is "painted" directly to the Receive window of the HELL mode.
Thus there is no software decoding of the incoming signal, leaving
the recognition of characters to the human eye/brain combination,
hence the term "fuzzy digital" often used to describe the
Hellschreiber system. An IFFT-based "Waterfall" display is
available to help tune in signals.
Transmission of Hellschreiber characters is realized by sending a pre-computed audio samples stream to the Transceiver's DUC. HELL 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.
2. Features
Software Tone
Detector
The HELL mode was designed from the beginning to be simple and
efficient, decoding Hellschreiber signals using mostly integer
arithmetic and simple processing methods. It processes the audio
samples stream from the CW Demodulator to detect the pulsed or
fsk'd tone signal that makes up the Hellschreiber characters, by
implementing a Goertzel tone detector algorithm. The output from
the detector is painted directly to the Receive window in
continuous Gray scale so that there is no thresholding of signal
intensity.
"Waterfall" display with
CAT
HELL mode has a "Waterfall" (audio spectrum) display derived from
an IFFT of the receiver's audio output. A vertical line indicates
the center frequency of the tone detector. 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. HELL 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 center line.
Signal Waveform
Display
HELL mode has a simple "Oscilloscope" display of the input signal.
This appears when the display is clicked on with the middle or
right button and can be used to monitor the received waveform.
Macros in Transmit
mode
HELL mode 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/hell/hell.config configuration file and are invoked by
clicking on the relevant Macro button. The keyboard keys F1-F10 can
also be used to start Macro transmission.
Short labels for these Macros are also stored in hell.config and are displayed in the button labels. For even more operating convenience HELL 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. Icons and smileys included in the built-in fonts can be transmitted if their glyph number is enclosed in angled brackets, please read the comments in hell.config file for more details.
QSO Recording and
Logging
HELL mode can save details of activity during its operation in
three separate files on the disk:
1. In ~/.lhpsdr/hell/record.txt all characters printed in the
Transmit window including Macros are recorded 'raw' e.g. in real
time and unedited. This makes it possible to check everything
transmitted during operation if something goes wrong.
2. In ~/.lhpsdr/hell/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/hell/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.
4. Additionally, when the Receive window is filled, it is saved as
a jpeg image in the ~/.lhpsdr/hell/pixbufs/ directory as a direct
record of received signals.
Built-in Fonts including
Icons
HELL mode has a set of built-in fonts in Adobe BDF format files in
the ~/.lhpsdr/hell/fonts/ directory. These were derived from font
files kindly sent to me by Nino Porcino IZ8BLY from his own
Hellschreiber program. In addition there are two non-standard font
files with the font height reduced to 12 points instead of the 14
of normal Hellschreiber fonts. These fonts are not normally
compatible with other Hellschreiber receiving systems but only with
HELL and are intended to speed up character transmission rate by
removing redundant blank rows from the standard fonts. Update: With
the addition of a 105 Baud rate, 12-point fonts can be used with
programs running in standard 122.5 Baud/14-point FeldHell mode.
Please see the README file in ~/.lhpsdr/hell/fonts/ for
details.
Single-row Display of Received
characters
HELL mode is probably unique in its ability to compensate for
slight timing differences between transmitter and receiver, thereby
making it possible to print characters on the screen in a single
row only. It does this by using the blank rows of the Hellschreiber
font as a synchronizing signal from which to derive and compensate
for the timing errors. This feature is enabled by activating the
"Deskew" button at the top left of the receiving window.
Different Operating Speeds
available
HELL mode can operate at sub-multiples of the standard 122.5 baud
rate of the Hellschreiber system. These speeds are not compatible
with other Hellschreiber programs but are experimental, mainly to
test the Hell mode in very weak signal conditions. One such
application could be in VHF/UHF EME operation were in conjunction
with the more efficient 12-point fonts Hellschreiber could prove to
be an effective mode.
HELL Mode User
Interface
HELL mode's window has the following widgets:
1. The Transmit window: Any text typed during transmission appears in this window, although please note that only when the "space" key is pressed are the buffered characters transmitted. This is to avoid idle characters in broken words. When the Transmit window 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 in the window toggles HELL between the Transmit and Receive modes. Same also by clicking the "Transmit" button at the top left of the Transmit window. Next to the "Transmit" button there is a text field showing the name of the current Font in use for transmission.
2. The Receive window: Displays characters "painted" directly to the screen from the output of the tone detector. When the screen is filled, it is saved in the ~/.lhpsdr/hell/pixbufs/ directory as a jpeg image. 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 HELL between the Receive mode and Standby. If HELL is in Transmit mode it is changed over to Receive, but if a Macro is being transmitted, then it is interrupted and HELL remains in Transmit mode until another middle-click on either window. Same also by clicking the "Receive" button at the top left of the Receive window.
3. Character size and Contrast: In the main pop-up menu, the "Dot Size" sub-menu selects the size of the characters ("glyphs") painted on the Receive screen, by changing the pixel size of each "dot" of the Hellschreiber font bitmap. Default size is set in the ~/.lhpsdr/hell/hell.config file and is 2x2 pixels/dot. Under the Receive Window, the Contrast slider adjusts the contrast of characters as they are painted on the screen. Already painted characters are not effected. The default value is 5, e.g. mid-scale.
Mode Display: At the top of the Transmit Window there is a text field that shows the current Mode of operation (FeldHell or FMHell) and the Baud Rate.
4. Waterfall/Waveform: The Waterfall/Waveform widget is
an aid to tuning the receiver accurately to an incoming Feld Hell
signal. The "Waterfall" displays the spectrum of the receiver's
audio output. The Waveform display is a simple "oscilloscope" in
which the receiver's output is plotted. The Signal Waveform display
appears in place of the Waterfall when the right button is clicked
in the window.
5. 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/hell/ 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 HELL each time a new record is opened. HELL will also 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 (fhell) and the 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/hell/ before a new record is
opened.
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.
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/characters.
6. 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 ~/.lhpsdr/hell/hell.config. Clicking on a button puts HELL in Transmit mode and starts transmission of the macro, clicking again on any of these buttons interrupts the macro but leaves HELL in transmit mode.
7. The pop-up menu: This opens on a right-click on the
Receive or Transmit window. It has the following items:
Mode: Select Hellschreiber mode: FeldHell or FMHell.
Baud Rate:Select the operating Baud rate. This also results
in HELL mode automatically loading a Font file suitable for the
current Mode/Baud rate combination
Dot Size: Select the number of Screen pixels for each dot of
Hellschreiber "glyph" (character) painted to the Screen. The
default is 2x2 (each dot has a size of 2 pixels wide and 2 pixels
high).
Font Selector: Select the Hellschreiber font to be used on
Transmit. Font files are stored in the separate 12pt/ and 14pt/
sub-directories.
Show Font:Paints the current Hellschreiber font file onto
the Receive window.
Record QSO's: Enable/disable recording of everything printed
in the Transmit window to the ~/.lhpsdr/hell/record.txt file.
Loopback Tx to Rx:When in Transmit mode, enables a loopback
from the TX dsp buffer to the Rx buffer so that the transmitted
waveform is decoded by the Receive functions of HELL.
Reverse Video: This is another feature of HELL mode that,
when enabled, reverses the the "video" format, e.g. instead of
transmitting black dots over a white background, it transmits a
black background with white dots. This can potentially improve
signal to noise ratio significantly by increasing the average power
transmitted. Capitalize letters: Enable/disable
capitalization of letters in Transmit mode.
Identify in CW: Sends the station call-sign in CW/Morse
code.
Quit: Quits HELL Mode.
Configuration and
set-up
After compilation and installation, the ~/.lhpsdr/hell/hell.config
run time configuration file MUST be edited for proper operation! To
do this, load ~/.lhpsdr/hell/hell.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, HELL mode 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 Hellschreiber
signals
To receive Hellschreiber signals, start HELL Mode and tune-in the
station as follows: Select the HELL mode from the Mode button
(normally HELL-M) then tune the receiver until the trace of the
signal in the Waterfall display is centered under the center line.
Also, clicking near a signal trace in the Waterfall should cause
HELL to change the Receiver frequency so that the trace is centered
under the center line. Some manual touch-up may be needed to
fine-tune the signal, especially in FMHell mode since HELL will
tend to tune the Rx to one of the two traces that FM Hell leaves in
the Waterfall.
Conducting a QSO
As usual, to make a QSO with another station using Feld Hell 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
then 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, HELL will revert to Receive
mode unless a tilde '~' is the last character in the Macro, in
which case it remains in Transmit so that a manually typed message
can follow the Macro. Reversion to Receive would then be done by
middle-clicking on the Receive or Transmit window, clicking the
"Receive" or "Transmit" buttons or using the F11 or F12 keys.
Please note that Macro transmission can be interrupted by
middle-clicking on the Receive or Transmit window or left-clicking
on any of the Macro buttons.
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 weaken received characters but correcting this from the main dial may cause the remote station to miss reception. It may be preferable to disable the ->Rx Toggle button to allow independent Transmitter tuning.
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/hell/log.adif and ~/.lhpsdr/hell/log.txt. BUT PLEASE NOTE: Always remember to click 'Open New Record' before entering any data otherwise the mode and date/time will not be entered to the record buffer by HELL Mode.
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, HELL 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 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/hell/hell.config for some typical prepared Macros. NOTE: You will need to edit at least some of these!!
6. Bugs and deficiencies
I have fixed whatever bugs I came across testing HELL Mode, but
there may be some hiding, waiting for the right conditions to
appear.
The tone detector algorithm may need further improvements to make it more tolerant to fading and noise. The biggest problem seems to be adjacent strong signals raising the AGC and reducing the level of the signal being received.
8. 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.