SLOWFEL2...An Experimental Program for Tropospheric Scatter Communication

Introduction

 

This is an ongoing development taking place within that part of the radio amateur fraternity involved with the use of digital signal processing to further communication via meteor scatter and other transient reflective phenomena. One focus for this interest can be found in the group:

HellScatter@yahoogroups.com

Slowfel2 is an EXPERIMENTAL freeware Hellschreiber (FeldHell) Tx/Rxprogram evolved while experimenting with DSP of a PC plus soundcard. It uses a highly cut down font of 5 pixels per vertical character 'stripe' and these are coded into audio tones of 1000 and 500Hz representing white and black respectively. Each pixel is sent in a block of 2048 samples at the soundcard sampling frequency of 8000Hz, and since most characters occupy 5 or 6 vertical 'stripes' this results in a character rate of around 5 seconds per character. The decoding is by a Fast Fourier Transform running at twice the transmission rate and the character pixels are decoded by taking the strongest bin between preset limits in the frequency spectrum for "black" at 1000Hz and "white" at 500Hz. This makes for an extremely sensitive ultra simple decoding method with no synchronization required whatsoever.

This program has some advantages over its predecessor program SLOWFELD in that it is an FSK system giving increased sensitivity, it is some 6 times faster and it is much less sensitive to frequency drift.

Program overview

The program is written in Borland C++ Builder and uses a PC plus soundcard running under Windows95. Reception commences with a FFT (Fast Fourier Transform) stage as a precursor to some filtering and to provide a waterfall tuning display. The incoming audio is sampled at 8000Hz 16-bit resolution, and then a decimation of 2 is applied giving a Nyquist frequency of 2000Hz. Note that frequencies above 2000Hz will ‘alias’ and fold back over the spectrum of 0 to 2000Hz and this can be avoided by deploying receiver functions such as suitable filters or pass band tuning. The spectrum between 300 to 1300 Hz is displayed on a waterfall display, which has a red bars representing 500 and 1000Hz to help tuning, with pale blue bars showing the bandwidth limits.

The character set A-Z, 0-9, plus ,.<>;:/? and space is encoded in a very crude 5 pixel per vertical element font. The character throughput is around 1 character per 5 seconds.

On receive, the program plots the output to a 512 bit long display image. When this is full it is copied to an image above, covering what was there before.

On transmit, data typed into the transmit buffer is taken out one character at a time and transmitted. Note that the output consists of two tones with the switching taking place when the two tones are in phase resulting in a constant output with relatively few switching transients. As with all methods where audio is fed to an SSB transmitter there are ENORMOUS possibilities for overloading...it will be safest to ensure that the transmitter ALC does not come into play. Also please do not exceed the rating of the transmitter for this sort of continuous duty. Note that the first two data blocks fed to the soundcard on switching to transmit are silent to avoid hot switching problems.

CQ and QSL buttons with other macros are available which enter simple messages compounded with the callsign entered at the set-up stage into the transmit buffer.

Minimum System Requirements

Slowfel2 requires Windows 95 running on a Pentium and it MUST have floating point capability. The program is very demanding on CPU time. Screen savers should be disabled and other processor intensive programs should probably be suspended while runningSlowfel2. If the CPU runs short of time there will be an obvious jerkiness in the operation. This may not be disastrous but if it is persistent then you need a faster PC or you need to turn off whatever is hogging CPU time.

Program Installation

Unzip the file "slowfel2.zip" into a suitable folder (directory). This folder can be placed anywhere but is probably best to create a new one for it at, for instance, C:\slowfel2\. If online help is desired then the file "slowfel2.htm" needs to be in the same directory. The program consists of a single .exe file, slowfel2.exe, which may be run from the Windows95 Start/Run menu or a short cut can be set up in the normal way.

To remove this program, just delete all the files in the folder where slowfel2.exe resides.

Hardware Installation

Connect a screened audio cable from the audio output of your SSB receiver to the line-input jack of your soundcard. Either left or right input (or both) will work. Don't use the microphone input of the soundcard. It is best to use a dedicated auxiliary audio output on the receiver that does not vary in level with speaker volume.

Connect a screened audio cable from the soundcard audio output to the microphone input of a suitable SSB rig. Some rigs provide an accessory input that may be more suitable.

Operation

On running the program, there will be a pause and then the waterfall display should appear and show a moving representation of the audio spectrum. Adjust the input level to the soundcard line input so that no red lines appear on the waterfall display and then adjust the sensitivity of the waterfall display to suit conditions using the TrackBar provided. If the lines across the waterfall display are shown as red then the input is overloaded and the soundcard audio-control window should be called up and the line-input level adjusted accordingly. It is vital to get this part right before going further, as you need to use all of the soundcard 16 bit dynamic range.

By the same means the audio output level may be set to suit the transmitter, and it may be considered an option to leave this window displayed

Run set-up from the dropdown menu to enter your callsign for the CW ident. You can also enter a COM Port setting to allow TX switching. Once the callsign has been entered then the CQ and QRZ macros will operate and when clicked, will place CQ and QRZ texts into the transmit window ready for transmission.

Tune in the signal so that the two tones occupy the two zones at 500 and 1000Hz, There are three bandwidths selectable from a radio group. The decoded signal should now appear on the bottom display and when this is full, the contents are transferred to a display above and the main display cleared.

There is a small screen provided for entry of the callsign of the station with which you are in contact. When this is entered the two macros will allow "callsign de callsign" messages to be placed in the transmit window ready for transmission The soundcard audio control window may have "advanced" tone control setting facilities, if so set these for mid range i.e. response as flat as possible.

There is no "Tune Up Tone" facility, although I can provide one later. Note that there is always great potential for OVERLOADING. Please keep an eye on your ALC so that this does not occur; it is safest to run with NO ALC indication occurring.

Type your message into the type-ahead buffer when in receive and do not terminate with an ‘Enter’ character. When you switch to transmit the message will be sent until the buffer is empty.

The CW ID button is enabled when the TX button is operated and stops the sending of data and sends "DE <callsign>" if the callsign has been entered in the "Set Up" routine

Note that because the soundcard input and output functions are now separated, it is possible to externally connect the centre connection of the soundcard line input and line output with a screened lead, and record msfscw6 output to a .WAV file. Any simple recording program such as the Windows generic one may be used. Please use 8000Hz sampling frequency 16-bit mono. In the same way, pre-recorded .WAV files may be played into the program, but they MUST be 8000Hz 16 bit mono also. This procedure is highly recommended to allow the user to gain familiarity with the program.,

Note that when the decoding display is full, its contents are copied to an identical display above, where it is shown until the decoding display is full again.

Problems

Writing programs for soundcards is notoriously difficult, and I cannot guarantee that the program will work on any given set-up, especially if "clone" soundcards are involved. One or two specific problems have arisen:

One property of C++ Builder that I can do nothing about is when a video display greater than 640X480 is used and then configured for zoomed fonts. This gives rise to all sorts of strange effects with some parts of the display not appearing or working wrongly. If this is suspected try reconfiguring the display to 640X480 with no zooming.

The program has now been written to separate completely the soundcard input and output functions, and this should have overcome the previous requirement for the soundcard to be capable of and be set up for full duplex operation.

I am neither a professional computer programmer nor a radio engineer. This is for fun...

 

73

Lionel Sear G3PPT lionel@lsear.freeserve.co.uk

24th March 2001.