Skip to content
baron.id
YB1CPT UTC --:--

Digital Mode · Intermediate · about 9 minutes of reading

One evening, one old desktop turned Hackintosh, a Yaesu FT-857D and a little Digirig interface. The goal was simple: run FT8 from macOS with JTDX, the program I always use on Windows. It was not a straight road. There was a shared memory error, a crash that left no crash report, and an audio level that would not come down. But by the end of the night the log held its first QSOs, including a 5,444 km contact with Australia on 20 m. Here is the whole session, step by step, including the traps.

JTDX on macOS logging an FT8 QSO with VK2LAW in Australia on 20 metres
Fig. 1 — The reward at the end of the night: VK2LAW (QF56, Australia) on 20 m FT8, reports −08 / −04, ready to log.

What I used

  • Computer: my home desktop running as a Hackintosh: Intel Core i5-4570, Radeon RX 5500 XT, macOS Sonoma (OpenCore)
  • Radio: Yaesu FT-857D
  • Interface: Digirig with the dedicated cable for the Yaesu FT-857/897 series. One USB cable to the computer carries a sound card plus a serial port for CAT
  • Software: JTDX 2.2.159. First the official build, later the "improved" build (you will see why)

1 · Download the right JTDX build

The latest official JTDX is still 2.2.159. On SourceForge the macOS folder has several flavours. For a Hackintosh (Intel CPU) with a Digirig you want:

  • 16-bit_audio: the Digirig's sound chip is a 16-bit USB codec
  • Darwin-x86_64: for Intel Macs on current macOS. arm64 is for Apple Silicon, and ODarwin is for old macOS versions

When Sonoma refuses to open the app from an "unidentified developer", use System Settings → Privacy & Security → Open Anyway, or run xattr -cr /Applications/JTDX.app in Terminal. Also allow JTDX to use the microphone, otherwise the waterfall stays empty.

2 · Trap one: "Unable to create shared memory segment"

JTDX on macOS showing the error Unable to create shared memory segment
Fig. 2 — The first start ends with this message. It is a known macOS issue, not a Hackintosh problem.

JTDX and WSJT-X hand audio to their decoder through a shared memory block, and macOS allows only a tiny one by default. The fix is to raise the limit. To test it right away (valid until the next restart):

sudo sysctl -w kern.sysv.shmmax=104857600 kern.sysv.shmall=25600

To make it permanent on Sonoma, I used a small LaunchDaemon instead of the old /etc/sysctl.conf, which newer macOS versions do not reliably read at boot. Save this as /Library/LaunchDaemons/com.jtdx.sysctl.plist (owner root:wheel, mode 644) and restart:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>com.jtdx.sysctl</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/sbin/sysctl</string>
    <string>-w</string>
    <string>kern.sysv.shmmax=104857600</string>
    <string>kern.sysv.shmall=25600</string>
  </array>
  <key>RunAtLoad</key><true/>
</dict>
</plist>

After the restart, sysctl kern.sysv.shmmax kern.sysv.shmall should report 104857600 and 25600. JTDX then opened normally.

JTDX 2.2.159 main window open on macOS before the radio is connected
Fig. 3 — JTDX running, still without the Digirig. The green line is only the noise of the computer's own sound card.

3 · Plug in the Digirig

Sonoma recognises the Digirig's serial chip without any extra driver. In Terminal, ls /dev/cu.* showed a new port, /dev/cu.usbserial-14A20 on my machine. Yours will have a different suffix. The sound card appears as "USB Audio Device". In Audio MIDI Setup I set it to 48,000 Hz.

Terminal listing serial ports on macOS, including the Digirig port cu.usbserial-14A20
Fig. 4 — The Digirig's serial port. Ignore cu.serial1 and cu.pci-serial22; those belong to the motherboard.

4 · On the FT-857D

Menu item Value Why
CAT RATE 38400 Must match the baud rate in JTDX
CAT/LIN/TUN CAT The rear CAT socket is used for computer control
DIG MODE USER-U Upper-sideband data mode for FT8
DIG VOX 0 PTT comes over CAT, not from audio VOX
Operating mode DIG Takes transmit audio from the DATA socket instead of the microphone

Menu numbers differ slightly between FT-857 and FT-857D firmware, so look the items up by name in your manual.

5 · JTDX settings

A note for Windows users: on macOS the settings are not under File → Settings. They are under JTDX → Preferences… (or ⌘ + ,).

JTDX Preferences Radio tab configured for Yaesu FT-857 via Digirig on macOS
Fig. 5 — The Radio tab for the FT-857 through the Digirig.
Tab Setting Value
General My Call / My Grid YB1CPT / OI33
Radio Rig Yaesu FT-857
Radio Serial Port /dev/cu.usbserial-xxxx (the Digirig)
Radio Baud / Data / Stop / Handshake 38400 / Eight / Two / None
Radio PTT Method CAT
Radio Mode Data/Pkt
Radio Split Operation Fake It
Audio Input / Output USB Audio Device, Mono
JTDX Preferences Audio tab with USB Audio Device selected for input and output
Fig. 6 — Audio in and out through the Digirig's USB sound card.

