FLRIG Users Manual  1.4.1
FLRIG Users Manual - Version 1.4.1

Transceiver Control

FLRIG is a transceiver control program designed to be used either stand alone or as an adjunct to FLDIGI. The supported transceivers all have some degree of CAT. The FLRIG user interface changes to accommodate the degree of CAT support available for the transceiver in use.

Three different main dialog aspect ratios can be selected to suit the computer screen dimensions and operator preferences. The wide aspect ratio can be resized horizontally. The narrow aspect ratios are fixed in width and height.

A fourth interface is available for all transceivers. It is suitable for use on a touch screen

Shown at 75% of full size

The back end control code for each transceiver is unique to FLRIG. No additional libraries or definition files are required.

Supported Transceivers

Elecraft Icom Kenwood Ten-Tec Yaesu Other
K2 IC-703 TS 140 TT 516 FT 100D PCR 1000
K3 IC 706 MK IIG TS 450 TT 535 FT-450 RAY 152
KX3 IC-718 TS 480HX TT 538 FT-450D

IC 728 TS 480SAT TT 550 FT 747GX PowerSDR

IC 735 TS 570 TT 563 FT 767 Flex 1500

IC 746 TS 590S TT 566 FT 817

IC 746 Pro TS 590SG TT 588 FT 847 Xiegu 5105

IC 756 Pro II TS 990 TT 599 FT 857D Xiegu G90

IC 756 Pro III TS 2000
FT 897D

IC 910H


IC 7000


IC 7100


IC 7200


IC 7300

FT 2000

IC 7410


IC 7600


IC 7610


IC 7700


IC 7610

IC 7700

IC 7851

IC 9100

IC 9700

IC F8101


Select the transceiver with the "Config / Setup / Transceiver" menu item.

Each of the menu items will open the configuration dialog to the respecive tab:

  • Transceiver - select transceiver and configure serial i/o parameters
  • tcpip - configure interface to a remote tcpip/serial controlled transceiver
  • PTT - configure PTT
  • AUX - configure separate auxiliary serial ports (if used)
  • Polling - select and configure transceiver parameters to poll
  • Trace - select and display program execution paths
  • Restore - select and configure transceiver parameters to read and restore

Xcvr Select

I/O Ports - Xcvr

Select the rig in use from the "Rig" combo box.

The default values associated with that transceiver will be preset for you. These have been verified by the test team but might require some tweaking for your particular h/w.

Configure PTT

I/O Ports - PTT

Select CAT PTT if your transceiver supports a CAT command for PTT on/off. This control will default to checked if CAT PTT is supported.

You may prefer to use h/w PTT signaling instead of CAT PTT. The h/w PTT may be shared with the CAT serial port. Note that both RTS/CTS handshake and RTS PTT cannot both be used on a single serial port.

If your serial connection is a CI-V device you might need to check "Echo" and also set either RTS or DTR to +12 if CI-V power is derived from the serial port.

Your PTT h/w control may also make use of a second serial port. If that port is the secondary serial port of the SCU-17 then you must also enable the "Serial Port is SCU-17 auxiliary" control.

Configure CMEDIA PTT

Cmedia PTT control

Cmedia audio codec chips are used in a number of inexpensive USB audio thumbnail devices.
It is also used in the DRA@ series of sound card adapters. The DRA is a radio optimized sound card used to connect a two-way radio to a computer for digital communications. The DRA-Series digital radio adapter is used for Packet Radio or other digital programs and applications like VARA-FM, VARA-HF, SoundModem or fldigi.

All RA Series radio adapters include GPIO support. The Cmedia device supports 4 unbuffered input/output lines, GPIO-1 ... GPIO4. GPIO-3 is used to drive a fully buffered and deadman protected PTT circuit. All DRA Series radio adapters include a Heartbeat Monitor. When the Cmedia device is reading or writing audio data, the HeartBeat status LED (HB) flashing. If everything is okay, (HB LED is flashing) a Blue LED called "COMM OK" illuminates. If the HB LED stops flashing because the radio adapter or the computer/appliance has failed, or the software has stopped reading or writing audio data, the Blue COMM OK LED goes out. The Blue LED indicates the health status of the system, and illuminates when everything is okay.

