1. Introduction

This document covers RDBE rack (the Haystack RDBE-G based on the Roach-1 board) support in FS 10.0.0. This support does not provide the complete command set and functionality usually provided by the FS for a rack. However, it is sufficient for normal FS for VGOS observations if the schedule procedure library is provided by a specially crafted .skd schedule file (see the broad band support item of the drudg changes relative to the main branch sub-section of the Changes from FS9 document for more details).

2. FS RDBE support features

The RDBE features included are:

2.1. Up to four RDBEs are supported

Each RDBE is typically for one frequency band with a different polarization for that band on each of the two IFs.

Table 1. Typical RDBE VGOS configuration
RDBE Band Frequency IF0 pol IF1 pol Control File Control Program Multi-cast program

a

A

3 GHz

H

V

rdbca.ctl

rdbca

rdtca

b

B

5 GHz

H

V

rdbcb.ctl

rdbcb

rdtcb

c

C

6 GHz

H

V

rdbcc.ctl

rdbcc

rdtcc

d

D

10 GHz

H

V

rdbcd.ctl

rdbcd

rdtcd

2.2. Parallel command execution

Parallel execution of commands for multiple RDBEs is supported (currently the only other device that has this is Mark 6 recorders). Currently the only parallel RDBE commands are rdbe and rdbe_atten.

  • Multiple instances of devices are identified by the letters, a,b, etc. In this case, a through d.

  • Commands that support parallel operation always start with device mnemonic, in this case rdbe. If a letter for the device, e.g., a, is appended to the command, e.g., rdbea, the command operates only on that device. If no letter is appended, the command operates on all active instances of the device.

  • By default all available devices are active. Which devices are active can be changed with an active_devices command, in this case active_rdbes.

  • Which devices are available are defined by which have control files that have non-comment entries. In others words, a device is not available if its control file is commented out.

  • If any errors occur during communication with the devices, they are all reported. All but the last are reported by the command itself. The last is returned and reported as the final status of the command.

  • Logged responses from the devices may occur in what appears to be random order. Although communication with devices is initiated in sequential order, variations in response time can cause the responses to arrive in a different order. The responses are logged in the order received.

2.3. FS RDBE channel labels

FS RDBE channels labels are constructed as nnbi, where:

  • nn is the channel number 00-15

  • b is the band, a, b, etc.

  • i is the IF channel: 0 or 1

For example, 15d0 is band D, IF 0, channel 15.

Caution
Channel 0 is not usually a useful channel, being split between the top and bottom of the band.

2.4. FS RDBE phase-cal tone labels

FS RDBE phase-cal tone labels are constructed as ibnnnn, where:

  • i is the IF channel: 0 or 1

  • b is the band, a, b, etc.

  • nnnn is tone number in the IF 0001-0511 (MHz)

For example, 0d0030 is band D, IF 0, tone 30.

2.5. Polarization designations.

