Introduction
Introduction WinPSKse 2.23

PSK31 is an amateur radio communications mode introduced by Peter Martinez, G3PLX, that uses phase modulation and special character coding.  It allows robust narrow bandwidth keyboard "Chat" type communications between two or more stations.

WinPSKse is a logical outgrowth of WinPSK as originally designed and written by Moe Wheatley, AE4JY. The look and feel is intentionally similar, but a number of significant changes have been made, not the least of which is the ability to receive two PSK31 signals simultaneously.

AE4JY should not be blamed for anything I’ve done with WinPSKse. Any comments or suggestions should be sent directly to me at ka1dt@arrl.net.

Minimum System Requirements

WinPSKse requires Windows 95,98, or NT 4.0 running on at least a 133MHz Pentium.  It has been tried in a limited fashion on Windows 2000 and may work there.  It might run on a 486DX but it has not been tried.  It MUST have floating point capability.  The screen resolution must be at least VGA 800x600.  The program and its help documents eat up several Megs of disk space.  The program needs several Meg of RAM.

Note: This program is a processor hog.  Screen savers should be disabled and other processor intensive programs should probably be suspended while running WinPSKse.  If a message pops up saying "CPU Too Slow" then you need to try a faster PC or need to turn off whatever is chewing up CPU time. WinPSKse is significantly more of a processor hog that WinPSK because of its dual-receive capability.

Changes from Version 2.22

Changed sound card handling to better deal with overlapping sounds at program startup time.

Changes from Version 2.21

Changed PSKcore.dll to version 1.10 which has some bug fixes of its own

Changed sound card clock adjust to allow the adjustment range to extend from -10000 to +10000 to handle the (hopefully) occasional computer who's sound card is exceptionally off frequency.

Changed handling of TheirCall handling to allow upper case conversion, lower case conversion, OR no conversion at all.

Changes from Version 2.20

Fixed bug in handling of AFC range limits

Fixed problem with frequency control up/down buttons in LSB

Fixed bug in handling the correct number of Macro Sets

Fixed error in handling spectrum/frequency display for psk-20/40Added status bar item to show amount of CPU time free.

Changes from Version 2.10

Added status bar item to show amount of CPU time free.

Added continuous text capture facility.

Added Full Duplex Satellite mode.

Added ‘sernum’ keyword for macros for automatic generation of serial numbers.

Switch To button now has keyboard key F11 alternative.

The log file is now kept as a standard ADIF file.

Added "rewind"ing the received audio data about 25 seconds allowing you to go back in time and decode any signal that was received in the last 25 seconds or so.


Installation

WinPSKse is packaged in an installer called WinPSKse223.exe. When you execute this image, it will install the files by default in the C:\WinPSKse\ directory (though you may select a different directory if you wish). The installer places the files WinPSKse.exe, PskCore.dll, WinPSKse.hlp and WinPSKse.cnt in this directory. If you use help, a few other files will be created at the time you use help the first time.

In addition, the installer will place WinPSKse in your Start->Program group where you may easily access it. If desired, you may also place a copy of this entry on your desktop for easier access (see Running WinPSKse below).

The PskCore.dll file that is installed is version 1.10, which is the minimum version that will run with WinPSKse 2.23. If you have earlier versions for other programs that need it, you should not use them with WinPSKse 2.23. You could place the PskCore.dll file in the Windows/System directory, but it’s probably best to keep it in the directory it was installed in; this will minimize the possibility of conflicts.


Removal

To remove this program, just delete the files from the directory it was installed in. You may also wish to remove the entries from the Start->Program group.

Purists may also want to run Regedit and look in the HKEY_CURRENT_USER\Software folder for a registry key called "HamRadio", select it and hit delete. Your system should no longer have any knowledge of WinPSKse (this will delete the information for all versions; if you wish to only delete the information for a particular version, select only the version you wish under the HamRadio key).   Leaving this key may eat up some disk space but will not affect any other programs.  If you look at the list of programs in this folder, you will probably find remnants of all sorts of old programs, including earlier versions of WinPSKse.


Running_WinPSKse
Running WinPSKse

Once the program is placed in the directory you wish, you may double click on it in the Explorer and it should start. You may also execute it via the Start->Program->WinPSKse menu.

Hint: while in Explorer, select WinPSKse.exe with the mouse and RIGHT click on it.  A menu will pop up and select "Create Shortcut".  A Windows shortcut to WinPSKse will now appear in Explorer and you can drag it off onto your desktop or anywhere else.  WinPSKse can now be executed by clicking on the new shortcut, even though it is not located in the folder with the rest of the files.

Note: The first time you start WinPSKse 2.23, if you’ve already got version 2.0, 2.01, or 2.10 installed, you’ll get a dialog box asking:

Use existing call and macros from xxx?

