[GreenKeys] WRU, SELCAL, and other features in TTY-CONNECT

Eric Scace K3NA [email protected]
Tue, 27 Apr 2004 22:57:17 -0400


Hi Gil, Bob and everyone --

   I'll try to address the various points that have been raised in several messages this evening on the proposals.

1)  Conditioning code:

   My suggestion was to use the sequence "5 Spaces, 2 CR, LF" as the transmitted conditioning code because of its common, historical
usage.  A big benefit of this sequence is that it puts the following call director codes (the sequences that actually select
stations) on a new line -- very helpful when preparing a message for transmission.

2)  Call Director Code for messages to be copied by all.

   I had suggested "ZCZC".  Others have suggested "QST".  The problem with "QST" is that a mechanical system will trigger on "QST"
whenever it occurs after the Conditioning Code, and before the End Of Address sequence.  So now we have a problem if VE3QST (a real
station!) joins our network.  His 4-character Call Director Code will be "3QST".  But anytime someone sends "3QST" after the
Conditioning Code, EVERYONE will get activated!

   By using a four-character sequence which would be extremely unlikely to appear in a radio callsign, such as "ZCZC", we avoid this
problem.

   Another minor advantage is revealed by examining the current format of ARRL bulletins.  Here is an example:
ZCZC AG14
QST de W1AW
ARRL Bulletin 14  ARLB014
From ARRL Headquarters
Newington CT  April 23, 2004
To all radio amateurs

SB QST ARL ARLB014
ARLB014 Illinois amateurs support tornado relief, recovery efforts...

   Note that every ARRL bulletin begins with ZCZC.  (The ARRL then sends a 4-character code, beginning with "A" for "ARRL", then one
letter (e.g., "G" for general bulletin, "D" for DX, "P", for propagation, and then a 2-digit serial number which starts with 01 at
the start of the year.  This sequence will not be confused with our proposed Call Director Codes based on the least four characters
of a radio callsign, because radio callsigns almost never end in two digits.  Therefore, when someone wants to forward an ARRL
bulletin to our group, the transmission can start with the Conditioning Code, and then immediately continue with the ARRL bulletin
text as sent; everyone who detects ZCZC will receive it.)

3)  Motor start/stop.

   Motor start/stop are different for mechanical SelCal systems vs. silicon-based systems.

   In a mechanical SelCal system, the machine's motor is turned on whenever a RTTY signal appears on frequency.  The motor runs (and
a Model 28 will continue to make little snickety noises as it decodes every transmitted character) throughout every transmission --
even transmissions which are not directed for that station.  A Model 28 runs in print-suppression mode until a Conditioning Code,
followed by that station's Call Director Code(s (specific and/or all-stations), has been detected.  The motor does NOT turn off at
the End of Message or End of Address sequence, since another message may follow which must be examined for relevant Call Director
Codes.  The motor turns off only when the RTTY signal disappears from the frequency.

   Some machines had an internal mechanical time-out mechanism that run whenever an all-mark condition was maintained on a circuit
for 20-30 seconds.  If no characters were detected (i.e., the loop current never dropped or reversed polarity), the machine would
shut down after this mechanical time-out.  Whenever loop current was interrupted (or polarity reversed, on polar loops), the motor
was immediately turned back on.

   In a silicon-based SelCal system, some wear and tear on the machine can be avoided.  The silicon-based logic (TTY-Connect, for
example) can delay turning on the machine's motor until the Conditioning Code followed by the desired Call Director Code(s) has been
detected.  In this case, it is perfectly appropriate for the silicon-based logic to turn the machine's motor off after the End of
Message sequence ("NNNN") has been detected.  If a subsequent message to the same station follows, the silicon-based logic can turn
the motor back on after the Call Director Code has been detected at the start of the subsequent message.  Therefore, a "motor off"
code sequence is NOT needed.

   Motors actually spin up to speed fastest if NO characters are being sent during their start up.  So, in a silicon-based system
with some buffering, I would start the motor with loop current on (all mark condition) and give it a few hundred milliseconds to get
up to speed, and only then start feeding characters to the machine.

   Similarly, the mark condition should be held while the motor is shut down... and maintained while the motor is off.  If you drop
the loop current while a machine is shut down, the selector magnet will trip.  When the motor starts up again, the selector
mechanism will rotate through and a character may be printed on the paper.

4)  Auto CR LF insertion.

   This is a convenient function.  Model 28 machines could be set up mechanically to jump down to a new line if more than "x"
characters were received; typically 73-80.  But other teleprinter machines didn't have this system.

   My recommendation would be to insert CR CR LF and either one Figs or one Ltrs, depending on the case for the next printing
character.

   I would recommend against inserting a "\" character.  That character doesn't exist in ITA2 (5-bit) code.  As a philosophical
point, I am biased to make minimal modifications to the message in progress.  The principal purpose of the Auto CR LF function is to
keep a mechanical machine from piling up characters at the right edge of the paper because a garble wiped out the original CR LF
transmission.

5)  Why is an End of Address sequence needed?

   The EOA sequence works together with the Conditioning Code to indicate when Call Director Codes are being sent.  Without an EOA
sequence, the contents of a message may cause other stations to start copying the message when they were not intended recipients.
Take this example:
[carrier on] DE N6JP  <<-- legal ID
12 Ltrs 5 SP CR CR LF LTRS LTRS <<-- contains the Conditioning Code
B8TQ  <<--- no EOA code defined, so everyone's system keeps looking for call director codes!
HI BOB.  DID YOU SEE ERIC'S MOST RECENT MESSAGE?  K3NA IS REALLY BEING A JERK ABOUT THE NEED FOR END OF ADDRESS CODES.  BYE FOR NOW.
CR CR LF LF LF LF NNNN 12 Ltrs [followed by legal ID and carrier off]

   Notice that in this example, since no EOA was defined, the letter sequence "K3NA" in the middle of the message text will cause
K3NA's machine to turn on -- just in time to receive an unflattering comment - hi!

   I had proposed that CR CR LF, sent after all the Call Director Codes, could be the EOA sequence.  That keeps all the Call
Director Codes on their own line, separate from the message text.  Someone else's message earlier today contained an interesting
idea: the sequence "Space DE Space" would be a nice EOA sequence because it allows us to move the legal ID of the sending station to
the end of the line with the Call Director Codes.  For example:
[carrier on]
12 Ltrs 5 SP CR CR LF LTRS LTRS <<-- contains the Conditioning Code
B8TQ DE N6JP  <<--- KB8TQ's Call Director Code followed by EOA and transmitting station ID.
[ continue with message...]

   Here the " DE N6JP" contains the EOA sequence I just described and the transmitting station's callsign.

   Note that the sequence must be four characters including the preceding space.  Defining the three-character sequence as "DE
Space" won't work -- it will get triggered whenever anyone attempts to send a message to K8DE (for example).  It may be less likely
that DE4N would join our network, so "Space DE" could be a three-character EOA sequence, if it was important to keep the EOA
sequence to a minimum.

6)  Using a complete callsign as a Call Director Code

   This is a bad idea because it has unintended consequences when calls contain more than four characters.  For example, assume that
KK6XX is part of our network.  If someone sends "KK6XX" at the point where Call Director Codes are expected, this can also be
accepted by K6XX and KK6X as their code, too!   Similarly "KB8TQ" will turn on KB8T's station as well as KB8TQ.  While one could
play the percentages and hope that two stations with this kind of conflict don't join the network, it is a weak design.

==========

   I hope this is clear and helps.  Feel free to call me (617-712-1523) if that would be easier.

73,
    -- Eric K3NA