Polarizations used in .rxg files and the LO command are lcp or rcp (in onoff output l or r) regardless of the actual polarization pair in use. The pairs are: H and V; L and R; and X and Y. This will be fixed eventually (see #42). For now, since there are are at most two polarizations per receiver, the designations follow the alphabetical (in English) rule. This is, what matters is the alphabetical order of the first letter of the names in a polarization pair. The correction interpretation is determined by context. Thus:

  • l (or lcp) can represent horizontal linear polarization (“h”), LCP (“l”), or “x”

  • r (or rcp) can represent vertical linear polarization (“v”) , RCP (“r”), or “y”

2.6. Low level RDBE communication command

The rdbe command can be used to communicate directly with an individual RDBE or all active RDBEs in parallel, as described in the Parallel command execution sub-section above. A semi-colon is appended to any string being sent if it not the last character already. A newline (0xa) is also appended.

For full details on the RDBE command set, see the RDBE documentation:

Additionally, you can query a single RDBE, say a, with:

rdbea=help?

for some rudimentary information.

2.7. Attenuation control and monitoring

The rdbe_atten command can be used to command or monitor an individual RDBE or all active RDBEs in parallel, as described the Parallel command execution sub-section above. For setting the attenuation, the default target RMS value is set in the rdbe.ctl control file. That file also specifies the threshold levels for out-of-range RMS values.

Important
Before connecting an input signal to an IF port, the attenuation for that IF should be set to its maximum value, 31.5, to avoid possible damage from overloading the sampler.

2.8. Logging of RDBE multicast data

  • Multicast messages are generated at a 1 Hz rate by each RDBE. However, since multicast uses the UDP protocol, fewer messages may be received due to network congestion and other issues.

  • Logged multicast messages from different RDBEs typically occur interleaved in the log. In order to be able to identify the originating RDBE, each record is preceded by #rdtcX#, where X is the band designation of the RDBE, i.e., a, b, etc.

    Note
    There is a separate program to receive multicast messages from each RDBE. They are named: rdtca, rdtcb, etc. These names give rise to the #rdtcX# labels.
  • For all multicast messages received, the dot time, dot2pps and dot2gps offsets, and the sigma values are logged.

  • The logging is controlled by the existing tpicd command function for background logging. Normally for observations logging is toggled on and off by the data_valid command, so there is only logged during recording.

  • Regardless of what channels are being recorded, Tsys is logged for all channels. Only continuous-cal is supported. The raw counts are labeled by channel in tpcont records. The values are in order of cal “on”, then cal “off”. If a Tcal value is defined for the channel, the calculated Tsys value is logged in tsys records. Overall IF Tsys values are also logged using two different calculations:

    • The AV value is the reciprocal of the average of the reciprocals of the per channel Tsys values (intended to reduce the impact of RFI).

    • The SM value is calculated from the sum of the “on” and “off” over all the channels.

    The raw count and Tsys data are labeled by channel, see the FS RDBE channel labels sub-section above for the details. The IF Tsys values are labeled as AV and SM channels for each IF.

  • Phase-cal phase and amplitude are labelled by IF and the MHz of the tone in the IF, see the FS RDBE phase-cal tone labels sub-section above for the details. Only expected tones are logged. The scaling of the amplitude is set by the rdbe.ctl control file. See the rdbe.ctl sub-section below for the details.

2.9. RDBE monitor display

2.9.1. monit6

A monitor display for the RDBEs is provided as the monit6 program. The display shows information for up to four active RDBEs: A, B, C, and D updating at a 1 Hz rate. Some values are displayed in inverse to warn of possible problems. The information displayed is:

  • DOT time

  • VDIF epoch

    The value is shown in inverse video if:

    • The values for all RDBEs are different and this value does not agree with the nominal value.

    • The value does not agree with the majority.

      In case of a tie, the later lettered RDBEs have their values in inverse video.

  • dot2gps, μs

  • dot2pps, ns

    This value is displayed in inverse video if it exceeds the absolute value threshold specified in monit6.ctl.

  • RMS, alternating between IF0 and IF1

    The value is shown in inverse video if it outside the range defined in rdbe.ctl.

  • Tsys for both IF0 and IF1 displayed for the channel or whole IF value specified in monit6.ctl.

  • Phase-cal phase and amplitude for the tones selected in monti6.ctl, alternating between IF0 and IF1.

    The amplitude scaling is determined by the setting in rdbe.ctl. See the rdbe.ctl sub-section below for the details.

2.9.2. monit6.ctl

The monit6 program has an eponymously named control file monit6.ctl. This control file is used to adjust the configuration of the monit6 RDBE display. Unlike other FS control files, it is read each time the monit6 program is started. The file has five lines. The first four control the Tsys and phase-cal display of the four RDBEs, in order. There are four fields on each of these lines:

  1. The channel (0-15) or whole IF calculation (avg or sum) to display for the IF0 Teys.

  2. The channel (0-15) or whole IF calculation (avg or sum) to display for the IF0 Teys

  3. The tone number (0-511) of the phase-cal tone to display for IF0.

  4. The tone number (0-511) of the phase-cal tone to display for IF1.

The fifth, and final, line specifies the absolute value threshold, in nanoseconds, for displaying the dot2pps in inverse video. Typically, this is set to 100.

2.9.3. monit6 .Xresources

Resources for the monit6 window were added to the example .Xresources for oper and prog. You may wish to copy them to your ~/.Xresources file.

2.9.4. Starting monit6 automatically

If you are using the display server, you can have monit6 start and stop automatically with the display client by adding a line for it to /usr2/control/stpgm.ctl. You can copy and modify the example line for monit2 (replace all 2s with 6s) in /usr2/fs/st.default/control/stpgm.ctl, placing the result in your /usr2/control/stpgm.ctl file.

2.9.5. Starting monit6 from the display client

If you are using the display server, you can have monit6 start by using the command client=monit6 by adding a line for it to /usr2/control/clpgm.ctl. You can copy the example line for monit6 in /usr2/fs/st.default/control/clpgm.ctl, placing it in your /usr2/control/clpgm.ctl file.

2.9.6. Running monit6 with a hot key

If you run the FS on the X display console, monit6 can be setup to be run from a hot key, say Control+Shift+6, or a menu selection. To set this up, you will need to modify your ~/.fvwm2rc file to include monit6. You might do this by copying and modifying existing lines for another monit<n> program (replace all <n>s with 6s). You should end up with two lines similar to (for Control+Shift+6):

+ "Monit: RDBE C-S-6" Exec exec xterm -name monit6 -e monit6

and

Key 6 A CS Exec exec xterm -name monit6 -e monit6

These should be added after the corresponding monit5 lines (see /usr2/st.default/oper/.fvwm2rc for an example). You should use a different number than 6 in place of the first 6 on each line, if you already have used 6 for a hot key. Alternatively, you can comment out or change your existing lines that use 6.

You will need to logout and back in again or restart fvwm2 for any changes to take effect.

2.10. Pointing and SEFD measurements

The fivept and onoff command support continuous radiometer using individual RDBE detectors. A set of individual detectors, or all, can be specified for onoff.

Note
See help=fivept and help=onoff for more information on using these commands.

2.11. Time and VDIF epoch setting

The fmset program supports display and setting of RDBE time, one RDBE at a time.

Important
Whenever a RDBE is rebooted, its time must be verified with fmset and if not correct, set properly.
  • The RDBE to be worked with can be selected by entering its letter, a, b, etc.

  • There are new single character commands: > and <, to increment and decrement the VDIF epoch.

    Note
    The VDIF epoch increments 0000 UT every January 1 and July 1. The RDBE does not automatically advance the VDIF epoch it is using. Ths allows data to be recorded continuously across these epochs with the same VDIF epoch.
    Important
    All RDBEs must be using the same epoch even if it is an old epoch. Otherwise the Mark 6 recorder will not accept the data.
    Important
    If an RDBE is rebooted after 0000 UT January 1 or July 1 during a schedule that spans one of those epochs, its VDIF will disagree with the other RDBEs preventing data from being recorded. In this case, the VDIF for the affected RDBE should be decremented to agree with the others.
    Warning
    It is recommended that at the first opportunity when not running a schedule after 0000 UT January 1 and July 1, that fmset be used to increment the VDIF epochs of all the RDBEs. With this approach, if one is rebooted for some reason its VDIF epoch will agree with the others.
  • The s command can be used to sync an RDBE:

    Important

    If an RDBE needs to be synced, its data transmission must be turned before syncing:

    rdbe=dbe_data_send=off;

    Failure to do so may result in corrupt data. Afterwards it must be turned on again with:

    rdbe=dbe_data_send=on;

2.12. rdbemsg utility

This utility was developed by Jason Soohoo (Haystack) as vgos-msg-gui.py. It is an RDBE oriented version of the FS msg utility for sending operations emails. Originally it ran on a different back-end computer. It was ported to the FS computer, expanded to provide pointing data, and generalized to support more systems.

The Update Values button can be used to automatically populate the values, based on the configuration of the /usr2/control/rdbemsg.ctl control file. If the schedule log file is open, the session name, and latest SEFD and pointing information will be included. Fields with light backgrounds can edited or entered manually. Fields with dark backgrounds are populated only by the Update Values button.

The Message Type drop-down box can used to select Ready, Start, or Stop. The Send Msg button can be used to mail the message.

2.12.1. rdbemsg.ctl

The rdbemsg program uses the /usr2/control/rdbemsg.ctl control files. An example is available in /usr2/st.default/control/rdbemsg.ctl. Lines that start with * are treated as comments. The supported non-comment lines are:

Caution
There should be no extra white space on any non-comment line.
  • R-A:node — where node is the IP, node name, or alias of RDBE-A

  • R-B:node — where node is the IP, node name, or alias of RDBE-B

  • R-C:node — where node is the IP, node name, or alias of RDBE-C

  • R-D:node — where node is the IP, node name, or alias of RDBE-D

  • station:xx — where xx is the two letter station code, lowercase.

  • name:station — where station is the station name, also found in location.ctl.

  • to:emails — where emails are a list of comma separated email destinations for messages.

  • mci:node where node is the IP, node name, or alias of the MCI node

    This should be commented out, if there is no MCI node.

  • mci-code:xx — where xx is the two letter code used by the MCI node if different from what is specified by station. This is needed by GGAO.

    This should be commented out, if there is no MCI node or the MCI node uses the station code. This exists to support early MCI nodes that did not have the same code as the station.

  • mci-parameter:n — where n is the position of the data parameter in MCI responses.

    This should be commented out if the MCI places data in the standard position, 2. This exists to support early MCI nodes that placed the data in the 3 position (GGAO). This is should not be used for MCI version 0, which is handled by mci-version parameter described below).

  • mci-version:version where version is 0 for stations with the earliest version of the MCI node (Westford). This was not available until commit fb57201c.

    A value of 0 invokes different handling. Specifically, the MCI logs are in the directory ~oper/node_software/V0, the file names do not contain the station code, the fields in the file are space delimited, and the fields are in a different order. Other values are ignored.

    Other stations should keep this line commented out.

