The SSKeyer

The ability to automatically send text (a page or string of characters) to either a CW transceiver or a tone generator.
To learn Morse code using the appropriate methodology.
The stand alone SSKeyer computer can easily accommodate these.

The method of learning Morse code is to remember a set of dits and dahs. It is advised not to look at dashes and dots and try to remember the sight of these dashes and dots, rather to memorize the actual sound of the combinations of sequential dits and dahs. The unconscious mind can soon remember these distinct strings or streams of sounds. The di-da sounds are themselves not phonetic in nature, rather they are merely encoded characters that make up the phonetic alphabet, hence phonetic words.

Morse code operators eventually got to the point they can see whole words forming in their mind as the code is being received. If the prospective hammy was taught to read text by the see and say sight reading method, learning Morse code may be a little bit more difficult, as I have been finding. However, if the student was taught phonics, then learning Morse code such that one can see words being formed, then it will be easier to comprehend high speed Morse code.

My Teaching/Sending Memory CW Keyer

One of the advantages of this stand alone embedded code keyer appliance is its ability to teach the user Morse Code. This computer can send characters at say 20 WPM (words per minute) while allowing 5 WPM spacing between characters. This will enable the user to learn Morse code using the Farnsworth method.

This methodology is in essence hearing each letter being sent very fast with a long delay between each letter. The WPM speed parameters include:

  • Character speed: The duration of the dits, dahs and the spacing between the dits and dahs;
  • Character spacing: Space between each character (sets of dits and dahs);
  • Word Spacing: The spacing between each word.

All easily configurable.

Of course, other uses for this as a memory keyer are limitless. This includes canned message strings such as station ID and CQ.


SSKeyer - MK-1 Keyer - SSKey

The Autek Research MK-1 Keyer to the right of the SSKeyer serves a very similar purpose by allowing the user to store up to 4 strings of code. The user then presses a pre programmed button to send the selected string.

The Morse Code

  • International Morse code encodes the 26 basic Latin letters A through Z, the Arabic numerals 0 through 9, and 14 punctuation marks. ! " $ ' ) ( + , - . / : ; = ? @
  • There is no distinction between upper and lower-case letters.
  • Each Morse code symbol is formed by a sequence of dits and dahs (short dot and long dash).
  • The dit duration is the basic unit of time measurement.
  • The duration of a dah is three times the duration of a dit.
  • Each dit or dah within an encoded character is followed by a period of signal absence, called a space, equal to the dit duration.
  • The letters of a word are separated by a space of duration equal to three dits.
  • Words are separated by a space equal to seven dits.


Known US PC Keyboard Punctuations


Acceptable Morse Punctuations

 

The SSKeyer Build

The hardware:

  • Arduino Mega 2560
  • Interface module for the keyboard and an isolated interface for the dits and das.
  • A graphical LCD screen for the text.
  • A case
  • A Tilted Stand
  • MCSaite 8017 Super Mini Wired PS2* Type USB Keyboard
  • 9v DC Power supply.

*Note. The common standard HUD USB PC keyboards have a more complicated protocol. The PS2 Type keyboard matrix protocol have a simple set of codes that are send as a key is being pressed.


MK-1 Iambic Keyer Interface Board

The Peripherals

  • The keyboard is connected to the Arduino via USB.
  • The LCD screen driver is configured to display 14 lines down by 43 characters across.
  • The keyboard keys have been mapped by two groupings, the alpha keys and the numeric and arrow keypad keys.
  • The Autek Research MK-1 Message Memory CMOS Keyer has been modified to accept a TRS input from the Arduino. There is an optocoupler between the Arduino and the MK-1.

The Software

  • Flash Memory Management – Store configurations as well as a screen of text.
  • Keyboard Management – Task to Receive keyboard input and buffer it. Includes subroutines to read the queue and interpret the input.
  • Screen Management – Display/edit text: translate character row-column positions to pixels.
  • Flash Data Management to save both parameter fields and a full screen of text data:
  • Display Message Management – These are status messages, instructions, etc. Includes questions accepting Y/N/Enter responses.

