cocoaModem RTTY Interfaces
Kok Chen, W7AY
[w7ay (at) arrl
(dot) net]
Last updated: May 8, 2010
Index (User's Manual - RTTY Interfaces)
General Information
Aural Monitor
Accessibility (Incremental Speak and Voice Assist)
Macros
RTTY Interfaces
- Configuration Panels
-
RTTY Receiver Configuration
-
Transmitter Configuration
- RTTY Macros
- Basic RTTY
Interface
- Dual RTTY
Interface
- Wideband RTTY
Interface
MFSK Interface
Hellschreiber Interface
CW Interface
ASCII Interface
SITOR-B Receiver
HF-FAX Receiver
Synchronous AM Receiver
Versions
Part II
RTTY Interfaces
cocoaModem contains three separate RTTY interfaces - a
"basic" RTTY interface, a Dual RTTY interface and a
Wideband RTTY interface.
The three interfaces share the same underlying
implementation and differ from one another mainly in the
user interfaces.
The Dual RTTY interface also has two independent
demodulators. If your transceiver has two separate
receivers (e.g., the Yaesu FT-1000MP and the TenTec Orion)
you can connect the two demodulators of the Dual RTTY
interface to the two outputs of the transceiver. This
enables you to copy two different RTTY signals at the same
time - this can be useful when you are working DX that is
operating "split" (transmitting and receiving on different
frequencies).
In addition to having two receivers, the Wideband RTTY
interface also has agile "tone-pairs" which you can
instantly tune to anywhere within a 2 kHz bandwidth by
clicking on a "waterfall" spectrogram.
Config Panel
After selecting an RTTY interface in the main cocoaModem
window, you can open the Config panel by selecting
Config under the Window menu in the Menu bar. You
can also open the Config panel by using the
Command-Option-comma keyboard shortcut.
The Config panel is closed by using the red (leftmost)
button in the title bar of the configuration panel.
The common functions of the Config Panel are discussed in
the General Information section of this
manual. We will only discuss the Config Panel functions
that depart from the common functions here.
RTTY Receiver
Configuration
The Config Panel for the Wideband RTTY interface is shown
in Fig 1, shown tabbed to the Main Receiver. The Config
panel for the Basic RTTY interface is similar except that
there is a single Receiver config tab view.
Figure 1 -
RTTY Receiver Configuration
The input device controls have
already been described in an earlier section (Audio Device
Selection).
The RTTY specific configuration items are contained in the
box on the right of Figure 1.
Sideband Selection
The popup menu that is inside the Dial Readout box selects
which sideband your transceiver uses when operating RTTY.
Proper selection of the LSB/USB
ensures that cocoaModem's demodulator matches the
transceiver. If they don't match, an RTTY Mark will be
received as a Space, and vice versa.
When this menu is properly set up, cocoaModem will do the
rest of the tone-pair management for you. Refer to the
transceiver’s user manual for which sideband to use.
The sideband setting is documented in the
“Packet” or "Data" section of the transceiver
manual. Most transceivers use LSB for RTTY, FSK or AFSK.
The VFO Offset field allows you to control the label below
the waterfall so that the waterfall label will show the
proper offset of the RTTY mark signal from the
transceiver's VFO dial. Again, refer to your transceiver
manual to determine what the RTTY Mark offset is, relative
to the transceiver's VFO dial.
AFSK/FSK/OOK Selection
The popup menu below the Dial Readout box in Figure 1b
allows you to select between AFSK, FSK and OOK modes. The
expanded menu is shown below.
Each receiver in the Wideband
RTTY and Dual RTTY interfaces can independently select
between AFSK, FSK or OOK modes. You can, if you like, use
FSK when transmitting through one "receiver" and use AFSK
when transmitting through the second "receiver." Devices
which are unavailable are grayed out (as shown in the above
figure for the digiKeyer). A microKeyer II will show up in
the menu as a plain microKeyer and a digiKeyer II will
appear as a plain digiKeyer. Remember to also select the
appropriate PTT method in the transmitter tab of the Config
panel.
When you use AFSK, cocoaModem ensures that the transmit
tone pair tracks the receive tone pair. You will always be
zero beat to the received signal unless you have chosen a
non-zero RIT offset.
If you use FSK or OOK, be sure to set the cocoaModem tone
pair to the same tone pair that your transceiver uses since
the frequency of the transmitted signal is determined by
the transceiver and not by cocoaModem. If not, your
transmission will not be zero beat to a received RTTY
signal. Transceivers usually offer you more than one tone
pair that you can choose. Be sure to set the selected tone
pair (mark and space frequencies) in cocoaModem's tone pair
configuration. Failure to do this will cause you to
transmit away from where you think you might be
transmitting.
Please note that you lose the frequency agility function of
the Wideband RTTY interface when you use FSK or OOK, and
the interface will behave as if the transmit tones are
locked -- in fact, the Tx Lock button is grayed out if you
choose to use FSK instead of AFSK. You also lose the
keyclick filter that is present when using cocoaModem's
AFSK setting.
cocoaModem directly supports FSK transmission when you use
a microHAM microKeyer or digiKeyer through the µH Router. You can also use the
on-off keying (OOK) mode to generate an FSK keying
signal with an appropriate interface such as the
microHAM USB Interface III.
When on-off keying (OOK) is selected, cocoaModem sends a
constant amplitude, fixed frequency tone-keyed signal to
the sound card. Instead of an AFSK two tone signal, the OOK
mode sends a 2500 Hz tone when RTTY is in the Space state.
The output is silent when RTTY is in the Mark state. This
keyed tone be used by a simple tone detector to generate a
keying signal for an FSK transmitter. The amplitude of the
tone is about -3 dB (relative to full scale) of the sound
card. When the transmit polarity is set to Reverse, the
tone is keyed on during the Mark state instead of during
the Space state.
The microHAM USB Interface III supports this tone keyed
method for generating an FSK keying signal. With the USB
Interface III, be sure to select the right
channel of the sound card. With most Icom and Ten-Tec
transceivers, keep the cocoaModem transmit polarity putto
set to Normal when using the USB INterface III. With most
Yaesu or Kenwood transceivers, use Reverse for the transmit
polarity (unless you have changed menus or jumpers in the
transceiver to invert the transmit polarity).
When you use FSK (or FSK that is keyedthrough a device that
uses OOK), you can still use the waterfall of the Wideband
RTTY to quickly move to a different receive offset, but
your transmit frequency will not move.
Important note: some transceivers require that you
invert the FSK polarity. This is true with most Yaesu
transceivers -- for example, the RTTY Tone switch in the
top access panel of the FT-990 needs to be switched to the
Reverse position; the RTTY Polarity menu (Menu 6-1) of the
FT-1000MP needs to be changed to the Reversed setting, etc.
Failure to set this up correctly will cause you to put out
an "inverted" or "reversed" RTTY signals that others will
copy as gibberish.
You can change the polarity by setting the
Transmit Polarity in cocoaModem to Reverse. The transmit
polarity button of the Wideband and Dual RTTY interfaces
are in the Aux panels, while the transmit polarity button
of the basic RTTY interface is in the main interface.
However, it is always better to reverse the RTTY transmit
polarity at the transceivers, since it will not depend on
plist changes, etc. Leave the transmit polarity buttons in
cocoaModem for use in the rare and temporary occasions when
the other station is receiving in reversed polarity.
Finally, there is a myth that you must use LSB when
operating RTTY in AFSK mode. This is totally false.
As long as the proper audio tone-pair polarity is
generated, you can use either LSB or USB to generate and
copy an RTTY signal. The sideband popup menu allows you to
use cocoaModem with USB or LSB transceivers.
RTTY Receiver
Options
There are three checkboxes to specify receiver options.
USOS
USOS (unshift on space) is a commonly used protocol in
RTTY. Amateur RTTY uses the Baudot code to send characters.
Baudot has only 5 bits to encode each character and the
code can therefore only represent a maximum of 32
distinct symbols.
To accommodate the 26 letters and punctuation marks, 10
numbers, space character, carriage return, line feed, bell,
etc, Baudot adds a pair of “letters/figures
shift” characters to the set. The behavior of these
two extra characters (LTRS and FIGS) is very much like the
caps lock key on your computer keyboard which
allows you to have more character combinations than there
are keys on the keyboard. The LTRS/FIGS scheme allows two
different characters to share the same code. A LTRS
character locks the Baudot state into the letters symbol
set and the FIGS character locks the Baudot state into the
figures symbol set.
For example, to send a "W", the sender makes sure that the
Baudot shift state is already in LTRS, and if not he first
sends a LTRS character. The character code that represents
"W" is then sent.
To send a "2", the sender first makes sure the Baudot state
is in FIGS, first sending a FIGS character if neccessary,
and then he sends the character code for "2".
However, a "W" and a "2" shares the same character code in
Baudot - both are sent as the bit sequence 11001. The
recipient of the message will print the correct character
only if his LTRS or FIGS state corresponds to the sender's
state.
Every so often, a LTRS and FIGS character is corrupted
along the way by noise and the recipient no longer
correctly tracks the Baudot state of the sender.
The USOS protocol is an attempt to re-synchronize the two
ends without sending extra shift characters. The protocol
states simply that in addition to using LTRS and FIGS
characters to control the Baudot state, all space
characters should be considered to be accompanied by an
implicit LTRS character.
Without sending any extra characters, the USOS mechanism
helps synchronize the sender and receiver since spaces
occur often in a message and it works well in practice if
both ends use the protocol.
The protocol fails completely however when the sender does
not use USOS and the receiver is set to obey USOS - a
message sent as "599 +20DB" will be received as "599
ZWPDB".
The USOS checkbox allows you to disengage USOS in case the
other end does not use USOS.
Robust Mode
cocoaModem has a unique option to turn on a "robust mode,"
which allows cocoaModem transmissions to be received
correctly whether the receiver is set to USOS or non-USOS
decoding.
When cocoaModem is transmitting with both USOS and robust
mode turned on, it will insert a LTRS character right after
sending a space character if the character before the space
character was in FIGS shift and the character after the
space character is in LTRS shift. This additional LTRS
character ensures that both USOS and non-USOS receivers can
copy cocoaModem's USOS transmission.
When cocoaModem is transmitting with USOS turned off and
with robust mode turned on, it will insert a FIGS character
right after sending a space character if the both the
character before the space character and after the space
character are in FIGS shift. This additional FIGS character
ensures that both USOS and non-USOS receivers can copy
cocoaModem's non-USOS transmission.
Space characters in English transmissions occur at the rate
of about one character in six. If the other characters are
random, then one out of four such space characters will
transmit an extra shift character. Thus, about 4% more
characters are sent if the message is random. For regular
text transmissions, the character before a space character
is usually a character in LTRS shift, implying that in
general, the overhead of robust mode is less than 4%.
In addition to the USOS compatibility scheme described
above, cocoaModem periodically sends redundant LTRS and
FIGS character in Robust Mode. A redundant LTRS or FIGS
character will be inserted if 16 consecutive characters are
sent without sending a space character. This should be
quite rare and should not impact the transmission speed in
practice.
Bell Mute
The Baudot code has a BEL (bell) character that can be sent
to wake up a teletype operator at the other end.
Mute
BELL is a preference to ask cocoaModem to ignore the
BEL character and avoid sending a chime through the
computer's output device.
The use of the Mute BELL option should be considered
mandatory if you are using the built-in audio as the output
device, otherwise system beeps and chimes will be
transmitted through your transceiver and in violation of
FCC regulations. cocoaModem uses AFSK, which means that if
you are using the built in system sound as the output to
your transceiver, all sound output from the computer will
go out on the air . Although BEL is seldom used by good
RTTY operators, a "J" that is misinterpreted as a FIGS
shift can still be interpreted as a bell character since J
and BEL share the same Baudot code.
RTTY Input Device
Spectrum
As seen in Figure 1 above the RTTY Config panels
includes a pair of red markers in the spectrum display
to indicate the positions of the current tone-pair.
RTTY Transmitter
Configuration
(Please note that the RTTY transmitter obeys the USOS setting in the receiver section.)
Figure 2 shows the Config panel when the Transmitter tab is
selected.
Figure 2 -
RTTY Transmitter Configuration
In addition to the controls for
selecting and adjusting the output sound device that is
common with the other interfaces (describe in Audio
Device Selection in an earlier section), the RTTY transmitter
configuration comes with a set of RTTY-centric test
tones to aid in the adjustment of output signal levels.
To familiarize yourself with the controls, you can
initially select the Built-in Speakers of the Macintosh as
your output device. You will be able to hear from the
speakers what the other buttons do.
Notice the row of buttons for selecting Test tones. These
are used for making AF level adjustments that are needed to
match the transmitter’s requirements.
The Mark and Space buttons generate clean reference sine
waves at the Mark (default of 2125 Hz) and Space (default
of 2295 Hz) tones.
The Two Tone generator produces a sum of the mark and space
tones, each of the tones are attenuated by 6 dB from the
individual reference tones that is generated by the Mark or
Space buttons.
The Diddle button generates the familiar RTTY idle pattern
(a sequence of Baudot LTRS character).
The RY button generates a repeating sequence of R and Y
Baudot characters. This pattern was used to tune the
mechanism of old mechanical Teletype machines. It no longer
serves any useful function for everyday use with modern
equipment. For nostalgic reasons however, the RY sequence
has been kept in use by some Amateurs, while other Amateurs
find the use of the RY sequence to be a complete nuisance.
Except for testing, I would recommend not to send the RY
sequence on the air unless you know that the person on the
other end is running an old mechanical Teletype machine.
The RY sequence remains mildly useful for equipment testing
purposes since the sequence generate one of the highest bit
transition rate of any Baudot character sequence – as
a result, it will exhibit the widest spectrum occupancy. If
you generate a clean spectrum when sending the RY sequence,
chances are your spectrum will be clean in actual use.
Finally, the Text button generates a repeating “The
quick brown fox jumps over the lazy dog” sequence,
which is closer to “real-world” than the RY
sequence.
If you had selected the Built-in speakers on the output
device menu, you should be able to hear changes in the
audio tones and patterns on the Macintosh’s speakers
as you cycle through these test tones.
Once you are familiar with the output controls, you are
ready to hook your audio device up to the transceiver and
follow the transceiver’s AFSK level adjustment
procedure, using one of these test tones as the test signal
(I recommend using the diddle or the RY sequence).
Adjusting RTTY Output
Level
Adjust cocoaModem’s RTTY output levels and any
external devices (such as the trim pot in a SignaLink SL+
interface) to satisfy the transceiver’s requirements.
The main purpose of the AFSK adjustments is to make sure
that you are operating within the linear region of an SSB
transmitter. Usually, that means that the audio levels have
to be reduced to the point where there is no ALC activity
in an SSB transmitter. Typically, the procedure is to
increase the the audio drive until you notice ALC kicking
in, and then back off from that position so there is again
no ALC action. Your transceiver manual should cover this
under the AFSK or Packet description.
Please be careful not to overdrive the transmitter. An
overdriven AFSK signal is overly broad, and possibly with
keyclicks that can interfere with stations that are many
kHz away. Keep an eye on the ALC of the transceiver as
often as practical. The ALC setting can even vary with
changing antenna SWR with some transceivers.
The audio response of your transmitter may not be flat (it
is definitely not flat with a Yaesu FT-1000MP operating in
PKT mode, for example) across the audio spectrum. With
transceivers that do not have a sufficiently flat audio
response, be sure to check to make sure that you are not
over driving the transmitter each time you change the
transmit tone pair (for example, when you click on the
waterfall to change the tone-pair in the wideband RTTY
interface).
Stop Bits
Characters in RTTY are transmitted asynchronously. Each
character consists of a start bit, the 5 Baudot data bits
and then a stop bit. A start bit is represented by a binary
"0" and transmitted as a Space tone. The stop bit is a
represented by a binary "1" and is transmitted as a Mark
tone. The start of a character is detected by looking for a
Mark to Space transition.
With 45 baud RTTY, all bits except the stop bit have the
same duration of 22ms.
cocoaModem allows you to set the stop bit to be 1, 1.5 or 2
times the duration of the other bits. 1.5 stop bits is the
most commonly used stop character today. I recommend that
you select a stop bit duration that is no less than 1.5
times the duration of data bits.
cocoaModem’s Baudot decoder will track the stop bit
duration of the received signal and there is no need for
selecting the duration of stop bits for the receiver.
RTTY Macros
The following macros are specific to the RTTY interfaces.
%[b1] | use narrow bandwidth
|
|
%[b2] | use normal bandwidth
|
|
%[b3] | use wide bandwidth
|
|
%[d1] | use normal Mark/Space demodulator
|
|
%[d2] | use light multipath demodulator
|
|
%[d3] | use heavy multipath demodulator
|
Please note that all the RTTY interfaces share a single set of macros. When you edit the Macro Sheet for one RTTY interface, it take effect for all RTTY interfaces.
Basic RTTY Interface
Please proceed to the Basic RTTY Interface page.
Dual RTTY Interface
Please proceed to the Dual RTTY Interface page.
Wideband RTTY Interface
Please proceed to the Wideband RTTY Interface page.