2.12.2. Running rdbemsg with a hot key

If you run the FS on the X display console, rdbemsg can be setup to be run from a hot key, say Control+Shift+M, or a menu selection. To set this up, you will need to modify your ~/.fvwm2rc file to include rdbemsg. You might do this by modifying existing entries for the msg program to use rdbemsg instead. If you don’t have existing lines for msg, you can add two lines, to use Control+Shift+M, similar to:

+ "rdbemsg C-S-M" Exec exec rdbemsg

and

Key m A CS Exec exec rdbemsg

These should be added after the corresponding logex lines (see /usr2/st.default/oper/.fvwm2rc for an example). You should use a different letter than M (in the first line above) and the first m (in the second line above) if you already have used M/m as a hot key. Alternatively, you can comment out or change your existing lines that use M/m. The letters on the two lines should match except for the case.

You will need to logout and back in again or restart fvwm2 for any changes to take effect.

2.13. new_ifdbb script

This script is intended as a tool to allow stations, and schedule writers, a way to update schedules for changes in the ifdbb procedure used by VGOS stations, particularly those with RDBE back-ends. For RDBE stations, the attenuation used in the signal chain, which is set by the schedule, depends on the observing mode being used and the conditions at the station. The provides a way to incorporate needed changes into schedules. If the script is run without other command line arguments, it will output “help” information.