With Test CAT green and the frequency following the VFO, the band list filled up straight away on 40 m: Japan, China, Korea, Malaysia and plenty of YB stations.

JTDX on macOS decoding many FT8 stations on 7.074 MHz
Fig. 7 — First decodes on 7.074 MHz, with time offsets (DT) close to zero.

6 · Trap two: receive audio far too hot

JTDX's input meter sat at 88–90 dB, in the red, where around 30–50 dB is ideal. Lowering the Digirig's input volume in Audio MIDI Setup to almost nothing (0.04) barely moved it. This is a known combination problem: the FT-857's DATA socket delivers a fixed, fairly strong receive level with no menu to turn it down, and the Digirig's codec does not attenuate much in software.

Audio MIDI Setup with Digirig input almost at zero while JTDX meter still shows 88 dB
Fig. 8 — Input slider almost at the bottom, meter still at 88 dB.

Decoding still works, as the screenshots show. But a very strong station can clip the audio and hide weak ones nearby. The proper cure is a hardware one: the Digirig has an "ATT" pad on its circuit board that gives roughly 20 dB of receive attenuation. That modification is the subject of the next article.

7 · Trap three: JTDX vanishes on double-click

On Windows I double-click a station calling CQ and JTDX starts the QSO. Here, the first double-click made JTDX simply disappear. No dialog appeared, and macOS saved no crash report. Starting JTDX from Terminal showed why:

/Applications/JTDX.app/Contents/MacOS/jtdx
Terminal output showing Fortran runtime error in gen9.f90 dummy argument msgsent
Fig. 9 — The real reason: a Fortran runtime error in gen9.f90, after which JTDX quits.

This is a known bug in the official JTDX 2.2.159 macOS build. Other Sonoma users report the same thing: decoding works, but the program closes when you click a call, answer a CQ, or someone answers yours. The solution was the JTDX "improved" build, which is based on the same 2.2.159. Pick the JTDX_GUI_Darwin-x86_64 file if you want the familiar JTDX layout. My settings carried over, and the shared memory fix stays in place.

JTDX improved build on macOS calling YB9GAN after a double-click
Fig. 10 — With the improved build, a double-click on YB9GAN's CQ starts the sequence with AutoSeq.

A tip for weekend operators: whenever a Mac program just disappears, start it from Terminal. The last lines printed before it closes nearly always name the culprit.

8 · Where the log lives

Every QSO confirmed in the Log QSO window is written to an ADIF file:

~/Library/Application Support/JTDX/wsjtx_log.adi

The Library folder is hidden. In Finder, press ⇧⌘G, paste the path, then drag the JTDX folder into Favorites. For now I upload this file by hand on logbook.qrz.com (ADIF import). QRZ skips QSOs it already has, so uploading the whole file again is harmless.

The JTDX ADIF log file wsjtx_log.adi opened in TextEdit next to the JTDX folder in Finder
Fig. 11 — The first QSO in the ADIF log: YB9GAN on 40 m, −08 sent / −11 received.

9 · Easier on the eyes

The default decode font is small on a 24-inch monitor. Under JTDX → Preferences → General, the Decoded Text Font… button lets you choose a bigger one. Keep it monospaced (Menlo, Monaco or Courier New) so the UTC, dB, DT and Freq columns stay lined up.

JTDX band activity on 20 metres with a larger monospaced decode font
Fig. 12 — 20 m open to Europe, the Middle East and Australia, now in a font my eyes like.

Results of the night

UTC Call Band Grid Sent / Rcvd
14:19 YB9GAN 40 m OI81 −08 / −11
14:30 VK2LAW 20 m QF56 (5,444 km) −08 / −04

When it misbehaves

Symptom Most likely cause
"Unable to create shared memory segment" macOS shared memory limit too low. Apply the sysctl / LaunchDaemon fix
Waterfall empty Microphone permission not granted, or the wrong sound device selected
Test CAT stays red Wrong serial port, CAT RATE on the radio does not match, or CAT/LIN/TUN not set to CAT
JTDX quits on double-click or when called gen9.f90 bug in the official macOS build. Use JTDX improved
Input meter near 90 dB FT-857 DATA output too hot for the Digirig. Use the Digirig ATT pad (next article)

Coming next

  • The Digirig ATT modification: bringing the FT-857D's receive level down to where it belongs
  • Automatic QRZ uploads on the Mac: JTDX → RUMlogNG → QSO Upload Utility, so the log reaches QRZ.com the moment I press OK, just like N3FJP ACLog does on Windows
Disclaimer. This article is for education only. Running macOS on non-Apple hardware may conflict with Apple's licence terms. Follow your amateur licence conditions, check every radio setting against your own manual, and operate at your own risk (DWYOR).

Written for baron.id · 73 de YB1CPT