Provided by: icom_20120228-5_amd64 bug

NAME

       icom - remote control for ICOM transceivers and receivers

SYNOPSIS

       icom [ -r radio ] [ -c channel ] [ -m mode ] [-o offset ] [ -g frequency ] [ -f file] [ -adk ]

DESCRIPTION

       This program controls ICOM radio transceivers and receivers with the CI-V option. Most recent ICOM radios
       already  have  this  option; older radios can be converted with an appropriate adapter mounted inside the
       radio. Up to four CI-V radios can be connected to a single serial port using a level  converter  such  as
       the CT-17, which includes a MAX232 chip and not much else.

       The  program  implements  a  virtual radio with a bank of memory channels corresponding to the particular
       radio model. Each channel can hold frequency, mode and, in the case of VHF/UHF FM radios, transmit duplex
       offset. The virtual radio also includes a variable-frequency oscillator  (VFO)  scratch  register,  which
       controls  the actual receiver frequency, and several values used to control the tuning and mode selection
       functions. Most radios support USB, LSB, AM, CW and RTTY modes; some support narrow/wide filters and some
       support FM modes as well. Additional  features  that  can  be  controlled  on  some  radios  are  antenna
       selection,  scan  control,  main  dial tuning step and several other functions implemented in the various
       radio models.

       The actual VFO frequency, mode and transmit duplex offset is controlled  directly  by  the  program.  All
       other  registers and memory channels are accessed via the VFO, which can be loaded from a selected memory
       channel, modified and written back to the  same  or  different  channel.  When  implemented,  the  actual
       secondary  VFO is controlled by loading from, or exchanging contents with, the VFO. Other functions, such
       as tuning step, tuning rate and compensation for  the  actual  radio  oscillator  frequency  errors,  are
       performed in software.

       The  program  knows  about  most early and late model ICOM radios. The program can be told which model is
       present or directed to scan for all known models and report each one found. A number of diagnostic  tests
       are  performed  on the selected radio to determine which options are present and to initialize to a known
       state. The program detects certain anomalistic behavior of some radios and adjusts its operations to make
       the behavior conform to the model virtual radio.

       The program operates in one of three modes: keyboard batch, and keypad. In keyboard  mode,  commands  and
       arguments  are  entered  from  the  keyboard  following  the  icom> prompt, one command per line, and the
       complete command set is available. In batch mode, the same commands and arguments are read from the  file
       specified  as  an option in the command line. In keypad mode, commands and arguments are entered from the
       keyboard and numeric keypad following the > prompt. In this mode, most routine keystrokes use the numeric
       keypad to enter arguments, and the arguments are followed by a single character representing the  command
       name.  Shortcut  arrow  keys  on the keyboard (not the numeric keypad) are used to do routine things like
       tune up/down or increase/decrease the tuning rate.

       Options on the command line can be used to select the radio model and set the frequency and mode. Using a
       suitably crafted Unix crontab file, it is possible to tune a radio to different  frequencies  used  by  a
       shortwave  broadcaster throughout the day, for example. With the minimuf program (available in a separate
       distribution), it is possible to build shell scripts that predict the most likely  frequencies  and  tune
       the radio accordingly.

       The  program includes features to control scanning on some radios and transmit duplex/split on others. It
       also includes an optional feature to control the audio codec on Sun workstations.  This  feature  can  be
       used  in  connection  with multimedia conferencing programs developed by the Internet research community.
       The receiver audio is connected to the workstation and a MBONE session started with the  vat  audio  tool
       running.  A  remote operator can control the receiver via a telnet session and use the feature to control
       the gain, select the input port and mute the speaker as necessary.