(Where xxx is the name of the previous version of WinPSKse you have installed

If you answer yes, the existing Call and pre-defined macros from your previous version will be picked up and placed in your version 2.23 data. Note that this has no effect on the data for the previous version itself, only 2.23. If you answer no, WinPSKse 2.23 will start with its default values.


Tuning in a PSK31 Signal

If your soundcard is working and you already have it connected to your transceiver, then WinPSKse should begin running. Clicking the mouse in the spectrum display will change the receive frequency marker position.  Try clicking it back on a signal to see if you can get it to receive.  If the display is not showing anything, you may need to adjust your soundcard Recorder mixer volume control.

Here is a properly tuned in BPSK signal (Receive 1 = RX1).  Note the vertical vector view (RX1) and that the dotted cursor (RX1) is at the peak of the signal.

RX2 shows a very weak PSK signal  that is not tuned in correctly because the dotted cursor is not at the center of the signal.  Note that the RX2 vector view is essentially showing no coherent signal.  Click the left mouse button over the peak of the signal to move the RX1 cursor to better tune in the signal; clicking the right mouse button allows you to move the RX2 cursor instead.  Normally, you must be within about 25Hz of the peak in order for the software to find the center automatically.

The squelch control indicates the quality of the signal (the color matches the color of the received text and cursor and phase display for consistency).  Clicking in either squelch control will set the squelch threshold.

Consult the WinPSKse Reference section of this help file for all the gritty details of the program.  Don't be afraid to click around and see what happens.


Hardware Interface Setup

If your computer is already setup for using one of the other PSK31 programs, then you should be in business.  All the soundcard levels and serial port connections should work okay without readjustment.

If this is a new system, then a bit more work is required.  An interface from your PC soundcard to your radio is required.  Unfortunately, the Soundcard was not designed as a radio interface and this is the trickiest part of PSK31 setup.  Not all soundcards have the same inputs and outputs. Few radios have the same connector and signal pinouts, and so the PSK31 operator must be a little creative and dust off the soldering iron, buy a few connectors, and other assorted parts.

The basic setup is shown here.  The serial port PTT control is optional.  You can usually use the radio VOX for control or manually activate the transmitter.


Sound Card / Radio Interface

Most soundcards that work under Windows should work okay with WinPSKse.  It needs to be a 16 bit type with preferably a "line IN" jack and perhaps a "line OUT" jack as well.  The 16 bits refers to the audio resolution and NOT the PC bus type which can be ISA, PCI, USB, etc. as long as it is supported by Windows.  The most expensive sound card is not always the best in terms of audio quality.  Many $10 soundcards have better audio specs than the expensive "do everything" soundcards. The sound card does not have to only be a Soundblaster, as long as it works correctly with Windows.

Side note: Once you have everything set up and are able to send from WinPSKse, you can, if you have a spare receiver that receives AM, get a rough idea how good the soundcard will work for PSK31. Just key the rig from WinPSKse (using TX Tune) while listening to your own carrier on the receiver in AM mode. If you hear essentially nothing (dead carrier), the card is probably decent; if you hear miscellaneous garbage (odd tones, burbles, etc.), the sound card is probably inappropriate for use with PSK31. I’ve found a few soundcards that cannot pass this simple test (one was actually quite expensive).

First let’s look at the radio receive audio to soundcard connection.  Most radios have an audio out jack on the back.  Try to use a source that does not vary when you adjust the receiver volume.  If your sound card has a "line IN" jack all that is needed is to run a shielded cable from the radio audio out to the line IN jack on the soundcard.  If the soundcard only has a "MIC" input then you may have to attenuate the signal with a simple 2 resistor divider.

The audio jacks on soundcards are the stereo type with two separate channels.  WinPSKse operates in the monophonic, single channel mode so either the "Right" or "Left" channel connection can be used.  A typical cable wiring scheme is shown here.  This is only a starting point.  Your rig may require different connectors or attenuation.


PTT Interface

You can use your radio's VOX control for PTT(be careful because other Windows programs may create sounds and beeps that will key up your transmitter!).  Alternatively, you could just manually key their transmitter before placing WinPSKse into the transmit mode.

If your computer has a spare serial COM port, a simple circuit such as the one shown can be used to key the transmitter automatically.  The parts values are not very critical and you can substitute just about any NPN transistor and diode for the ones shown.


Program Setup

Before going on the air, you should enter your call sign using the "Settings" -- "General Setup" menu.  Here you can enter your call and other program setup items.  Once you’ve entered it here, your call sign should now appear at the top of the WinPSKse screen instead of the text "No Callsign Set".

Most of the settings including last used TX and RX frequencies, display settings, etc. are automatically saved in the Windows registry upon program exit.

Hint: If you wish to start fresh, run "regedit and  find the "HKEY_CURRENT_USER\Software" folder for a registry key called "HamRadio", select it and hit delete.  WinPSKse will start up next time using the default settings.

It's a good idea to make sure your sound card is installed properly and is working correctly before tackling the WinPSKse soundcard level setup.  Use the built in wave file player and recorder to get familiar with your sound card's mixer settings and capability.  It can be activated from within WinPSKse by going to the "Settings" menu and clicking on either the Rx or Tx Level adjust item.  (If you are using NT or Win95, you will have to manually select the record option in the mixer control to set the receive volume) The mixer control is used to set both the receive audio level to the WinPSKse program as well as set the "course" level setting to your transmitter.  You should use your radio's mic gain for fine adjustments.  The RECORDER mixer settings are used to control the receive audio level while the PLAYBACK mixer settings are used to set the transmitter audio level.

If you have only one soundcard, it is also a very good idea to disable all the various Windows sounds, especially if you are using VOX PTT control. You can install a second soundcard, for PSK31 exclusively, if you wish, and leave the primary sound card enabled for the Windows sounds and connected to your computer speaker. This will keep the miscellaneous noises that Windows makes off the air (yes, I’ve heard the Microsoft Jungle sound scheme on 20 meters!).


Receive Audio Input Level

Once the interface is connected, the first thing to do is set your receive audio level.  Tune your radio to a loud signal or carrier.  Bring up your soundcard's Mixer program (or use the one that comes with Windows).   The Mixer's RECORDER settings are the ones to use for adjusting the Receive audio levels.  Select either the LINE or MIC IN control and set it mid way.

Click on the WinPSKse  Signal Display TAB labeled "Input".  Adjust your recording Mixer controls for a signal display that is about half screen size on peaks.  If the level is too high, the signal display will turn red.  Here are some example settings:

Good Input level

Input Signal Too Low

Input Signal Too High

Input Signal Too High

If in one of the spectral signal views, a red message will warn of too high audio.

You should now be ready to start receiving PSK31 signals off the air.  Use one of the spectrum signal displays and just left-click the mouse cursor close to a signal peak that looks like a PSK31 signal. Make sure the AFC is checked and the correct PSK31 mode (probably BPSK) is selected.  Click on the bottom part of the squelch control until it turns yellow.  This will "open" the squelch if it is set too high.  Text should appear in the RX text window.  See the section "Main Screen Overview" for a screen shot of a typical signal display while receiving.


Transmit Audio Level Adjustment

This is probably the trickiest part of PSK31 setup because you cannot see the actual signal spectrum coming out of the transmitter.  You must guess at a good level then get someone to give you a critical signal report over the air.  The Mixer's PLAYBACK settings are the ones to use for adjusting the transmit audio levels.

Compounding the problem is the fact that the soundcard is producing around 1 volt of audio and the typical transmitter Microphone input needs only a few millivolts to drive it. One must be very careful to attenuate the soundcard signal by about 1/1000 before attempting to drive the microphone input.

 A good rule of thumb is to not have any level control near its extreme.  The mixer control should not be at its maximum or minimum and your radio MIC gain should not be at either extreme.  If they are, then you may have to try a different resistor ratio in your cable's attenuator.

The correct setting will vary from radio to radio.  In general you should not drive the transmitter anywhere near its rated power at least not at first.  If you must err, under drive your rig until you are comfortable that your signal is clean, then try bumping it up and see where your signal starts "getting wide" as observed by the receiving station.

Example of a good strong PSK signal. The noticeable sidebands are way down in amplitude.

Example of a PSK31 signal that is "Too Wide", probably from being overdriven.  There are sidebands only about 15 dB down and the signal is interfering with another PSK31 station just above it in frequency.


Main Screen Overview

Here is a live screen shot showing all the major program controls.

At the top, in the title bar, is shown the version number of WinPSKse and your call.

Following this is the menu bar and the log bar.

Then comes the Receive #1 (RX1) and Receive #2 (RX2) windows, followed by the control window containing the spectrum display, squelch, frequency and other controls.

Last is the status bar, which shows the Intermodulation Distortion (IMD) indicators, the Clock offset displays, the CPU Free Time indicator, and the current date and time.


Window Size Setup

The size of the overall program frame can be adjusted by clicking and dragging the mouse cursor on the lower right hand "grabber" icon or moving the any edge of the frame with the mouse.

Internally, the vertical size of the receive text window and transmit text window can be adjusted by clicking and dragging the bottom of either frame.  These sizes interact so it will take a bit of twiddling to get the three main windows the way you like.  Try working from the top window down to the bottom window.  The screen settings and position on your monitor are saved so you should only have to do this once.


Log File

The log file is stored as a standard ADIF (Amateur Data Interchange Format) file. (The V1.0 format of an ADIF file is described at http://hosenose.com/adif/adif.html). This makes WinPSKse compatible with other Amateur radio programs that also support ADIF files.

The default name for this file is log.adif, and it will be stored in the same directory where WinPSKse 2.23 is installed.

You may change this file and its location by going to the "General #2" tab of the General Setup dialog box and changing the "Log file location:" entry. Doing this, you may set up a new log file for the use of WinPSKse; or you may use an existing .adif file you already have, and WinPSKse will be able to use it. WinPSKse cannot open an existing .adif file if it is already open by another program, though.

WinPSKse can add entries to the file and search it using the "Find" button on the Log toolbar.

If you wish to move old log entries from your previous versions of WinPSKse (2.10 or earlier), you'll need to run the older version of WinPSKse, select "Extract Log..." to extract your older log into ADIF format. This file you generate may be used as your version 2.23 log file, or you may append it to an existing ADIF log file which may then be used by WinPSKse 2.23.

In WinPSKse 2.23, there is no longer an "Extract Log..." entry on the file menu, since there is no longer any need to manually generate an ADIF file.


Screen Capture

You may also continuously capture text in the receive windows RX1 and/or RX2 into text files of your choice.

When enabled, this facility will continuously, without additional interaction from you, place everything displayed in the receive windows into these files.

To enable continuous text capture, go into the General Setup dialog box, select the "General #2" tab, and click on the "Continuous RX1 Text capture to file" and/or "Continuous RX2 Text capture to file" checkboxes. Then enter the filename you wish to use for placing the captured text. The files used for the RX1 and RX2 text capture cannot be the same file, they must be different.

Each time WinPSkse is started, a time stamp will be placed in the capture file(s), as well as each time WinPSKse is terminated. The timestamps, for example, might look like:

<<Start - 23 Dec 2000 19:45:34 UTC>>

for starting, and:

<<Stop - 23 Dec 2000 20:48:29 UTC>>

for ending.


File Menu

This menu is used to exit or to save the current receive window text as a *.txt file.  This is useful for archiving sessions of WinPSKse or for logging purposes.  The text file that is saved can be viewed and edited using any text editor such as Notepad.

Note that there is no longer an “Extract Log…” entry in the file menu, since starting with version 2.22, the log file is kept in .adif format and no longer needs a conversion or extraction function.


Edit Menu

The edit menu is the standard clipboard management menu for copying, pasting, cutting and clearing text from the Windows clipboard.  The undo function is quite limited but may restore an accidental cut or paste operation.


View Menu

This menu allows you to hide either or both the clipboard toolbar or the bottom time/status bar.

The Always On Top allows you to force WinPSKse to stay on top and never be covered by another window.


Settings Menu

Top level menu for some of the user program settings.


Rx Level Adjust

The Rx Level Adjust… brings up the Windows Mixer to allow you to adjust the audio levels used during receive.


Tx Level Adjust

The Tx Level Adjust… brings up the Windows Mixer to allow you to adjust the audio levels used during transmit.


General Setup

The General Setup… entry brings up the General Setup dialog box.


General #1 Tab

My Call Sign

Your call sign should be entered in the edit box.  It will be stored and used exactly as you enter it; it does not convert the call to either upper or lower case automatically.  This call sign string is used by macros to insert your call sign into macro messages.  It also is displayed at the top of the program screen.

Duplex Satellite Mode

Checking this box enables full duplex transmit and receive and also activates a faster AFC for tracking up to +/-20Hz/Sec doppler shifting signals.

Echo TX Text in RX

If this box is checked, all text that is transmitted will be copyied into the Receive text window.  If Unchecked, the transmitted text will remain in the TX text window until the program goes back into receive mode.

Use Lower Sideband

Check this box if you are using lower sideband mode.  It is only needed if you are using QPSK mode.  BPSK mode does not matter. Note that if you’re using the Small Wonder Labs setup on the Rig Control tab, this option will be grayed out and not settable, since the Small Wonder Labs radios only work in LSB.

Use Slash 'ZERO' character

Check this box if you wish text to display a zero with a 'slash' mark through it rather than a standard zero character.  This makes it a bit easier to distinguish the letter O from a number .  The actual character transmitted is still the ASCII character zero.

Use Local Time

If this box is checked, the local time instead of UTC time will be displayed and used by the macros.

Their Call Case Conversion

You may set the automatic case conversion of the TheirCall field as you choose. If you set this to None, no conversion is done; if set to Lower, the call will be automatically set to lower case; if set to Upper, the call will be automatically set to upper case. The default is Lower.

Squelch Speed

This control allows the user to adjust how fast the Squelch control responds.  The bigger the number the slower the action.  In noisy signal conditions, the slower squelch is better.

AFC Limit

This sets how far the AFC control will follow a signal.  It places boundaries of +/- limit Hz on the AFC operation.

Waterfall Spectrum Size

This allows you to specify what percentage of the waterfall display is dedicated to the spectrum view. Any value from 20 to 80 percent is allowed.

Receive Frequency Display Range

This allows the user to select the minimum and maximum frequency range to be displayed.  Normally this should be the range of your IF filter.  Displaying spectrum outside the passband of your receiver wastes screen area.

Transmit Frequency Display Range

A few rigs have the ability to receive a wider passband than the transmitter can manage. If this is the case for your rig, you may uncheck the TX matches RX and specify the transmit passband differently from the receive passband. If you do this, the spectrum display will show the background in black for those areas where you can transmit and in red for those areas you can only receive. Attempting to transmit outside of the black shaded areas will also be inhibited.


General #2 Tab
General #2

Log File location:

The Log file location field contains the name (and path) of the file where the .adif file is to be stored. Not specifying a path will cause the file to be placed in the same directory as the WinPSKse executable. If the file already exists, WinPSkse will use the existing file rather than creating a new one.

Continuous RX1 Text capture to file:

The Continuous RX1 Text capture to file field contains the name (and path) of the file where the RX1 text capture file is to be stored. Not specifying a path will cause the file to be placed in the same directory as the WinPSKse executable. If the file already exists, WinPSKse will use the existing file rather than creating a new one. This file must be different from the one used for the RX2 capture text file.

Continuous RX2 Text capture to file:

The Continuous RX2 Text capture to file field contains the name (and path) of the file where the RX2 text capture file is to be stored. Not specifying a path will cause the file to be placed in the same directory as the WinPSKse executable. If the file already exists, WinPSKse will use the existing file rather than creating a new one. This file must be different from the one used for the RX1 capture text file.


Macros Tab

Macro Sets

You may set up as many as 10 different sets of macros. The default is 4.

Macro tool-tips show macro text

This is checked, by default. When you slide the mouse cursor over a Macro button and pause for a little while, WinPSKse will automatically show a fly-by tool-tip showing the text of the macro. If you uncheck this button, this feature is disabled.


Sound Card Tab

Sound Card

This allows you to chose an alternate sound card if you have more than one installed.

Sound Card Clock Adjust

This control is used to compensate for soundcards that are not on frequency.  If the majority of PSK31 signals you are receiving have a "Clk ppm" value greater than about 1000ppm as displayed on the lower status bar, then you need to increment(or decrement) this adjustment value by roughly that value.

Example: If most of the signals you receive are displaying around –1800 as shown above for the "Clk ppm" value, then increment the SoundCard Adjustment value to +1800.  Now most of the signals that you receive should be under +-500ppm.

Remember that the "Clk ppm" value is ONLY valid while receiving a good quality PSK31 signal and it takes 10-20 seconds to get a good average value.

This method makes the assumption that the majority of soundcards on the air are on frequency which appears to be the case in actual monitoring during a busy weekend.

It appears that if a sound card is off at all, it is off by over 2000ppm.  Don't be concerned about clock errors under 1000ppm.

The adjustment range for this control is from +10000 to –10000 ppm.


Rig Control Tab

Rig Control

This box contains three check boxes. If you check the Ptt via Com Port, RTS and DTR will be keyed when you switch to transmit mode. With this option, the RTS or DTR signal pins are set high(+8 to +12 volts) when the transmitter is to be activated and are low(-8 to -12 volts) when receiving.   Selecting Direct Radio Control enables the Manufacturer and Radio box below it. Selecting Force RTS/DTR on causes RTS and DTR to be always on. This option is always mutually exclusive with the Ptt via Com Port option.

Port Selection

This box is used to select which PC serial port is used for communicating with your rig. Any ports which are not accessible or do not exist on your machine will be grayed out.  If no serial port is available, all the selections will be grayed out.

Manufacturer and Radio

This box allows you to select which Manufacturer and which Radio you will be communicating with. For WinPSKse 2.23, the only selection available here is the Small Wonder Labs PSK-20/40. Additional radio selections will be added in the future.

Example: the following shows the setup for controlling the Small Wonder Labs PSK-20/40:

Note the additional field for setting the base frequency for the radio. This particular example shows the typical base frequency for the PSK-20. You’d change this value to the appropriate value for the PSK-40.


Screen Setup Tab

Several items concerning the way WinPSKse displays text can be modified to suit the user.  Fonts, size and color can all be selected for the RX and TX edit windows.

Text Fonts/Colors - RX1, RX2

The following dialog is used to select the receive text window font and color.  Many fonts are not suitable for PSK31 and may not contain the correct ASCII characters.

It is generally a very good idea for the RX1 color to be different from the RX2 color. These colors are also used for the cursors in the spectrum display, the squelch bars, and the phase displays; matching up the colors is a visual cue that they’re for the same receive.

Text Fonts/Colors - XMIT

The following dialog is used to select the font and color for text that has yet to be transmitted. Many fonts are not suitable for PSK31 and may not contain the correct ASCII characters.

Text Fonts/Colors - XMIT Sent

The following dialog is used to select the font and color for text that has already been transmitted.  As text is sent to the transmitter, its font is changed in order to distinguish it from text that has been typed ahead and not yet sent.

Also this font color is used in the receive window to distinguish between received and transmitted text. ( The receive window font is used, just the color is changed )

Background colors - Primary RX/TX, Secondary RX

Both the receive text window and transmit text window's background color can be selected using the following dialog box.  Some care must be exercised  to make sure the font color has good contrast against this background color.

The Primary RX and the TX colors will always match as a visual cue that tells you which QSO you’ll be replying to.

The Secondary RX color should always be different.


Clear Rcv1 Menu Item

This menu item will clear(permanently) the contents of the receive 1 edit window.  It can also be activated by pressing Alt-R.


Clear Rcv2 Menu Item

This menu item will clear(permanently) the contents of the receive 2 edit window.


Clear Xmit Menu Item

This menu item will clear(permanently) the contents of the transmit edit window. It can also be activated by pressing Alt-X.


Clear All Menu Item

This menu item will clear(permanently) the contents of all three windows.


Reset Ser Num
Reset Ser. Num.

This control will reset the serial number (‘sernum’) keyword in the macros back to its initial value of 1.


Tx Tune

This control will turn on the transmitter and output a  single frequency tone. This can be used to tune your transmitter for best SWR, etc.  This is NOT a useful test signal for setting your audio output level for minimum IMD.  The PSK31 "idle" tones should be used for that.  They can be generated by pressing the F12 Rx/Tx button and then not typing any characters.  A steady two tone signal is then generated.


Send File
Send File Menu

Pressing this brings up a file selection menu.  Selecting a text file will place the contents of that text file into the TX window.  All of the macro keywords are available to use in a text file to be transmitted.  This gives an almost infinite number of alternate macros to use.


Help Menu

This menu accesses this document or an "about box" that gives the program version information.


Receive and Transmit Text Windows

These edit boxes are used to display PSK31 text as it is received and also to display transmitted text after it has been sent.  A different font color can be used to distinguish the two types of text.

The top box is the RX1 box, the middle is the RX2 box, and the bottom is the TX box.

The RX1 and RX2 edit boxes are READ ONLY.  This means you cannot type, drag, or paste text into them.  You can copy, drag, or save text FROM them.  Text words can be selected by double clicking in the desired word.  It will become highlighted and you may copy this into the clipboard(Ctrl-C) or drag it to the transmit edit box , the various boxes on the log bar, or into another application.  This feature is useful for snagging a callsign from the received text and placing it into the transmit window or better yet, the "Call" box in the log bar so it can be used by various macro functions.

When the text is selected, you have about 10 seconds to act upon it or it will deselect itself and the receive window will go back to normal operation.  This prevents the user from accidentally leaving some text highlighted which prevents normal PSK31 text reception.

The entire edit box can be erased( permanently ) using the Clear Rcv1  or Clear Rcv2  menu items or press(Alt-R) to clear the RX1 window.

The RX1 window shows some received text in green, the RX2 in yellow. The bottom window is the Transmit text window with text that has been sent in yellow and the text that has NOT been sent yet in red.

The background of the RX1 and TX window are shown here in black, and the RX2 window in gray. This is used to show that the RX->TX switch is set to receive on RX1 and transmit on TX. If the RX2 window was black and RX1 gray, instead, this would show that the RX->TX switch is set to receive on RX2 and transmit on TX.


Signal Display Window

The Signal display window is a graphical screen that is used for displaying various signal views of the received or transmitted signal.  Different views are selected by using the labeled TABs at the top of the display area.  A scroll like control at the upper left of the signal display area can be used to shift through the various tab selections if they are not all displayed at once.


Signal Views

Spectrum View

The Spectrum view is probably the most useful of the signal displays.  The amplitude versus frequency of the incoming receiver audio is displayed giving the user a way to see all the various signals within most of the audio bandwidth of the receiver.  The 10 vertical gradient lines on the screen each represent 10 dB steps in amplitude.

This display also has two dotted vertical cursors that represents the current PSK31 receiver center frequencies.  The  mouse cursor  changes to a cross while in the signal view screen area.  If you left click the mouse button, the dotted vertical line for RX1 will move to the new frequency under the mouse cursor.  If you right click the mouse button, the dotted vertical line for RX2 will move instead. If the frequency cursor is close to a signal and AFC is enabled, the cursor will move and try to center itself onto the closest signal.  If the signal is a PSK31 signal, decoding will begin.

A zoom control at the bottom of the screen can be used to look at smaller or larger areas of the spectrum.  The spectrum display will zoom about the current frequency cursor position.  If possible, it will also center the display around the frequency cursor as well.  The lowest and highest displayed frequencies for the current zoom settings are displayed at the bottom of the screen.

A check box labeled "Slow" can be activated that will smooth out the spectral display.  The down side of the slower display is that fast changing signals will not be seen and the spectrum will "Smear" if the transceiver frequency is changed while viewing.

Clicking the left or right mouse cursor while holding down the shift key will change the receive frequency  just like clicking the left or right button, but will also "rewind" the received audio data about 25 seconds allowing you to go back in time and decode any signal that was received in the last 25 seconds or so.  This feature is significantly more useful in the waterfall view as described below.

Waterfall View

The waterfall view is like the main spectrum view except that the amplitude of the input signal is displayed as the brightness/color of one horizontal line of the display.  The stronger the amplitude the brighter the display( color shifts from blue to cyan to yellow to white with increasing amplitude).  Also as time marches on, each horizontal frequency sample line shifts down and a new one is placed at the top.  The effect is like a waterfall, where the signals seem to be cascading down the screen.

A PSK31 signal will produce a fairly narrow "snail trail" down the screen that can be used for tuning on just as with the spectrum screen using the mouse and dotted line frequency cursor and zoom controls.  The advantage of this display is that it gives a history in time of the signal over the last several seconds.  The disadvantage is that it is difficult to judge the signal intensity just using its screen brightness and color.

Clicking the left or right mouse cursor while holding down the shift key will change the receive frequency just like clicking left or right button, but will also "rewind" the received audio data to the exact spot where the mouse cursor is located.  This allows you to go back in time and decode any signal that was received within the last 25 seconds or so.

Vector View

The vector view to the right of the main view is useful for determining if a signal is a PSK31 signal, and what mode is being used.

 The following examples show what various signals look like on the vector display and what they mean.

Properly tuned BPSK Signal.	Properly Tuned QPSK Signal

BPSK or QPSK "idle"   Signal.	Un-modulated carrier

BPSK Signal too low in frequency.	BPSK Signal too high in frequency.

QPSK Signal too low in frequency.	QPSK Signal too high in frequency.

Input View

The Input view is a scope like view of the raw input signal. The vertical axis is amplitude and the horizontal axis is time.  On strong PSK31 signals you may catch a glimpse of the sine shaped signal pulse.  The primary use of this view is to adjust the receiver/soundcard input level.  If the input levels are too high, the displayed signal turns red.  You should adjust the level so that signal peaks don't reach the red state level.

Sync View

The sync view shows a histogram of the internal signal used to determine the center of the received bit.  An elongated line marks the sample that WinPSKse is using which is at the peak of the histogram.  This display is useful because it can indicate whether the incoming signals bit clock is off frequency(or the users soundcard is off frequency).

If the bit center position is drifting across the screen about every 15 seconds or so, then either the user's or the senders soundcard is probably off frequency.  The program will still receive data but with some degradation.  You can go to the General Setup Menu and compensate for off frequency soundcards.


RX Frequency Control

The RX1 and RX2 frequency edit control consists of a small edit box where a new frequency can be typed in, or the frequency can be moved up or down using the spin controls just to the left of the edit box.  When typing in a new frequency, the new number will not take effect until the cursor has moved out of the edit box by clicking somewhere else on the screen.

Note: If the focus of the program is in the TX text window( the text cursor is blinking in the TX text edit window) then you must click somewhere in the bottom part of the screen to enable the use of the arrow keys for RX frequency adjustment.

Turn AFC off if you wish to manually adjust the receive frequency.  Clicking the mouse left button while the cursor is in one of the spectral displays will change the RX frequency to the value under the mouse cursor position in the spectrum.

The vertical yellow dotted receive frequency cursor will reflect the value of the new RX frequency.

Note that if you’ve selected Direct Rig Control in the General Setup (Rig Control), and specified an appropriate radio you’ll see the actual operating frequencies rather than the audio frequencies in the Frequency box. For example:


AFC Selection

This control activates the Automatic Frequency Control function. It is activated by clicking on the control or pressing the up/down arrow keys.  WinPSKse will try to adjust the receive frequency to the center of the PSK31 signal.

Distorted PSK31 signals due to propagation or poor transmitting stations may not allow the AFC to lock correctly at their center frequency.  If this happens, then deactivating the AFC and manually tweak the RX frequency spin controls(or use the left, right, up, or down arrow keys) until the signal is tuned in correctly as indicated by the little vector display in the signal view screen.


PSK31 Mode Selection

Two PSK31 modes may be selected using the check boxes at the lower left part of the screen.

•	BPSK---Binary PSK mode that does not have forward error correction but is probably the most common mode on the bands.  It can be identified by its two vertical lines in the "Vector" signal view window.

•	QPSK---Quadrature PSK mode that has forward error correction but is a little harder to tune. It can be identified by its two vertical lines and two horizontal lines in the "Vector" signal view window.  It is also sideband sensitive.  If you need to use lower sideband, then check the "Use Lower Sideband" box in the "General Setup" menu.


Squelch/Quality Control

The squelch controls can be used to set a signal quality threshold and inhibit reception until the signal exceeds a specified level.  This can reduce a lot of "garbage" characters from cluttering up the screen.  The controls consists of a vertical bar that grows longer from the bottom depending on the signal quality.  A small bluish horizontal bar indicates the current squelch threshold.  If the signal level exceeds this bar, then the received characters will be shown on the screen.  It also changes color from gray to yellow when the squelch opens.

1	Squelch ON	Squelch OFF

2	The squelch threshold is set by simply placing the mouse cursor inside the control at the desired level and clicking the left mouse button. (Don't try to drag the bar, just click to the desired new position.)

3	Before left clicking.	After left clicking.


Transmit Text Window

The transmit edit box is where text is typed, pasted, or dragged to be transmitted.  As characters are transmitted, a user selectable font and color can be used to distinguish the sent text from text that has not yet been sent. If a macro is invoked, it will place its text in this edit box as well.  Text cannot be copied or dragged FROM this edit box.  Text can be selected in the middle of the message and new text pasted or deleted but is not recommended since it can mess up the transmitted text order.  If you make a mistake in typing, the left arrow or backspace key should be used to delete and then retype the text.  This works even if the text has already been sent.  A backspace character will be sent so the receiving end will get the corrections as well. The entire edit box can be erased( permanently ) using the Clear Xmit menu item or press(Alt-X).


PTT Button

This is the main control for toggling between the transmit and receive mode of operation. The user can click on it with the mouse or hit the F12 key to switch between modes.  An "LED" like indicator blinks red while transmitting and is a solid green when receiving.

Changing from Transmit to Receive is performed by pressing the flashing Tx button.  The button will then change to a flashing "Finish" state which means that the transmitter is finishing sending any remaining text and CW ID.  Pressing the button again while in this state will immediately abort the transmission without waiting for remaining characters.

If the "TUNE" button is activated, the PTT button displays this state and the LED turns RED indicating the transmitter is active but just sending a steady carrier for tuning purposes.


TX Frequency Control

The TX frequency edit control consists of a small edit box where a new frequency can be typed in, or the frequency can be moved up or down using the spin controls just to the left of the edit box.  The new frequency will not take effect while transmitting.  When typing in a new frequency, the new number will not take effect until the cursor has moved out of the edit box by clicking somewhere else on the screen.


NET Function

The NET function forces the transmitter to use the current primary Receiver frequency.  The transmitter grabs the latest primary RX frequency when the PTT control is activated at the beginning of a transmission.  At this time, the TX frequency edit box will be updated to the new value as well.  If both the transmitting and receiving station have this NET function enabled,  there is a tendency for both stations to slide in frequency across the band.  If neither station uses the NET function the effect is operating split frequency which is not normally desirable.

0	Perhaps the best solution is for say the station that is initiating a contact or calling CQ to leave the NET function off and be sort of the master frequency and let the called station always track the master.  The signals can still drift if the master'' transmitter wanders around but at least it is limited to one station’s drift which should only be few Hertz. If in doubt, make sure both the AFC and the NET box is checked


QSO Information Boxes

A separate log tool bar is used to contain the various information boxes related to the QSO and manage a primitive logging environment.

Call Edit Box

The "Call" edit box is a small text edit box that is used by the WinPSKse macros as the call sign of the station that you are contacting.  Any text typed, dragged, or pasted into this box will be transmitted by the macros as the other stations call sign.  Probably the easiest way to use this box is to use the "Auto Text mode where double clicking the left mouse button on a call sign in an Rx Window will automatically place it in the Their Call Box.  It will be converted to the case you selected in the general setup and used until another call is entered into it.  The text in this box is not saved upon program exit.

Name Edit Box

The "Name" edit box is a small text edit box that is used by the WinPSKse macros as the name of the person that you are contacting.  Any text typed, dragged, or pasted into this box will be transmitted by the macros as the other persons name.  The easiest way to use this box is to use the "Auto Text” mode.  Double click the left mouse button on the person's name if it appears in the Rx Window and it will automatically be placed in the Their Name Box. The text in this box is not saved upon program exit.

Freq, Pwr, RST, MyRST, Note

The Freq, Pwr, RST, MyRST, and Note fields are small text edit boxes that can be filled with information for logging. Note, that if you have Direct Rig Control enabled, the Freq field will be automatically filled in with the frequency of your active receive.

Log Button

Pressing this button will generate a log entry with all of the information fields in the log tool bar.

Clear Button

Pressing this button will clear all of the fields in the log tool bar except Freq and Pwr.

Find Button

Pressing this button will search the log for any entries with the call that’s in the Call Edit Box. If found, a dialog box will come up with any entries in the log with the call requested. This dialog may be left up independently of the rest of the program if you wish.

Text Grab Edit Box

0	The "Text Grab" edit box is a small text edit box that is used by the WinPSKse for inserting any small  text string.  Any text typed, dragged, or pasted into this box will be transmitted by the macros 'textgrab' keyword.  The easiest way to use this box is to use the "Auto Text mode.  Select the text to be captured using the mouse and holding down the left mouse button.  Once selected, just press the right mouse button and it will automatically be placed in the "Text Grab" Box. The text in this box is not saved upon program exit.

Auto Text Select

0	Checking this button enables the auto text feature for capturing text from the RX window.  Disabling it allows normal clipboard text selection.


QSO Information Find Button

The Find button on the log tool bar can be used to display information about a particular call that may be in the log. When there’s a call in the Call field and you click on Find, if that call is in the log, a dialog box will come up and display one or more items showing log information for that particular call.

The title bar of the dialog shows the call and name.

0	The list shows all of the entries in the log that are recorded with this call. The list is in reverse chronological order and includes the timestamp, frequency, rst, mode, and note text.

1	The dialog box once brought up may be left in place, if you desire, without affecting normal operation of WinPSKse.


Macros

1	A default set of forty WinPSKse Macros are available to aid in transmitting commonly used text phrases and for performing some program control functions such as sending a CW ID and terminating the transmission.  After a macro has been set up, just by clicking on a macro button( or pressing F1 - F10), a user defined text string can be sent without having to type it each time.

2	Ten macros are active at any one time and their title is displayed along with their associated activation Function key.  Pressing the left or right arrow buttons allows the user to activate another independent set of macros.  There are a default of four sets available giving a total of 40 macros. Up to 10 sets (100 macros) can be defined using the Settings->General Setup->Macros dialog.  A Home key gives a quick way to return to the first set of macros.

0	Each set can be named by entering text in the Macro Set = text box. The defaults are similar to Set1, Set2, etc., but names of your choice can be entered, for example RagChew or FieldDay #1, etc. These names are saved and restored when WinPSKse is stopped and started. The names are for convenience only, they have no other use.

0	If the mouse cursor is left motionless on any of the macro buttons, a help string pops up displaying the macro text.  This is useful for identifying macros without having to enter their setup menu.

Macro Setup

The following menu pops up if you RIGHT-Click the mouse on the macro button you wish to examine or modify.

1	The top edit box is where you can place a short name for this macro that will show up on the macro button.

2	The big edit box is where you just type in the text you wish to send when the macro button is pressed.  It has a 200 character limit.  For long macro text, use a separate text file.

3	The following keywords are used to insert special commands into the text.  These keywords MUST be surrounded by single quote marks and MUST be all lower case.  They perform the following functions:

•	'mycall'  will place the Users call sign that was entered during program setup into the text stream.

•	'theircall' will place any text that was placed in the "Their Call" edit box into the text stream.

•	'theirname' will place any text that was placed in the "Their Name" edit box into the text stream.

•	'textgrab' will place any text that was placed in the "Text Grab" edit box into the text stream.

•	'start' will force WinPSKse to start the transmitter and send any text in the TX text window.

•	'stop' will force WinPSKse to stop the transmitter after the remaining text in the TX text window has been sent.

•	'cwid' will force WinPSKse to add a CW id at the end of the current transmission.

•	'datetime' will place the time and date into the text stream.

•	‘ sernum’ will insert an automatically incrementing serial number (which starts at 1) into the text. This serial number can be reset to 1 by clicking on the Reset Ser. Num. entry on the main menu bar.

Text files can also be sent by placing the filename in the macro text box encompassed with the < and > characters such as <brag.txt>.  Don't get too carried away with this function.  A large text file could take a long time to send.  The text file can be created using any text editor such as notepad.  Note that keywords are not recognized if they are INSIDE the text file.

Note: The text files MUST reside in the directory where WinPSKse.exe file is located.  Path names are not allowed in the filename.

There is some help located on the macro setup menu that shows some examples and also all the keywords that are supported.

Macro Use

Once a macro has been setup, it's best to try it out before going on the air to make sure it does what you want.  When a macro button is clicked, its text is immediately placed in the TX text window for transmission.  If not in the transmit mode, you must activate the PTT button(F12) to start the text transmission or use the 'start' keyword in the macro itself.


Status bar

1	The bottom line of the program contains the UTC time and date, soundcard clock errors and IMD readings for RX1 and RX2.  It can be hidden using the view menu item.

2	The CPU Free Time item shows the amount of CPU time that's free while WinPSKse is running. This entry is present primarily to give you a rough figure of merit to show you how much leeway you have before you might run out of CPU time given the various programs you may be running at the same time as WinPSKse. If the number presented is consistently fairly low (less than 10 or 15 percent), you might wish to reduce the number of programs you have running while using WinPSKse. If you are running ONLY WinPSKse, a consistently low value strongly implies that you may be near the lower limits of CPU performance that can effectively support WinPSKse 2.23. This value should be used only for a very rough guideline, since its accuracy can vary somewhat based on various things happening in the system.


IMD Measurement
IMD Readings

One of the problems with PSK31 transmission is that most amateurs do not have the test equipment needed to measure the distortion in their transmitted signals.  A spectrum analyzer is required to accurately measure the distortion products present in the transmitted signal.  Currently you must rely on received signal reports to determine the quality of their signals.  One method used is to calculate the IMD(InterModulation Distortion) on the received signal.  Although not the ideal way, this method can be useful if you are aware of the limitations to this method.

0	If you examine the PSK31 idle signal, it can be shown that the constant phase change of 180 degrees and the cosine shaped envelope of the signal generates two tones that are at the PSK31 center frequency +/- 15.625Hz.  These tones can be used to measure the IMD of a transmitter.

1	The following shows a PSK31 idle signal with a center frequency of 100Hz.  The two tones are at 100+/- 15.625Hz or 84.375Hz and 115.625Hz.

0	The third order product frequencies are (2F1 – F2) and (2F2-F1) or 53.125Hz and 146.875Hz.  The following shows a PSK31 idle signal with some 3rd (and 5th) order IMD.

1	By measuring the power difference between the original tones and the 3rd order IMD tones, you can provide a measurement as to how much distortion is on the signal.  In this case, the IMD is –40dB since the original tones are at 0dB and the 3rd order tones are at –40dB.

2	This works well with a strong received signal but look what happens if the signal is weak in the presence of noise.

3	Note that if you measures the signal level at the 3rd order frequencies, then erroneous results are obtained because the noise level is higher than the distortion product.  An IMD reading of –20dB will be obtained even thought the signal is actually –40dB.

4	This is why it is important that the received signal be well above the noise floor before trying to obtain an IMD reading.  Another factor is the HF propagation effects that also introduce errors into this measurement method.


Tool Bar

This tool bar, which can be hidden using the view menu item, contains tools for copying, cutting, and pasting to the clipboard.  The RX text file save menu can also be activated as well as help from here.


Keyboard Shortcuts

The following table lists most of the keyboard shortcuts that can be used with WinPSKse.  Some are inoperable or have different meanings depending upon where in the program the user is.

Key	Function
Right Arrow	Move to next highest frequency signal peak
Left Arrow	Move to next lowest frequency signal peak
Up Arrow	Enable the AFC
Down Arrow	Disable the AFC
Page UP	Increase Signal view ZOOM factor by one
Page DN	Decrease Signal view ZOOM factor by one
Ctrl+A	Select ALL in the RX text Window
Ctrl+C	Copy any selected text into the clipboard
Ctrl+P	Brings up a print menu but does not print anything
Ctrl+S	Brings up RX Text Window file save menu
Ctrl+V	Pastes clipboard contents into activeText window.
Ctrl+X	Cuts selected text into clipboard
Ctrl+Z	Undo last clipboard operation
Alt+T	Turns on TX tune mode
Alt+E	Brings up Edit Menu
Alt+F	Brings up File Menu
Alt+H	Brings up Help Menu
Alt+R	Clears(permanently) all text in the RX Receive text window
Alt+S	Brings up Settings Menu
Alt+V	Brings up View Menu
Alt+X	Clears(permanently) all text in the TX Receive text window
Alt+N	Brings up transmit text file window
Alt+TAB	A windows hot key useful for flipping between programs
F1 to F10	Invoke corresponding Macro
F11	Switches from RX1 to RX2 and back
F12	Toggles the Transmit/Receive Button


Operation Hints and Tips

•	The best way to get familiar with WinPSKse is to start playing with it and clicking away on things.  In actual operation, learning to use the  left, right, arrow keys for moving to the receive signal frequency is very handy.  There usually is never a need to touch the mouse to be able to tune in a PSK31 signal.

•	The actual Transmit/Receive frequency is your USB radio dial frequency setting plus the audio frequency displayed in WinPSKse.  If using LSB, you subtract the audio frequency from your dial setting.  For example if your transceiver is in the USB mode and reads 14070.00 KHz and your audio frequency is 1500 Hz, then your actual transmit/receive frequency is 14071.50 KHz.

•	The TX and RX frequencies are limited between 200 and 3500 Hz.., however it is best to stay away from the edges because transmitters may have some frequency limitations as well as some soundcards.  (This may explain some of the weird asymmetric signals observed from time to time ).

•	Don't send all your text as UPPER CASE letters.  PSK31 was designed to send the most commonly used letters such as 'e' and 't' much faster than lesser used letters such as 'z'.  Uppercase letters take a LOT longer to send and just slow down your transmission.  Type as you would normally and capitalize letters as needed.  A common practice is to send callsigns in upper case.  WinPSKse converts your call and "Theircall" to upper case automatically when using macros.

•	Make sure your PC time and date are set correctly.  WinPSKse assumes your PC's date, time, and time zone settings are correct.

•	If you need more screen area, go to the View menu and un check the toolbar and status bar views.  This will give a bit more area for the program.  Adjust the screen size so the bottom part of the screen does not have a scroll bar since that wastes room as well.  Also if try using the small display fonts option in the Window's Display Setup.

•	Use the drag and drop capability of WinPSKse with care.  Dragging text into the transmit edit box while transmitting or into the middle of the transmitted text is asking for trouble.  It's best to do all the "draggin and dropin" BEFORE starting a transmission.  The same goes for pasting text from the clipboard into the TX text window while transmitting.  If you must do it, make sure you paste at the end of the text.

•	Try using the QPSK mode when conditions get rough. In many circumstances, using QPSK will greatly improve reception due to its error correcting capability.  WinPSKse was designed to tune in QPSK signals as easily as BPSK.


Known Problems

•	The AFC sometimes does not lock precisely on frequency.  This seems to happen on signals that are distorted or with lots of multipath distortion.  Several PSK31 signals have been observed with asymmetric frequency spectra.  Perhaps these signals are generated by being on the sloping edge of the transmitter audio pass band or maybe passing through a soundcard tone control function.

•	The receive Window scrolling function leaves a lot to be desired.  The current line many times goes out of the scroll view.  This requires clicking on the scroll bar to get it back inside the view window.

•	WinPSKse tends not to deal cleanly with system large fonts in the display; the current workaround is to set the fonts to small fonts in the system Display Properties->settings dialog box. Using system small fonts, WinPSKse can be displayed effectively on as little as 800x600 screen resolution. Using system large fonts, you may need a screen resolution of 1024x768 or larger.


Further References

Several sources are available on the WEB that give more details and information on PSK31.

•	Peter Martinez G3PLX. "PSK31: A new radio-teletype mode with a traditional philosophy"

•	Peter Martinez G3PLX. "PSK31 Fundamentals"

•	Peter Martinez G3PLX. "Description of the Half-Rate QPSK code proposed for the QPSK/FEC Extension to PSK31"

•	Steve Ford, WB8IMY "PSK31-Has RTTY's Replacement Arrived?" QST May,1999

•	The "Official" PSK31 web site is http://aintel.bi.ehu.es/psk31.html

•	A companion document to this WinPSKse User Guide -- "WinPSK Technical Reference Manual"


Credits

•	Moe Wheatley AE4JY, for the original version of WinPSK that WinPSKse was derived from.

•	Neil Rosenberg K1VY, for lots of testing and suggestions.

•	Inner Media, Inc. (http://www.innermedia.com), for supplying their Collage screen capture utility and Active Delivery installer tool.