Skip to content
Jason Detwiler edited this page Jan 24, 2021 · 21 revisions

Welcome to the CAGE wiki!

Biasing Steps

  1. verify HV interlock is off (see the README in CAGE/controls)
  2. verify initial ramp speed is 2 V/s
  3. gui running, oscilloscope running

HV bias values:

  • @ 2 V/sec ramp -- 5, 10, 50, 100, 200
  • @ 5 V/sec ramp -- 400, 700, 1100, 1600, 2200, 2600, 2700

Change ramp on the cage pi with $ dragonfly set cage_hv_rup [2, 5] -b mjcenpa

Slow Controls GUI

  • open a terminal on mjcenp
  • cd /software/cage/gui
  • python cage_control.py

For more info, see the README in CAGE/controls

Running the motors

Motor safety checklist

Important things to remember to avoid accidents:

  1. Top-hat must always be lifted and lift interlock switch engaged before any motor movements.
  2. Linear stage should always be centered before using the rotary motor.
  3. Source motor should always be zeroed ("parked" on its limit switch) before rotating using the rotary motor. This is because the thumbscrews and detector posts holding the ring aren’t flush with the top of the ring and you can potentially run the collimator into them.

Motor movement software and status check

  • Open a terminal on mjcenpa
  • cd software/cage/motors
  • Stop any current run
  • Power on the Newmark motor controller
  • Open the GalilTools program (in dock, or find with spotlight)

To find IP addresses, location of history, other relevant info:

  • python3 motor_movement.py --config

Check the status and recent history, make sure it makes sense relative to where you think you are:

  • python3 motor_movement.py --status

You may need to widen the terminal to see all the columns. It seems that when the source motor is zeroed, it writes 2 lines of output (maybe at the start and end of the move? will be investigated.)

Moving the motors

Motions are made via commands like:

python3 motor_movement.py --[command] [motor_name] [args]

The three main commands are:

  • zero: send motor to its limit switch
  • center: you need to have zeroed before you run this commmand! Just drives a motor forward by a pre-set amount
    • source: rotate to normal incidence
    • linear: center the collimator over the point contact
    • rotary: no effect
  • move: move a motor by specified amount
    • source: argument is in degrees, where negative values move away from the limit switch
    • linear: argument is in mm, where positive values move away from the limit switch
    • rotary: argument is in degrees, where negative values move away from the limit switch

General instructions for making a move

  • Plan your movement: determine what commands need to be run for each motor. Refer to the CAGE drawings, especially topview.pdf
  • Stop any current run
  • Turn off the HV interlock if it is on (see CAGE/controls)
  • Power on the Newmark motor controller, refresh GalilTools, and query the motor control status
  • Bring the slow controls window to the front and make sure the pulses are fast on the scope
  • Raise the tophat and engage lift interlock. If you are biased, please use the following more careful procedure:
    • Position the scope so that you can see the signal
    • Pull up the slow controls gui so you can watch the pressure and baseline (and the temperatures)
    • Disengage the latch that keeps the tophat pressed into the coldplate
    • Barely lift the tophat off the coldplate using the crank and hold it there
    • The pressure and baseline will spike. Wait until they start to level off. Watch the signals on the scope. If they die, rest the tophat back on the coldplate and figure out what happened. Otherwise:
    • Continue lifting the tophat to its final position and move the safety stand into place so that the interlock button is engaged
  • Double check that the lift interlock is being recognized by re-running "python3 motor_movement.py --status" and reading the last line
  • Zero all motors (skip this step at your own risk. There must be zero probability that you will end up at a position that runs the motor into the diving board or the posts)
    • When you zero the source motor, verify that the source limit switch is tapped in GalilTools line 170
    • For the rotary and linear motors, run the "status" command after zeroing to verify that the corresponding limit switch is ON
  • If you plan to move the rotary motor, center the linear motor
  • Generally, movements are then made in the order: rotary, linear, source
  • Watch the slow controls and signals on the scope
  • When you are done moving the motors, turn off the Newmark motor controller
  • Lower the tophat
  • Make sure the pulses are still fast on the scope
  • Re-engage the HV interlock if you will be letting it run for a while unsupervised
  • Take an offline run to verify that things look okay (threshold okay, waveforms are sharp, etc)
  • Start data taking

Example movement session for going to the "long alpha" position (10 mm radius):

  • python3 motor_movement.py --status
  • python3 motor_movement.py --zero source
    • verify limit switch is tapped (galiltools line 170).
  • python3 motor_movement.py --zero linear
  • python3 motor_movement.py --status
    • verify linear and rotary limit switches are ON.
  • python3 motor_movement.py --center linear
  • if rotary limit switch was OFF when last checked:
    • python3 motor_movement.py --zero rotary
    • python3 motor_movement.py --status
  • python3 motor_movement.py --move linear 10
  • python3 motor_movement.py --center source