Mastodon

True FSK RTTY on the IC-705 with fldigi (and why the WinKeyer won't do it)

True FSK RTTY on the IC-705 with fldigi (and why the WinKeyer won’t do it)

Can a K1EL WinKeyer USB drive the IC-705 for FSK RTTY (not AFSK) from fldigi? I couldn’t find a clear answer anywhere, so I went through the manuals and the fldigi source code.

Short answer: not with the WinKeyer, because the IC-705 has no socket for the WinKeyer’s FSK output. You don’t need the WinKeyer anyway. fldigi 4.1.21 and later can key the 705’s FSK directly over the USB cable, using the DTR or RTS line of the radio’s virtual serial port.


What FSK means here

With AFSK, fldigi generates audio tones and the radio transmits them in USB-D mode. With true FSK, the radio is in RTTY mode and generates the mark and space frequencies itself (2125 Hz mark, 170 Hz shift). The computer only supplies a single on/off keying line. Audio levels don’t matter and the signal is clean.

Does the WinKeyer do FSK?

Yes, which surprised me. From firmware WK 3.1, the WinKeyer can send RTTY: 5-bit Baudot at 45.45, 50, 75 or 100 baud, controlled from a PC or even standalone from the paddle. fldigi supports it under Configure → TTY → Winkeyer 3. Older WK2-based units can’t do this.

The catch is where the signal comes out. The WKUSB manual says the WinKeyer’s PTT output goes to the transceiver’s FSK input, and its KEY output keys the transmitter. On an IC-7300 or IC-7610, that FSK input is a pin on the ACC socket. K0PIR has good write-ups of those cables (links below).

Why that doesn’t fit the IC-705

The IC-705 has no ACC socket and no physical FSK input. Its KEY jack takes a paddle, a straight key or an external memory keypad, and nothing in Icom’s manual says it accepts FSK. The Advanced Manual lists one way to key FSK from outside the radio: the USB Keying (RTTY) setting, which uses the DTR or RTS line of one of the radio’s two virtual serial ports.

USB Keying (RTTY) option Keys FSK on
OFF Nothing
USB (A) DTR / USB (A) RTS DTR or RTS on virtual serial port A
USB (B) DTR / USB (B) RTS DTR or RTS on virtual serial port B

So the 705 does true FSK, but only when software on the computer toggles a line on one of its USB serial ports.

fldigi can key it directly

Older fldigi documentation explains why fldigi couldn’t do FSK: with ordinary operating-system sleeps, the bit timing jittered too much for RTTY. That page is now marked out of date. From fldigi 4.1.21, fldigi keys FSK itself on a serial port’s DTR or RTS line. I checked the current source, and the keying runs in its own thread with a high-resolution timer (timerfd on Linux).

The settings are under Configure → Modem → TTY → FSK, in the group called DTR/RTS signal line FSK:

  • Enabled: turns on FSK keying from the serial port.
  • Shares RIGIO serial port, or uses a separate Serial Port: uses the port fldigi’s built-in rig control (RigCAT) already has open, or a port of its own.
  • Use DTR: keys on DTR. Unticked, it keys on RTS.
  • Reverse: swaps mark and space.
  • Stop bits (1.5 or 2), and an option to always send a shift character before a space.

My fldigi 4.2.11 has all of this. Check yours under Help → About. Ubuntu 24.04’s packaged 4.2.03 is also new enough.

Setting it up

This setup is working on air: fldigi 4.2.11 on Linux, with wfview running the IC-705 over WiFi and the USB cable plugged in only for FSK keying.

Plugged in over USB, the IC-705 appears on Linux as two serial ports:

/dev/ttyACM0    USB (A), the CI-V port
/dev/ttyACM1    USB (B)

I give /dev/ttyACM1 (port B) to fldigi for FSK only. fldigi opens it just to toggle the DTR line, so it never competes with anything else for the CI-V port.

The ttyACM numbers are assigned in the order the devices appear, so they can change if you plug in other USB serial devices. If that happens, ls -l /dev/serial/by-id/ shows which ttyACM each IC-705 port is on (-if00 is port A, -if02 is port B).

On the radio:

  1. Select RTTY mode, not USB-D.
  2. SET → Connectors → USB Keying (RTTY): USB (B) DTR.
  3. USB SEND: OFF. My PTT comes over CAT, and an unused PTT line is one more way to key the radio by accident.

In fldigi, Configure → Modem → TTY → FSK:

  1. Tick Enabled. Leave Shares RIGIO serial port unticked.
  2. Serial Port: /dev/ttyACM1.
  3. Tick Use DTR, to match the radio.
  4. Leave Reverse unticked.

fldigi only looks for serial ports when it starts, so plug the radio in before starting fldigi or /dev/ttyACM1 won’t be in the list.

Rig control and PTT stay as they were: Hamlib “NET rigctl” at 127.0.0.1:4533, with PTT sent as a Hamlib command. In my case that’s wfview’s rigctld server (see fldigi via wfview on Linux). A standalone rigctld on /dev/ttyACM0 should work the same way.

Test: the 705’s own RTTY decoder won’t show what you send, because the receiver is off while you transmit. Listen on a second receiver instead: another rig, an RTL-SDR, or a KiwiSDR a few hundred km away with its RTTY decoder turned on. If the text comes out as garbage, tick Reverse in fldigi.

To be spotted on the RBN or PSKreporter, send a proper CQ such as CQ CQ DE <call> <call> K. Skimmers don’t report RY tests or free text. Few skimmers decode RTTY, so try the busy RTTY frequencies on 20 m (14.080–14.090 MHz) or 40 m (7.040–7.045 MHz). Keep clear of the WSPR segment around 14.0970 MHz.

If it transmits once and then stops

The FSK line only carries the data. The transmitter is switched on by PTT, which goes from fldigi through Hamlib to wfview. If wfview stops or is restarted, fldigi loses that connection and doesn’t reconnect by itself, so nothing keys. The FSK port still looks fine, which makes this confusing.

Fix: in fldigi go to Configure → Rig Control → Hamlib, untick and re-tick Use Hamlib, press Initialize, then Save. When fldigi’s frequency display follows the radio again, it’s reconnected.

Quick reference

What I’m running: fldigi 4.2.11 and wfview 2.24 on Linux, with the IC-705 on WiFi through wfview and the USB cable plugged in for FSK keying only.

Where Setting Value
IC-705 Mode RTTY
IC-705 USB Keying (RTTY) USB (B) DTR
IC-705 USB SEND OFF
fldigi → Modem → TTY → FSK Enabled ticked
fldigi → Modem → TTY → FSK Shares RIGIO serial port unticked
fldigi → Modem → TTY → FSK Serial Port /dev/ttyACM1
fldigi → Modem → TTY → FSK Use DTR ticked
fldigi → Modem → TTY → FSK Reverse unticked
fldigi → Modem → TTY → FSK 1.5 stop bits ticked
fldigi → Modem → TTY → RTTY Shift / baud / bits / stop 170 Hz / 45.45 / 5 / 1.5
fldigi → Rig Control → Hamlib Rig / device NET rigctl, 127.0.0.1:4533 (wfview)
fldigi → Rig Control → Hamlib PTT Hamlib command
fldigi → Audio Capture / playback Loopback hw:10,0 / hw:11,0 at 48 kHz (receive only; FSK doesn’t use transmit audio)

Not tried

  • Getting spotted. The rig keys and the signal looks right on the 705’s scope, but I haven’t been spotted on the RBN or PSKreporter yet. I’ll try again with a proper CQ when there isn’t a contest on.
  • flrig instead of Hamlib. The FSK port setting is the same, but I haven’t checked whether flrig and fldigi get along when flrig also has the radio’s ports open.

Sources