cocoaModem Push-to-Talk
Push-to-Talk or Push-To-Transmit (PTT) is a term used to describe the process of keying the transceiver between receive and transmit modes.
cocoaModem is meant as a digital signal processing application and I have kept things like logging and PTT control as much as possible out of the app. Because of this, except for VOX mode, cocoaModem does not internally support any specific devices for performing the PTT function.
Instead, cocoaModem makes use of other applications to control specific PTT devices through AppleScripts. cocoaModem supports five classes of PTT devices. The PTT devices are selected in the PTT popup menu of the Transmit Configuration panels (see Figure 1 below).
Figure 1 - PTT Popup Menu items.
The first PTT method is what I
call the VOX class.
The second class uses cocoaPTT as the
application to perform PTT.
The third class uses the µH Router application, and
supports the microHAM products which use the microHAM
Keyer Protocol. These includes the DIGI
KEYER, the microKEYER and the
CW Keyer (please refer to the section
below to find how to use the microHAM USB
Interface II, which is not part of microHAM's Keyer
Protocol family).
The fourth method uses the MacLoggerDX app
to key the transmitter on or off.
Finally, there is the User Defined
AppleScripts that should handle almost anything else,
including other applications are are AppleScriptable.
Note that each cocoaModem interface and mode has its own
PTT popup menu for selecting the PTT method. This allows
you the flexibility of using one PTT method for PSK while
using a different PTT method for RTTY, etc.
Hint: you can also use the manual transmit button
(sometimes labeled as MOX) on the transceiver, a
foot switch, a microphone PTT button, and various other
manual modes to key the transmitter on and off. While not
as convenient or as fast acting as automatic PTT, they do
work when you have no other PTT mechanism at your disposal.
To use manual modes, just set the popup menu selection to
VOX.
VOX
This is the simplest of the different PTT mechanisms. But
has its own shortfalls.
When VOX is selected in the PTT popup menu, cocoaModem does
not do anything except to start up the transmit audio
stream when the user switches an interface into transmit
mode.
With VOX, cocoaModem assumes that some other piece of
hardware (inside the transceiver or external to the
transceiver) will intercept the audio signal and it is that
other piece of hardware that keys the transmitter on and
off.
If you are using a transceiver that supports VOX in AFSK
mode (also called the "Packet" or "Digital" mode by various
transceiver manufacturers), you can simply use VOX and let
the transceiver do the transmit keying by itself. You can
also use VOX as the cocoaModem PTT mechanism if you happen
to use the voice modes (LSB or USB) for digital
transmissions.
In addition, you can add VOX PTT devices to transceivers
that don't implement VOX in AFSK. An example of this is the
family of Tigertronics SignaLink™
products.
You can add a SignaLink and operate some of the digital
modes without additional PTT hardware -- in a sense the
SignaLink is the easiest "plug-and-play" way to get on the
air for some of the digital modes.
Bear in
mind however that VOX PTT only works with the digital modes
that have sufficiently high duty cycles as to keep the VOX
engaged throughout a transmission (e.g. RTTY, MFSK, PSK31
or FM Hellschreiber).
For Feld Hell, cocoaModem has to supply a special "diddle"
to keep the VOX engaged when you are not typing. The
diddles add dots that clutters the screen display for the
person you are communicating with. So while it is a
workable solution, VOX PTT is not ideal for use with Feld
Hell.
Modes such as CW will not work at all with a VOX
interface since the initial Morse elements will be
completely missed by the VOX mechanisms.
If you intend to use CW you will need to use "hard PTT."
And even if you are a serious Hellschreiber user, it is
best to use hard PTT rather than VOX PTT. In the future,
cocoaModem may implement yet additional modes that are not
compatible with VOX driven PTT.
cocoaPTT
This is the PTT method that makes use of control pins of
serial port devices (USB "serial adapters", PDA adapters,
etc.).
cocoaModem makes use of a very lightweight application
which I have written called cocoaPTT to engage either the RTS
(Request-to-Send) line or the DTR (Data Terminal Ready)
line of an RS-232 serial protocol.
All that you need to do to use cocoaPTT is to install the
cocoaPTT app, and run it once to set up your preferences.
From then on, cocoaModem will handle the rest (including
launching the app for you) if you have chosen cocoaPTT in
the PTT popup menu. Be sure to also to install any serial
drivers (e.g., KeySpan, FTDI, Prolific, etc) that comes
with your serial port. cocoaPTT will not work without a
proper serial port driver.
cocoaModem talks to cocoaPTT through a set of AppleScripts.
If for some reason you need to modify the cocoaPTT script
files, you can find these AppleScripts inside cocoaModem
application bundle.
To open the application bundle, hold down the control key
and then click on the mouse button over the cocoaModem
application icon. A popup contextual menu should appear
while the mouse key is held down and you can then select
Show Package Contents to navigate into the cocoaModem
application bundle. You should see a folder that
has the Contents of the bundle. If you navigate into the
Contents folder, you should see a Resources folder. Inside
the Resources folder, you should find three script files.
These files are called pttKey.scpt, pttUnkey.scpt and
pttQuit.scpt.
The first script file is run when the user first presses
the transmit key in a cocoaModem interface. The second
script file is run when the user presses the Receive button
to exit the transmit mode. The third script file is run
when you quit the cocoaModem app.
Currently, the pttQuit script terminates the
cocoaPTT app.
You can modify the existing scripts to suit your needs. You
can also create your own custom script files outside of the
cocoaModem application bundle (see User Defined PTT below).
microHAM Products
Some microHAM products are known to work
with cocoaModem. These are the USB Interface II , the USB micro KEYER, the USB DIGI KEYER and the USB CW KEYER .
The USB Interface II is really just a USB serial port
interface which comes with isolation transformers to
break up ground loops. With this product, you should be
using the cocoaPTT interface described above. Since
this product uses an FTDI chip for the serial port, be
sure to first install the serial port driver from the
FTDI site. The USB Interface II uses
the RTS line to key the transceiver's PTT and cocoaPTT
should be configure to use RTS.
The USB micro KEYER, USB DIGI KEYER and the USB CW KEYER
use the microHAM Keyer Protocol to transfer data
to and from the computer. To use these products as the PTT
device, use the µH Router application as the PTT
driver. Be sure to follow the procedure in the µH Router
installation page to set up the preferences for the
router that are specific to you before using the µH
Router from cocoaModem.
After the µH Router has be set up, simply select the
appropriate microHAM device in the cocoaModem PTT popup
menus. cocoaModem will automatically launch µH Router the
next time you use it.
MacLoggerDX
This is similar to the cocoaPTT method, except that it uses
the MacLoggerDX application from Dog Park
Software instead of using cocoaPTT to do PTT switching.
Unlike the cocoaPTT method, this method does
not terminate MacLogerDX when you quit from
cocoaModem.
Like cocoaPTT, the script files are located in the
cocoaModem application bundle (see description in the
cocoaPTT Method section above) . The two
scripts files are called mldxKey.scpt and
mldxUnkey.scpt. There
is no Quit script.
User Defined AppleScript
This PTT method allows the user to define his own
AppleScripts that is stored outside the application bundle.
You can select the folder where the script resides through
the cocoaModem AppleScript Preferences. Use the
Browse button to select the folder.
Like the cocoaPTT method, there
should be three script files in the folder you have
selected, that are called pttKey.scpt, pttUnkey.scpt and
pttQuit.scpt.
Even if you intend not to perform any action when
cocoaModem terminates, pttQuit.scpt should still
exist.
Once a PTT folder is selected, the name of the folder that
you have chose will replace the "User Defined" menu item in
the PTT menus. For example, if I were to select a folder
called W7AY PTT in the User Defined PTT
preference, the PTT Popup menu shown earlier in Figure 1
will now look like:
Homebrewing
There is no reason not to build your own PTT device. The
following shows a very simple (5 minute construction) and
inexpensive serial port PTT device.
The breakout board is the
FT232RL board ($15) from Spark Fun Electronics. The small
relay is an NTE R56-1D.5-6 reed relay ($4) that operates
off USB power and provides galvanic isolation between
the computer and the radio. To keep from destroying the
FTDI chip, the small diode clamps the negative voltage
spike each time the current of the relay coil is turned
off.
Since everything operates off of USB power, this PTT device
requires no external power supply. You can even reduce the
parts count to two by using a reed relay that has a
built-in clamping diode.
The driver for the FTDI chip and drivers for it are
available for both the PPC and Intel base Macintoshes and
cocoaModem can use this device by going through cocoaPTT.