The PTT line on any DRA Series radio adapter is interrupted with the failure of this health status. This function will kill the PTT line the audio stream is interrupted. This will occur if fldigi and similar modem program is not reading/writing audio data.

The circuitry was designed to operate correctly no matter if the Heartbeat has stuck in the on or off state.

The PTT type, the device and the GPIO line must be selected. If multiple C-Media devices are discovered they will enumerate as C-Media-A, C-Media-B, etc.
You must test the selected interface as it is not possible to know which is the correct one for the DRA interface. Pressing the TEST button will cause the PTT line to rapidly toggle for a period of 2 seconds. This will cause the RED PTT led to flash and the transceiver PTT to toggle on and off.


GPIO PTT control

The Pi series of miniature computers offer a large array of possibilities for controlling devices. It has a array of General Purpose Input Output, gpio, lines of a 40 pin in-line header. 17 of these gpio lines can be used for things like push-to-talk. There are several add on boards for the Pi3 and Pi4, such as the NW Digital Radio UDRC-II, that has a full interface for digital operations, including PTT and audio codecs.

Access to hardware ports is always limited to the user who either is root or has root privileges. setuid and setgid (short for set user ID upon execution, and set group ID upon execution, respectively) are Linux access rights flags that allow users to run an executable with the permissions of the executable's owner or group respectively and to change behaviour in directories. They are often used to allow users on a computer system to run programs with temporarily elevated privileges in order to perform a specific task. While the assumed user id or group id privileges provided are not always elevated, at a minimum they are specific.

It is possible to give full gpio access and control privileges by elevating flrig with setuid root. But this is not advisable as flrig is also granted access to both serial and network services. There is a way to provide the access via a second program that does have the elevated privilege

This is a copy of material at


for installing WiringPi which includes a really nice utility called gpio.

To obtain WiringPi using GIT:

$ git clone git://git.drogon.net/wiringPi

If you have already used the clone operation for the first time, then

$ cd wiringPi
$ git pull origin

Will fetch an updated version then you can re-run the build script below.

To build/install there is a simplified script:

$ cd wiringPi
$ ./build

The build script will compile and install it all for you. It does use the sudo command at one point, so you may wish to inspect the script before running it.

Test wiringPi's installation

run the gpio command to check the installation:

$ gpio -v
$ gpio readall

That should give you some confidence that it’s working OK.

WiringPi is released under the GNU Lesser Public License version 3.

flrig uses the gpio program for initializing the gpio port, which also happens to the change the privilege of the temporary sys file for setting the port state.

Read the man document for gpio

GPIO is  a  swiss  army knife of a command line tool to allow the user 
easy access to the GPIO pins on the Raspberry Pi and the SPI A/D and D/A 
converters on  the  Gertboard.  It's designed for simple testing and 
diagnostic purposes, but can be used in shell scripts for general if 
somewhat slow control of the GPIO pins.

It can also control the IO's on the PiFace IO board and load the SPI and 
I2C  kernel  modules if required.

Additionally, it can be used to set the exports in the /sys/class/gpio 
system directory to allow subsequent programs to use the /sys/class/gpio 
interface without needing to  be run as root."

After installing gpio on your Pi you can set the gpio port on flrig's
GPIO configuration tab.  The UDRC-II for example uses pin 16, BCM # 23,
for push to talk.  It has an LED indicator on the board to show when PTT
has been enabled.  For this board you select "BCM 23" and select the
corresponding "= 1 (on)" check box.

During start up flrig uses the gpio program to set up the gpio pins with the command

$ gpio export NN out