BASIC OPERATION

       Most commands and command line options take arguments, although many arguments can be defaulted. Unsigned
       floating-point frequency arguments specify an absolute VFO frequency in MHz, if less than  1000,  and  in
       kHz  otherwise.  Signed  floating-point  (preceded  by  an explicit + or - character) frequency arguments
       specify an offset relative to the current VFO frequency in kHz. Signed or unsigned floating-point  offset
       arguments  specify  a  transmit duplex, split or beat-frequency oscillator (BFO) frequency offset in kHz.
       Signed or unsigned integer step arguments specify a tuning step in Hz. Unsigned integer channel arguments
       specify a memory channel number ranging from 1 to the  highest  available  in  the  particular  radio.  A
       channel  number  specified  as  '.'  means  the  currently  selected  channel and '$' the highest channel
       available. Other numeric and character string arguments take values according to the help menus described
       below.

       Since the most common function is tuning the radio  to  different  frequencies  or  scanning  a  band  of
       frequencies,  a compact convention is provided. In either keyboard, keypad or batch modes, a valid signed
       or unsigned floating-point number occurring as the first token on a command line is an  implicit  command
       to  set the VFO frequency and may be followed by a mode specification. In addition, for most commands and
       arguments, a question mark '?' appearing in either a command or argument position causes help information
       for that command or argument to be displayed. The information is in two  columns  -  the  first  shows  a
       command or option name string, while the second column shows a brief description of the function.

       The  program exits when command line options are processed and the command line includes any option other
       than -r, -i or -f. This is designed for use in shell scripts where all functions can be  completed  using
       only command line options. Keyboard mode is signalled by the prefix icom>, while keypad mode is signalled
       by the prefix > and batch mode has no prefix. Keyboard and batch commands are terminated by the ENTER key
       on either the keyboard or numeric keypad. Keypad commands are terminated by a special character depending
       on the command.

       A  radio  must be selected before any command which controls it. This can be done using the radio command
       in either keyboard or batch modes and the -r command line option. The behavior of the radio command  with
       no  argument depends on whether a radio has already been selected. If not, the program scans the CI-V bus
       for all known radios and for each one found displays a capability line showing the radio name and  tuning
       range.  If  a  radio  has already been selected, only its capability line is displayed. The radio command
       with valid argument can be used at any time to reselect a different radio, but only one can be active  at
       any given time.

       The chan command selects the memory channel and transfers its contents, including the frequency, mode and
       transmit duplex offset to the VFO. The freq command sets the VFO frequency, but does not affect the mode.
       Likewise,  the mode command sets the mode without affecting the frequency. For VHF/UHF radios, the duplex
       command sets the offset; however, at least with the 271, there appears no obvious means to set  the  sign
       of  this  offset.  The  write  command  writes  the VFO frequency, mode and offset to the memory channel,
       destroying its prior contents.  The clear command clears the memory channel for those radios that support
       it.

       Some ICOM radios do not compensate the local oscillator (LO) when the mode is  changed  and  the  BFO  is
       shifted  in  the passband. This has the unfortunate effect of detuning the radio by an amount up to 3 kHz
       when the mode is changed. When one of these  radios  are  detected  during  initialization,  the  program
       rewrites  the  frequency  each  time  the  mode is set. In the case of transceivers with general-coverage
       receivers, care should be given to the setting of the GENE-HAM switch. If in the HAM position, it is  not
       possible  to change to a frequency outside the ham bands. Since the setting of this switch is saved along
       with the frequency and mode in a channel and apparently cannot  be  changed  using  radio  commands,  the
       setting may have to be done manually.

TUNING OPERATIONS

       The keyboard mode can be very awkward when searching a band for signals, since a new command must be used
       every  time  the frequency is changed. The keypad command puts the program in keypad mode and changes the
       prompt string to ">". In this mode, arguments such as  frequency,  tuning  step,  etc.,  can  be  entered
       directly from the keyboard and numeric keypad. Of course, the keypad must be in Num Lock mode for this to
       work  properly.  In  keypad  mode,  the  arguments  are  given first followed by a single character which
       identifies the command and terminates input.

       Most ICOM radios tune in 10-Hz steps, while some HF radios tune in 1-Hz steps  and  some  VHF/UHF  radios
       tune  in  100-Hz  steps. The program determines the minimum tuning step during initialization and adjusts
       the various displays and control ranges accordingly. The easiest way to tune the radio  is  using  keypad
       mode  and  the  arrow keys. The UP and DOWN arrow keys adjust the frequency up or down one step. The LEFT
       and RIGHT arrow keys decrease and increase the tuning rate (Hz per step) respectively.  The  rate  values
       begin at the minimum tuning step and extend in 1-2.5-5-10 steps to 5 MHz per step.

       Each press of the UP and DOWN keys displays the current frequency, mode and either transmit duplex offset
       or  split offset. The display is also produced by other commands that change these quantities. Each press
       of the LEFT and RIGHT keys displays the current tuning rate.  Each press of the ENTER  key  displays  the
       current  VFO  frequency  and  mode.  If preceded by a single + or -, the memory channel is incremented or
       decremented, respectively, and the contents of that channel replace  the  VFO.  VFO  frequencies  can  be
       entered  directly  using  the keypad +, -, ., digit and ENTER keys. With a little practice, it is easy to
       scan a band (say with 1-kHz steps in USB) looking for signals and, when one is found,  change  to  100-Hz
       steps to move closer and then to 10-Hz steps for the final adjustment.

       With  the  arrow  keys, the VFO frequency values are constrained to follow integral multiples of the rate
       values. This prevents leaving the radio on some odd frequency, increasing the tuning rate and finding the
       actual tuning steps landing on odd values. When necessary, The step keyboard command or s keypad  command
       can  be  used  to change the tuning step to arbitrary values. This is useful in some channelized services
       with non-integral channel spacings, as in the maritime radio services. The rate keyboard command  can  be
       used to set the rate directly.