2.14. Communication control programs

  • Each RDBE has its own control program, rdbca, rdbcb, etc.

  • Each control program uses a similarly named control file, rdbca.ctl, rdbcb.ctl, etc.

    These files have one non-comment line, containing three fields:

    1. The IP or hostname of the device

      Note
      For systems where IP addresses and/or hostnames are sensitive information, it is recommend to use an alias, such rdbea that has its IP address set in /etc/hosts.
    2. The control port for the device.

      Usually 5000.

    3. The time-out for the device in centiseconds.

      A value of 100 (one second) is usually suitable for local devices.

2.15. rdbe.ctl

The values from the file are recorded in the rdbe log file header line each time a log is opened.

Note
The values can change each time the FS restarted and the log is re-opened.

This file sets the following values on individual lines in this order:

  1. Target RMS value for setting attenuators, typically 20.

  2. Minimum threshold for acceptable RMS values, typically 12.

  3. Maximum threshold for acceptable RMS values, typically 28.

  4. The scaling to be used for phase-cal amplitudes:

    • raw — detected level (scaled by 1e-7)

    • normalized —  normalized for the signal level in its channel (and scaled by 1.25e-5)

    • correlator —  normalized corrected by 32 MHz band pass shape

    The normalized scaling is the most useful for routine use.

2.16. Example station procedure library.

An example station library with some useful procedures is provided in st.default/proc/rdbestation.prc