This is the command to export a GPIO pin in the /sys/class/gpio directory. Note that the pin number is the BCM_GPIO number. 'out' sets the pin to be an output control, and 'in' an input control.

Once a GPIO pin has been exported, the gpio program changes the ownership of the


and if present in later kernels, the


pseudo files to that of the user running the gpio program. This means that you can have a small script of gpio exports to setup the gpio pins as your program requires without the need to run anything as root, or with the sudo command.

During shutdown flrog uses the gpio program to disable access to the gpio pins used with PTT by invoking the command

gpio unexport NN.

You can check that this is working correctly from a terminal window using the command

$ gpio readall

Configure auxiliary ports

I/O Ports - Aux

Aux Controls

You might also need access to special h/w functions. FLRIG provides this via the DTR and RTS signal lines of an independent serial port. Additional main dialog controls are enabled and shown if you select anything other than NONE (the default). Enable the "Serial Port is SCU-17 auxiliary" if you are using the SCU-17 secondary serial port.

Configure Polling

I/O Ports - Polling

Providing you transceiver supports the various meters and controls, you can elect to poll these every time the poll cycle occurs. Polling a value causes FLRIG to follow and well as control a particular transceiver function or control. The polling cycle will slow down as you elect to poll more and more values.

Send Command String


Testing your transceiver commands. FLRIG might not support a particular CAT command for your transceiver. You can test the support for a particular command using the "Send Cmd" tab. The command string must comply with the transceiver requirements. If ASCII text is used, as with transceivers based on the Kenwood command set you enter the string without spaces, i.e.


to read the A vfo .

For binary strings, used in older Yaesu transceivers, and all Icom CI-V type transceivers you need to enter the string as space delineated hex values, i.e.

Yaesu:  x00 x00 x00 x01 x05

Icom: xFE xFE x70 xE0 x1A x05 x00 x92 x00 xFD

The buttone "ICOM pre" and "ICOM post" will insert the preamble and postamble hex code sequences for the selected Icom transceiver.

Press the SEND button to transfer the command to the transceiver. The response will appear in the lower text control.

The diamond indicators will be lit for transceiver and fldigi connections respectively.

Configure Command Tracing

Configure code execution trace

Several debugging tools are available in flrig, including the ability to observe code execution in various parts of the program. The trace tool sends time annotated data to both a viewing dialog and a file named "trace.txt" which is written to the flrig files folder.

  • Trace support code - main processing loop execution points
  • Trace debug code - replicate the event log debugging output
  • Trace rig class code - execution points within a specific transceiver class (not for all)
  • Trace xml_server code - execution points within the xmlrpc interface code for i/o to/from fldigi
  • Trace xmlrpcpp code - sent and received xmlrpc data packets
    six levels of detail 0 ... 5 can be specified
Example showing support code trace

Configure Read/Restore Xvcr Settings

flrig will read various transceiver parameters and restore them upon closing. The next image shows the available read/restore parameters for the Icom 7200. If a parameter is not available (or coded) it will be disabled and grayed out. Check each parameter that you want to read and restore. Reading and restoring transceiver parameters takes time, especially on older transceivers with low baud rate serial i/o. Check "Use xcvr data" i\If you want flrig to NOT change the transceiver operating state when it begins execution.

Restoring transceiver Status

Configure XmlRpc Server

Configure server

flrig accepts remote control via an XmlRpc socket interface. fldigi uses this access method for reading and writing transceiver parameters via flrig. WSJT-X and several other third party programs also use this method. See flrig XmlRpc Command Structures.

User Interface

Meter Display and Filters

Meter Filter Controls

You can control the behavior of both the average and peak values of the S-meter and Power out meters. Setting the controls to 1 for both average and peak will simply display the latest value available from the transceiver. The average setting results in the display showing the average of the last N readings. The peak value will display the average peak value over the last M readings.

Meter Scale

