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).

Picture 5
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.

PTT Pref

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:

Menu User Defined




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.

SimplePTTsmall

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.