TRANSMIT/RECEIVE SPLIT OPERATION

       The  775  and  781  HF  transceivers  have  an auxiliary receiver and VFO that can be very useful in some
       operating modes, especially for working DX and contests. When split mode is in effect, the  main  VFO  is
       used  for  receiving  and  the auxiliary VFO for transmitting. When dual-watch is enabled, the audio from
       both receivers can be combined in a selectable ratio. The control program supports  both  features  using
       keyboard  and  keypad commands and one of several operating procedures. Commands are provided to load the
       transmit VFO from the receive VFO with selected offset, load the receive VFO from the transmit  VFO  with
       selected  offset,  and  to  swap  transmit  and receive VFO contents. Upon happening on a DX station, for
       example, its frequency can be saved temporarily in the transmit  VFO  by  the  0>  keystrokes,  then  the
       receive  VFO  retuned  "up ten" to a quiet spot. The VFO contents are then swapped by the = keystroke. If
       the DX station requests calls on frequency, the < keystroke restores the receive VFO  from  the  transmit
       VFO.  The  split  can be toggled on and off with the > keystroke. Many variations in these procedures are
       possible.

FM DUPLEX OPERATION

       Ordinarily, FM repeater operations require that the station receiving on a frequency transmit at a  fixed
       offset  relative  to  that  frequency.   This  operation  is automatic with most VHF/UHF transceivers and
       keyboard commands are provided to read and write  the  transmit  duplex  offset.  Keyboard  commands  are
       available  to  specify  the duplex offset and sign, although some VHF/UHF transceivers apparently have no
       provision to control the sign of the offset. However, sometimes it is necessary to listen on the repeater
       input frequency, instead of the normal repeater output frequency. To support this feature, the  keypad  /
       keystroke alternates between the repeater input and output frequencies.

SCANNING OPERATION

       For  those  radios  the  support  scanning,  a  number of commands are provided to start the operation in
       various modes and capture the frequencies found. The general procdure is to start the scan and  wait  for
       scanning  to  stop, usually when the squelch is broken. At this time, the frequency that stopped the scan
       is displayed and can be written to a channel with the write command.

       The band command can be used to set the low and high band edges for software scanning. This can  be  used
       to  search  a specific band for channelized services, such as the broadcasting, aviation and marine radio
       bands. Once the band edges and frequency step have been selected, the keyboard UP and DOWN arrow keys can
       be used to step the frequency through the band. When stepped above the high band edge, the  frequency  is
       set  to  the  low  band edge. When stepped below the low band edge, the frequency is set to the high band
       edge.

OSCILLATOR CALIBRATION

       Some ICOM radios, including the 775 and 781, synthesize all  oscillator  signals  from  a  single  master
       oscillator. Once the master oscillator frequency is accurately calibrated, the various LO and BFO signals
       will  be  exactly  on  frequency.  Other  ICOM  radios  synthesize  the LO signal, but use an independent
       oscillator for the BFO signal. In these radios, the BFO frequency is  shifted  using  a  varactor  and  a
       network  of  diodes  and  resistors  to  generate  the necessary BFO frequencies. This method is not very
       accurate when remotely tuning the radio to a narrowband RTTY or packet transmission, for example.

       The program has provisions to compensate for the systematic errors in both the synthesized LO signal  and
       varactor-switched  BFO  signals.  This  is  done  by  adjusting  the  VFO frequency to compensate for the
       systematic LO error and individual BFO errors. The LO correction is provided by the comp  command,  while
       the BFO corrections are provided by the USB, LSB, CW, RTTY, AM and FM mode commands.

       The  calibration procedure for single-oscillator radios like the 775 and 781 is simple. Tune the radio to
       a WWV frequency, preferably the highest one heard and listen for the 500-Hz or 600-Hz modulation tones is
       present. In keypad mode, switch between USB and LSB modes and adjust the frequency using the UP and  DOWN
       arrow  keys  until  the  tones  sound the same. The difference between the indicated frequency and actual
       frequency can be read directly from the display or from the radio. Divide this difference by  the  actual
       frequency to calculate the VFO compensation in PPM.

       For  two-oscillator radios, the calibration procedure requires two frequencies, such as WWV on 10 MHz and
       20 MHz, for example. First, listen for the tones on the 10 MHz frequency and use the above procedure, but
       with AM mode substituted for one of the SSB modes.  Then, listen for the tones on the 20 MHz and  do  the
       same  thing. The LO error is computed as the difference between the 20 MHz and 10 MHz differences divided
       by the difference in the two WWV frequencies, in this case 10 MHz, is the  LO  frequency  error  and  the
       value of the VFO compensation in PPM.

       The calibration procedure continues for each BFO separately. Starting with a WWV signal at any frequency,
       use  the  above procedure to measure the difference between the indicated and actual frequencies for each
       of the four BFO modes USB, LSB, CW and RTTY. Enter the corrections the argument to the  mode  command  of
       the  same  name.  If  desired, the CW and/or RTTY BFO frequencies can be artificially tweaked to move the
       center frequency to other than the standard offset. These offsets will be automatically  programmed  each
       time the VFO frequency is changed.