Right click on the main dialog power meter scale to open up this selection dialog. Each of the 4 scales and the "Auto scaled" box are buttons. Press the one you want to use. Auto-scaling adjusts the meter scale to the smallest scale consistent with the current measured peak power. If that power is fluctuating near the transistion point between two scales you might want to fix the scale to either the larger or smaller.

Slider sizing

When the user interface is configured to be "small" then the UI submenu will contain the item "Small sliders". Toggling this menu item will immediately change the size and positions of the various slider controls. Select the toggle button "Small sliders" on the Config menu for 1/2 size sliders and a dialog layout that uses less vertical space.

Small UI - Large Sliders

Small UI - Small Sliders

Additional Controls

Additional control settings may be available depending on the transceiver being controlled. These are in a drop-down area toggled by the arrow button to the left of the attenuator button on the small aspect ratio dialog view. These are the controls for the Yeasu FT991A.

Select the User Interface menu item to configure various user preferences including Configuring Fonts and Colors.

Operating Controls

Frequency Control

The frequency display is also a control. Each numeric is sensitive to the mouse left/right buttons for up/down and to the mouse scroll wheel for rapidly changing value. Click on upper half of the digit to increase frequency, and the lower half of the digit to decrease the frequency. Put the mouse over any of the numeric segments and you can enter a new frequency using the keyboard numeric keypad. If you make an error simply enter a non-numeric key. Set the newly entered frequency by pressing the Enter key.

To paste a frequency from the clipboard (kHz only), press control-V followed by the Enter key

Vfo-A and Vfo-B are separate controlS, A on the left, B on the right.

Left click on the A->B button to swap vfos. Right click on the A->B button to transfer vfoA to vfoB.

When the mouse pointer is over the frequency display you can also change frequency values using the arrow and page key buttons:

  • left / right arrow - increase / decrease 1 Hz
  • up / down arrow - increase / decrease 10 Hz
  • Page Up / Page Down - increase / decrease 100 Hz

Control Sliders

The buttons that have a light box are toggles - activated when the lighted box is colored. Some of these are linked to a slider. If the button state is inactive then that associated slider will be greyed out. In the example the volume control is active and the NR control is inactive.


Operating FLRIG with FLDIGI requires a simple setup in FLDIGI. Deselect all but the "xmlrpc" rig control. Xmlrpc is used via a local socket device for the two programs to communicate. FLDIGI acts as the server and FLRIG the client. There is no requirement for start / stop ordering of the programs.

FLRIG sends rig configuration data to FLDIGI when the two programs initially recognize each other. This data is used to populate the rig name, the available modes and the available bandwidths.

After this initial communications the operator can set the paired controls from either FLDIGI or FLRIG. The two programs will remain synchronized. The data from the computer to the transceiver is always from FLRIG.

PTT can be activated at FLRIG or using the T/R button on FLDIGI. FLDIGI also engages the PTT via the macro <TX> <RX> tags. When operating digital modes with FLDIGI you should use the PTT from FLDIGI.

Configuration/Data files

Configuration and data files used by flrig consist of the following:

OS Folder File Usage
Windows XP c:\Documents and Settings\user-name\flrig.files flrig.prefs names transceiver file & xmlrpc port
Windows XP c:\Documents and Settings\user-name\flrig.files IC-7100.prefs (1)(2) IC-7100 specifc configuration items
Windows XP c:\Documents and Settings\user-name\flrig.files IC-7100.mat (1)(2) IC-7100 specific memory file
Windows 7/8/10 c:\Users\user-name\flrig.files flrig.prefs names transceiver file & xmlrpc port
Windows 7/8/10 c:\Users\user-name\flrig.files IC-7100.prefs (1)(2) names transceiver file & xmlrpc port
Windows 7/8/10 c:\Users\user-name\flrig.files IC-7100.mat (1)(2) names transceiver file & xmlrpc port
Linux/Unix/OS-X $HOME/.flrig flrig.prefs names transceiver file & xmlrpc port
Linux/Unix/OS-X $HOME/.flrig IC-7100.prefs (1)(2) names transceiver file & xmlrpc port
Linux/Unix/OS-X $HOME/.flrig IC-7100.mat (1)(2) names transceiver file & xmlrpc port

