In the current configuration, the ancillary systems are controlled by plain C programs that run in the VME processor.
Power up the VME. It goes to phenix14:/usr1/mvdonl/boot/boottest to load various programs described here.
To gain access to the VME, simply telnet to iocondev8, and you should get a -> prompt. If you do not get in, chances are that someone else is already logged in, and this is a one-user system. You can detect this state by pinging the vme crate. If there is a response, the processor likely has not crashed.
If no one is logged in and/or there is no response to a ping, the processor needs to be rebooted. Push the red reset button on the mvme162. This cannot be done remotely, so John Haggerty will connect the console to a terminal server in the area, and a ^x will cause a reboot. (more detail needed here).
If all else fails, cycling the power on the crate will also cause a reset. This can be done using the LV controls via the rack monitor system. (more details)
Once you have logged in, type 'help'. This will show the currently installed programs.
To log out, type 'logout'.
If you type 'help', you'll get this menu:
+-------------------------------------------------------------+ | | | MVD CONTROLS | | | +-------------------------------------------------------------+ | | | programs available: | | | | iotest read and manipulate the pins on the I/O units | | lv control the Low Voltage distribution boards | | relay control the relay board (fans, pumps and LV) | | temps read the MCM and mother board temperatures | | cadc custom ADC readout | | | | [spy control the spy line multiplexer] | | [cooling read the cooling system temps, flows etc] | | | +-------------------------------------------------------------+
Each of the LV distribution boards serves a group of 6 MCM's (groups 1-7), or delivers power to the motherboard (group 8). There are total of 16 distribution boards. In Year-1, only 8 are used for 2 motherboards. Typing lv gives you the menu:
 
         +---------------------------------------------------+ 
         |  mb n            choose mother board  n (n=1-4)   |
         |  on/off m        turn group m on/off (m=1-8)      |
         |  view mvd/crate  changes display of 'show'        |
         |  show            show current status              |
         |  exit, quit,x,q  exit the program                 | 
         +---------------------------------------------------+ 
 MVD LV>>
command 'show' shows the front of the LV distribution boards:
             slot in the distribution board vme crate     
          1   2   3   4   5  6  7  8   9 10 11 12  13 14 15 16  
         --------------- ------------ ------------ ------------ 
     TOP 1:0 3:0 5:0 7:0  0  0  0  0   0  0  0  0   0  0  0  0
  BOTTOM 2:0 4:0 6:0 8:1  0  0  0  0   0  0  0  0   0  0  0  0
         -------------^- ----------^- ----------^- ----------^-  cards present
         <-----MB1----->  <---MB2-->   <---MB3-->   <---MB4-->  
Each of the 
boards has an upper and lower output, and they can be switched individually. 
You choose a motherboard with 'mb 1', and then say 'on 8' or 'off 8'. In the 
example above, group 8 of mb1 is on, everything else is off. When you enter or 
quit the program, hardware settings are preserved.
Here is the actual code: lv.c.
   
Custom ADC readout
The custom ADC board reads selected signals
from the external sensors. The channel assignments are made on the sensor 
distribution board, where they can be changed if necessary. The currena 
assignments are here. To run the program, type 'cadc'.
There are only 2 commands, 'read' and 'quit'. Read produces the following, 
(with nothing physically connected):
pin A B | C D -----------------+----------- 16 4099 4099 | 4099 4099 15 4099 4099 | 4099 4099 14 4099 4099 | 4099 4099 13 4099 4099 | 4099 4099 12 4099 4099 | 4099 4099 11 4099 4099 | 4099 4099 10 4099 4099 | 4099 4099 9 4099 4099 | 4099 4099 8 4099 4099 | 4099 4099 7 4099 4099 | 4099 4099 6 4099 4099 | 4099 4099 5 4099 4099 | 4099 4099 4 4099 4099 | 4099 4099 3 4099 4099 | 4099 4099 2 4099 4099 | 4099 4099 1 4099 4099 | 4099 4099 -----------------+----------- Custom ADC >>In the current state, it reads a voltage on each of the 4 connectors, 16 channels each. The program outputs have to be labeled and grouped to reflect the current channel assignments. Also, the binary number has to be translated to meaningful units. For binary to voltage look here. For temperature, look here. For humidity look here.
Here is the code: cadc.c.
   
MCM and MB temperatures and voltages
This program reads the multiplexing ADC's on the motherboard. These encode 
temperatures on the MCM's, one temperature on each power-comm board, and a few 
on the motherboard. In addition, some MB voltages are monitored. The mapping 
of these readings onto the ADC channels 
is here, and an 
inverse map here.
 
To enter the program, type 'temps', and a small menu appears: 
         +-----------------------------------------------------+
         |  temps       read the temperatures on the MCM's,    |
         |              power-comm boards and motherboards     |
         |  volts       read the MB voltages                   |
         |  quit, exit  exit the program                       |
         +-----------------------------------------------------+
 MVD temps>>
Command 'temps' gives the following display (with no inputs connected):
 +--------------+------------------------------------+----------------+
 |              |                MCM                 |                |
 |   group where|   6     5     4     3     2     1  |  pads          |
     -----------+------------------------------------+---------   
       6     OT |   -     -     -     -     -     -  |  6  4095   
       1     IT |  4095  4095  4095   -     -     -  |  5  4095   
  WEST 5     OM |   -     -     -     -     -     -  |  4  4095   
 (MB1) 2     IM |  4095  4095  4095   -     -     -  |  3  4095   
       4     OB |  4095  4095  4095  4095  4095   -  |  2  4095   
       3     IB |  4095  4095  4095  4095  4095   -  |  1  4095   
 
       3     IB |  4095  4095  4095  4095   -     -  |  1  4095   
       4     OB |  4095  4095  4095  4095   -     -  |  2  4095   
       2     IM |  4095  4095  4095   -     -     -  |  3  4095   
  EAST 5     OM |   -     -     -     -     -     -  |  4  4095   
 (MB2) 1     IT |  4095  4095   -     -     -     -  |  5  4095   
       6     OT |   -     -     -     -     -     -  |  6  4095   
    ------------+------------------------------------+---------   
     group where|   6     5     4     3     2     1  |  pads      
 MVD temps>>
 
You can see which of the MCM's are installed.
On the left, we could add a column with the power-comm temperatures, and maybe
on the bottom list the MB voltages, rather than make a separate command for
them.
temps.c
   
Controlling the relay board
         +----------------------------------------------+ 
         |  COMMANDS:                        status:    |
         |  -----------------------------------------   |
         |  east / west                      East       |
         |  reset                                       |
         |  chiller1 on/auto                  on        |
         |  chiller2 on/auto                  on        |
         |  fan on/off/auto                   ??        |
         |  pump on/off/auto                  ??        |
         |  lv on/off/auto                    ??        |
         |  show, status, help, menu: show status       |
         |  exit, quit, x, q:   exit the program        | 
         +----------------------------------------------+ 
 MVD RELAY>>
relay.c
   
 rs232 to the chillers
The chillers can communicate via rs232 ribbons to our crate. 
 The software for this has not yet been written. There is a 
program //phenix14/mvdonl/vme/chil.c which is taken from the Greenspring quickstart pamphlet 
but it does not work. 
Working software for this module is at an Epics site, a tip I got from Lars 
Ewell:  look for 'Octal 
Serial Driver'.
Somewhere there is the code we want. 
Here is the program: chillers.c.
   
 Spy line switching
Not yet written. The code will be derived from the test program that used to 
do exactly this at Los Alamos, just as we did with the MCM temperature 
readout. 
Here is the program: spy.c.