CHANNEL PALETTES

       When using this program to operate more than one radio that covers the same frequency bands and modes, it
       may  be useful to use a standard set of files, which could be loaded into any of the radios directly from
       the file. The program includes the capability to save and restore a block of memory channels to and  from
       a  file  using  the save and restore commands. This allows channel blocks to be created by other programs
       and copied from one radio to another, for example.  The  information  saved  in  the  file  includes  the
       frequency,  mode  and  offset.  The  program  can  also  execute  a list of commands stored in a file and
       interpreted in batch mode.

       However, it often happens that individual radios need slightly different frequency  settings  to  receive
       the  same  frequency  transmission,  especially  when narrow filters are in use. A common example is when
       selecting from a standard set of frequencies provided by the minimuf program (described elsewhere) and  a
       Unix  cron  to  automatically  tune  the  radio(s)  throughout  the  day. The standard frequencies can be
       maintained in a batch file common to all radios and loaded by the restore batch command.

       However, the cron script can provide both the frequency -g and individual offset -o  values  specific  to
       each  radio  on  the command line. The program adds this offset, along with others provided by the offset
       and mode commands, if used, as the frequency  is  transmitted  to  the  radio.  Usually,  the  offset  is
       characteristic  of  the  radio,  as the result of BFO frequency error, for example, and can be calibrated
       manually in advance.

       Batch mode is designed for cases where a number of radios are to be  cloned  or  programmed  with  memory
       channel  data  produced by another program. In principle, a Unix shell script could search an archive for
       the current  VOA  transmission  schedules  and  transmitter  locations,  another  program  determine  the
       propagation  model  and  best  frequencies  for  the  receiver location and current time of day, and then
       program the radio(s) with the results.

INTERFACE DEBUGGING

       The program communicates with one or more radios using the CI-V broadcast  bus  and  serial  asynchronous
       protocol.  The  CT-17  level  converter  can  be  used  to interface the CI-V voltage levels (TTL) to EIA
       (RS-232) levels, or a homebrew unit can be made from the MAX232 IC plus  a  handful  of  capacitors.  The
       CT-17  supports  up to four radios, but there is no inherent protocol limitation to this number. The CI-V
       uses active-low drivers with resistor pullups, so multiple radios can be connected to the same wire.

       Messages are exchanged in the form of frames beginning with two preamble bytes (0xfe) and ending with one
       end of message byte (0xfd).  In order to handle the older radios, the control program  operates  at  1200
       bps;  however,  it  can  be  compiled to operate at higher speeds.  Each radio model is assigned a unique
       identifier byte, which can be changed  if  necessary.  The  control  program  sends  a  frame  with  that
       identifier  and  expects  a  reply,  either  containing  data  or a single ACK (0xfb) or NAK (0xfa). Most
       functions implemented by the control program require an exchange of several frames.

       It has been the experience that some radios can occasionally fail to respond to a command or respond with
       a mangled frame. Therefore, the control program includes a good deal of  error  recovery  code  and  uses
       timeouts  and retransmissions as necessary. Since the CI-V bus uses a broadcast architecture, every octet
       transmitted by the control program is read back for verification. If the readback fails or  no  reply  is
       received after three retransmissions, the operation fails and an error message is displayed.

       The  trace  command  can  be  used to watch the protocol interactions between the program and radios. The
       argument bus enables packet trace.  The trace operates from received  octets,  either  a  readback  of  a
       transmitted  frame  preceded by "T:" or a copy of a received frame preceded by "R:". Each transmission is
       repeated up to three times in case of error, after which the operation fails and is reported as an error.
       The argument packet enables bus error messages, which are normally suppressed  until  the  maximum  retry
       limit is reached.

HISTORY

       Written  by  David  L. Mills, W3HCF; this update 25 September 1996. This manual page was created from the
       original HTML documentation by Hamish Moffatt VK3SB <hamish@debian.org> for Debian (but may  be  used  by
       others).

BUGS

       This is a work in progress. Many idiosyncrasies of various ICOM radios remain to be discovered.

                                                25 September 1996                                        icom(1)