grig man page

grig — graphical user interface for the Ham Radio Control Libraries (hamlib)


grig [OPTION]...


Grig is a simple Ham Radio control (CAT) program based on the Ham Radio Control Libraries. It is intended to be highly generic presenting the user to the same graphical user interface regardless of which radio is being controlled.

Grig does not store any radio configuration, instead it takes a number of command line options.

-m, --model=ID

select radio model number; see --list

-r, --rig-file=DEVICE

set device of the radio, eg. /dev/ttyS0

-s, --speed=BAUD

set transfer rate (serial port only)

-c, --civ-addr=ID

set CI-V address (decimal, ICOM only)

-C, --set-conf=par=val[,par2=val2]

set additiional configuration parameters

-d, --debug=LEVEL

set hamlib debug level (0..5)

-D, --delay=VALUE

set delay between commands in msec (see below)

-n, --nothread

use timeout calls instead of thread (see below)

-l, --list

list supported radios and exit

-p, --enable-ptt

enable ptt control

-P, --enable-pwr

enable power status control

-h, --help

show a brief help message and exit

-v, --version

show version information and exit

Example: Start grig using YAESU FT-990 connected to the first serial port, using 4800 baud and debug level set to warning:

    grig -m 116 -r /dev/ttyS0 -s 4800 -d 3

or if you prefer the long options:

    grig --model=116 --rig-file=/dev/ttyS0 --speed=4800 --debug=3

It is usually enough to specify the model ID and the DEVICE.

If you start grig without any options it will use the Dummy backend and set the debug level to 0 (RIG_DEBUG_NONE). If you do not specify the transfer rate for the serial port, the default serial speed will be used by the backend and even if you specify a value, it can be overridden by the backend. If you omit the radio device (port) grig will use /dev/ttyS0 or localhost if the selected radio is RPC-rig.

Debug Levels

0    No debug, keep quiet.
1    Serious bug.
2    Error case (e.g. protocol, memory allocation).
3    Warnings.
4    Verbose information.
5    Trace.

Grig has its own debug message handler, which will manage messages from hamlib too. The messages are printed to STDERR by default but they can be redirected to a file. In bash shell you would write something like:

    grig [options] 2> grig.log

You can then use the Message Window in the View menu to view these messages. The debug messages printed by grig a formatted in a structured way with each line containing both time, source and level of the message. Each field is separated with ;; so you can also import the log file into a spread sheet for further analysis.


Grig 0.8.1 supports the most commonly used CAT command implemented by hamlib. These include frequency, mode, filter and various level settings. Please note that not all features have been thoroughly tested since I don't have access to any modern high-end radios. Therefore, comments regarding success or failure in using grig will be highly appreciated.

Known Bugs and Limitations

Buffer Overflow in Radio

By default, grig tries to execute rig commands as fast as possible in order to achieve an almost real-time remote control experience. This strategy has turned out to cause problems with some radios, probably because these radios acknowledge the reception of a command before executing them, whereby the next command will be sent before the previous one has terminated. To avoid any possible buffer overflow in these situations, one can try to experiment with the -D or --delay command line argument, which will put the specified delay in between each executed command. The default value is 10 milliseconds and the smallest possible value is 1 millisecond (if one specifies 0 millisecond on the command line, the default value will be
used). If you find a value which is better for your radio than the default value, please let us know about it.

Daemon Never Starts on FreeBSD

There have been reports on that the new, thread-based daemon process is never started on FreeBSD, while the old, timeout-based daemon worked fine. It is therefore possible to choose the two ways to run the daemon process. The default is the new thread based daemon, but if you use FreeBSD and nothing seems to work after start-up you can select the timout-based daemon with the -n or --nothread command line option.

Connection Settings

Once you have started grig you can not change the radio settings (model, device, speed). You will have to restart the program if you want to change any of these settings.

Multiple Radios

Grig can control only one radio at the time. There are, however, no problems in starting several instances of grig as long as they do not try to control the same radio. An exception to this is the RPC-rig backend in which case the rpc rig daemon will act as a server while grig or any other hamlib frontends will act as a clients.

Power OFF State

On some radios, grig does not cope very well with the power off state. It is yet not known whether this is a bug in the hamlib backend or in grig and we will definitely appreciate your input. The situation gets even more complicated due to the fact that different radios behave in a different ways when they are powered OFF; some of them will continue to respond to remote commands, while others will not. Even the same radio, like the FT-817, can behave differently depending on whether it is powered from internal batteries or external power supply. Grig tries to handle this mess by suspending all rig commands while in power OFF state. Only the power ON command will be sent to the rig. By default, the power status control is disabled and must explicitly be enabled using the -P or --enable-pwr command line switch.

PTT Control

Similar to the power state, the PTT has caused strange behaviour on some radios. Consequently, it has been disabled by default but can be enabled using the -p or --enable-ptt command line aguments.


Written by Alexandru Csete, OZ9AEC.

Reporting Bugs

Report bugs to <>.
Bugs related to hamlib should be reported directly to the hamlib developers at <>.

See Also



Version 0.8.1 Alexandru Csete User Commands