(1) Several TRANSCEIVER.prefs and mat files may be in the folder. Each specifc to the configured transceiver
(2) Files such as IC-7100.prefs.1, IC-7100.mat.1, up to a prefix of 5 may appear in the folder. These are aged files, with the oldest file having the largest prefix value. The mat files are only created if the user actually saved items to memory.

Transceiver Prefs details are shown in this file: flrig prefs file contents.

The file is human readable. Editing the file is not recommended.

Memory File

Operating frequency, mode, and bandwidth can be saved to a memory file. Save the current values to the memory file using the "Memory / Save" menu item. Open the memory manager using the "Memory / Manage" menu item

The "Add", "Pick", "Del" and "Clr" buttons operate as labeled.

Left click on a line to enable modifying the Tag line for that entry. Terminate the tag entry with the "Enter" key.

The contents of a typical transceiver .mat file contains:

020000 2 5 "40 CW"
7070000 11 16 "PSK sub band"
7089000 11 16 "Feld Hell net"

Each line contains a frequency (Hz), Mode Nr., Bandwidth Nr., and "text tag"

The file is human readable. Editing the file is not recommended.

Event Log

Event Log

The event log is opened from the "Debug" menu. It allows you to view the serial and xmlrpc data exchanges between FLRIG, FLDIGI, xmlrpc transactions, and the transceiver.

Controlling Multiple Transceivers

You can have multiple instances of flrig running, each controlling a separate and unique transceiver. Doing this requires a separate configuration folder for each target transceiver. Either start flrig from a command line or copy the desktop launch icon and then modify it's "target" executable. In either case you will be adding a command line parameter

"--config-dir <target-dir>"

Note the double dash. The <target-dir> will be unique to each supported transceiver, for example: "C:\Users\<user-name>\flrig.ic7200" on Win-10, "/home/<user>/flrig.ic7200" on Linux or OS X. You will have to configure each instance with the correct interface parameters.

Transceiver How-To

FT 991A

FT-991A How-to

IC 7100

IC-7100 How-to

IC 7300

IC-7300 How-to

IC 7600

IC-7600 How-to

TT 550

The TenTec Pegasus, TT-550 is a computer only transceiver. FLRIG controls all aspects of this transceiver. TT550 - Pegasus Operating instructions

CW Keyer

Open the keyer dialog with the main dialog menu item "Keyer"

  • WPM slider selects the keyer speed
  • Clear - clears the text in the transmit buffer
  • transmit text will marquee to the left as each character is transmitted
  • Send/Pause button toggles sending text.
  • macro buttons / function keys load transmit buffer with canned message
  • the transmit text buffer must have keyboard focus for character entry. left click on the entry area to gain keyboard focus.

Tip for the function / macro buttons:

Control-left-click opens:

A CQ macro with start/stop (ptt enable/disable):


Prosign characters can be configured by the user. The macros and prosign assignments are save in the transceiver prefs file.

Config opens:

The DTR/RTS port can be either

  • shared with the CAT port
  • shared with the SEP port
  • shared with the AUX port
  • a unique serial port configured on this dialog
  • select either DTR or RTS for the keyline as required by h/w
  • Calibrate button sends standard "PARIS " word, WPM times. Program measures actual time to transmit and sets compensation value. Comp(msec) can be adjusted by user.

PTT delay is in milliseconds. Enter a non-zero value to enable a delay between the PTT-on and the first CW keyline closure. The same delay will be applied to the last CW keyline closure and PTT-off.

CW Keyer Interface

Top of Page