Cursor Control

  • Arrow Keys – Move up, down, left, or right one line or character position on the display.
  • Tab – to next field on configuration screen only.
  • Back Space – Back up one character without deleting the letter on both the text screen and in a configuration field.
  • Delete – Back up one character deleting it on both the text screen and the config screen.
  • Characters – If on code text screen, limited to Morse Code upper case alpha characters, numbers, and punctuation.


Configuration Screen

Configuration Section - This uses Keyboard and screen management to display each parameter field with prompts and allow for editing these parameters:

Editable parameters

  • Character Speed
  • Character Spacing Speed
  • Word Spacing Speed
  • Calibration Factor
  • Uppercase Only
  • Save Statistics After Done
  • Display Diagnostics for KBD Scan and ASCII codes.

Morse Code Element di-dah Durations

  • A DIT is the duration unit - which at 5 wirds per minute is about ~ 250 milliseconds.
  • A DAH is the duration of three DITs.
  • The spacing between the DITs and DAHs is the duration of one DIT.
  • The spacing between characters is the duration of three DITs.
  • The spacing between words is the duration of seven DITs.

Calibration

Proficiency in Morse code is measured by how many words per minute someone can send or receive. The standardize measure is sending 5 words "PARIS". This means if the code PARIS is being sent at 5 words per minute, the word "PARIS" with a space on the end of each word is being sent 5 times in a minute. The fifth PARIS does not include a trailing space.

The calibration for 5 WPM would be 50 units per word giving 250 – 7 = 243 total units. The last or fifth PARIS does not include a trailing space. Divided 243 into 60 seconds or 60,000 gives 246.91 milliseconds; rounded up = 247 milliseconds per unit. At 10 WPM, it would be 123 milliseconds per unit, and so on.

Unit time duration calculation: Tu = 60,000 / (WPM * 50 - 7)

Home Screen Commands

  • Update Configuration
  • Code Section
  • Calibration
  • Reboot

Send Code Section – Send text on screen via the keyer.

Commands

  • Start at the beginning and send all
  • Send a line of code
  • Send a key press
  • Enter/Edit Text
  • Save text


Edit Text Screen

Send Message Section - Send a prepared message.

  • All - Send the whole page.
  • Line - Send only the selected line.
  • Test - Take a code test of randomly sent letters and numbers. Press the appropriate key of the letter sent.  -ERR- will appear if wrong. The character will appear if correct. The process will save the incorrect characters.
  • Drill - Similar to the Test except random letters are displayed and then the sound of the letter is heard. This is repeated until the user stops the process. Characters are displayed in the center of the screen in a large font allowing the user to sit back, relax and learn.
  • Key - Send only a key press.  This screen will display the missed characters from the code test.
  • Edit - Add/Change the text.
  • Save - Save text to flash memory.

Text Entry/Edit Section - Enter and edit text. Full screen entry editing of text. This text is held in a text buffer synchronized with the displayed text.

  • Arrow Keys
  • Back Space
  • Delete
  • Enter text

 

CODEMAC - This was the name of my original C program I wrote in the late 80s for a DOS based PC.  It was called the Code Machine or CODEMAC.exe. I wrote this to learn the Morse Code. I never finished it. As I've said before, life got in the way and like ham radio, my keyer software development got set aside.

At that time, it was suggested I use the Farnsworth method to learn CW. As I said above, CW characters are sounded at 15 to 20 words per minute with a large gap between the characters. This is the di-dah sound of normally sent CW. People learn the code listening to and memorizing each dit and dah. They then have to relearn the code by memorizing the sound of the whole letter i.e. 'R' - di-dah-dit.

Wishing you a steady fist.

73s
SteveS K8BSX, April 2023