DarwinPSK - PSK31 for amateur radio on the Macintosh

Beginning with Version 0.7, the source code package reverts to its original name

of LinPSK. It now automagically detects what type of machine it is on and builds

the Macintosh version (DarwinPSK) when it discovers it is on a Mac. If you

download the pre-built binary, it may be called DarwinPSK to distinguish it from

the version that runs on other CPUs.

DarwinPSK is a version of LinPsk, written by Volker Schroer/ DL1KSV for Linux

and ported to the Macintosh OSX operating system with the help of Tom Dove /

K3ORC. DarwinPsk allows a Mac to receive and transmit with PSK31 (Phase Shift

Keying 31 Hz), a narrow-band digital mode which allows efficient keyboard

communications even with low power or in poor propagation conditions.

PSK31 enables real-time "chat" over ham radio, with one operator typing a

message on a computer, which is then transmitted and displayed on the screen of

the other. It has become quite popular on the 20-meter amateur band, with

activity centered around 14.070.15 mHz.

DarwinPSK (ver 0.7 and later) also supports RTTY communications.

Besides the software, you need an amateur transceiver (and government license to

transmit) capable of Single Sideband operation and an interface that will send

the audio output of your Mac to the microphone input of the radio and send the

received audio from the radio to the external microphone input or Line In jack

of your Mac. For receiving, this interface can be as simple as a set of

headphones resting on the Mac's internal speaker, although a hard-wired

connection will be much better.

DarwinPsk was ported from LinPsk using a 500mHz iMac (2001 model) with 320mB of

RAM. It also builds and runs reliably on a 366 mHz iBook (2000 Blueberry) with

192 mB of RAM, but that machine has not been tested fully with sound I/O to a

transceiver yet.

I believe that DarwinPsk is the first amateur radio application to be ported

from UNIX/Linux to Macintosh OSX.

System Requirements

1. A Macintosh running OSX, version 10.2.6 or later 2. OSX Developer Tools,

version December 2002 or later, available on the OSX CD or by free download from

the Apple Web site at www.apple.com 3. A working X-Windows environment. I

recommend Apple X11, a free download from the Apple Web site.

The Fink project with at http://fink.sourceforge.net is an excellent free source

of the following necessary packages, Qt, esound, and fftw:

4. The Qt libraries for XDarwin, version 2.3. 5. The Esound sound daemon. 6. The

Fastest Fourier Transform in the West (fftw). Also install rfftw, a variant. 7.

Automake version 1.7. Check this with "fink list automake" as some versions of

Fink may install automake 1.6 by default.


These instructions assume a standard installation of Apple X11 and packages

installed with Fink. If you have used Tenon XTools or other method of installing

X-Windows, the directory holding your local files will have a different name

from /sw, which is the Fink standard.

1. Start X11 in the usual way and open your favorite terminal program. You can

also work in the Mac OSX Aqua environment with Terminal, but X11 must be

installed to provide the necessary libraries and compilers for building


2. Move to the /sw directory, create a new subdirectory for DarwinPsk and move

into it

cd /sw

mkdir ham

cd ham

3. Copy the tarball into this directory from wherever you saved it and untar it.

cp /SOURCEDIRECTORY/linpsk-0.7.x.tar.gz . (note the dot at the end)

tar -zxvf linpsk-0.7.x.tar.gz

4. The /sw/ham directory should now look something like this

linpsk-0.7.x linpsk-0.7.x.tar.gz

The program shows its heritage here in the LinPSK name. LinPSK is basically a

Linux program. The configure process automatically discovers what kind of

machine it is on and adapts to a Mac when it builds the binary executable file

on one.

5. Move into the the linpsk-0.7.x directory and build the program. On a 500 mHz

iMac, this takes about fifteen minutes. Your mileage may vary.

cd linpsk-0.7.x



6. This creates an executable file in the linpsk subdirectory. Go there and take

a test drive.

cd linpsk


7. You should see the DarwinPsk window, with no activity in either of the white

display screens. Click on the Settings menu and choose the Settings submenu.

Click on the DemoMode button to turn it off. You can set other options in this

window, including your amateur callsign, your timezone as an offset from UTC,

and the sound OutputLevel. The default OutputLevel is 50, which will be much too

high for most Macs, so the sound will be distorted. Try 1 as a starting point.

Click OK to return to the main screen.

Click on the RX button. This should produce a display in the lower left window,

showing the Spectrum input to the microphone of your Mac. Tap the microphone and

look for a change in the display. If there is no change in the display, the

sound input of your Mac is not activated.

8. Activate the microphone input by going to the Mac OSX Aqua interface and

opening the System Preferences control panel. Click on Sound to open the sound

input window. In a few seconds, the display in that window should indicate the

sound source as Internal Microphone. This means that the sound input is


9. Go back to XDarwin and DarwinPsk. Tapping the microphone should now produce a

visible change in the Input display window. If so, the sound input is working

properly. There should be a dark blue background with yellow dots that indicate

noise. Whistle a single note into the mic and a yellow line should appear on the

waterfall. This resembles the display of a signal tone from an incoming PSK31


10. Tune your receiver to 14.070.15 mHz, Upper Sideband. If the 20-meter band is

open, you should hear a variety of warbling tones from the radio speaker, each

one representing a ham using PSK31. Turn up the volume until DarwinPsk "hears"

the audio through the Mac microphone, as shown on the display. Adjust the volume

so the Waterfall shows a dark blue background with white or yellow lines

streaking down it. Click on one of these lines. In a moment, the ham's message

should appear in the Rx window as he types. If not, click on the Squelch bar and

lower it until the signal breaks through the squelch. Noise will show up as

random letters on the Rx display.

11. With receive working, click on TX. A clean-sounding warbling tone should

come from the speakers. If the tone is raspy, the OutputLevel is too high. Type

some words in the window to the right of the TX/RX button. The warbling sound

should vary as your typed words appear in the Rx window above. Click on the

TX/RX button to return to receive mode.

12. Once everything works satisfactorily, make it easier to start by creating a

symbolic link in a location that X11 can locate. After this, you will be able to

start DarwinPsk by typing "psk31" from any terminal prompt, or you can include

it in menus.

cd /sw/bin

ln -s /sw/ham/linpsk-0.7.x/linpsk/linpsk psk31

13. Wire up an interface between the Mac and the transceiver. The exact setup

will vary with your radio and the specific Mac model you have and is beyond the

scope of this document. Many hams use a commercial interface, such as a

RigBlaster or MFJ 1275, for PSK31 operation. Others find a simple cable

connection is sufficient. Some Mac portables do not have sound I/O and will

require a USB audio adapter, such as the iMic, to interface with the radio. It

may be necessary to put a variable potentiometer in the sound input to drop the

audio level and prevent overdriving DarwinPsk.

14. Explore the options in DarwinPSK. You can create macros to automate calling

CQ, answering calls, sending "brag" files and many other functions. These

preferences are saved in your home directory (/Users/USERNAME) as

LinPSKConfig.xml and include your callsign, macros and "brag" files.

15. I am aware of the sound output problem, which seems to be a bug in esound.

The output is too high, so set it at the lowest setting ("1") in the Settings

menu. You may need to drop the level with a variable pot or other means before

it reaches the microphone input on your radio, to avoid distortion. Always use

the minimum levels to and from the radio that will produce a clean signal.

Please send comments and bug reports to k3orc@arrl.net so we can continue to

improve DarwinPSK.

73 es BCNU on PSK31!

-- Tom Dove / K3ORC -- Home page at http://www.toad.net/~tdove/