Check lists

Here are check lists for how to operate various TXM components. You can find the starting document at here.

Beam Stop

Image will all optics out:

project

Image with the beam stop in:

project

BPM

The IOC can be started with this command:

usr32idc@s32bcda% 32idcBPM start

the ioc is located at /net/s32dserv/xorApps/epics/synApps_6_0/ioc/32idcBPM/iocBoot/iocbpm/

CSS and the vendor screens have been installed locally in the usr32idc home directory and can be launched with this command on 32idcws:

usr32idc@txmone% 32idcBPM css

If the xbpm_SIEPA3P.opi screen isn’t open when CSS launches, to do the following:

  1. Right click start.opi in the Navigator

  2. Open with -> OPI Display (Workbench)

  3. Click “Start BPM Display” (the screen opens in the right pane)

  4. Drag the screen’s tab from the right pane to the center pane

project

On the above window select the KX/KY values (2000/3800) and press enter. Also set the internal bias lebel to 12V and Set the BIAS state to On.

Computers

The 3 main computers used by the TXM are:

  • txmone

  • txmtwo: data collection (TomoScan/AreaDetector)

  • txmthree: data analysis (tomoPy, DragonFly)

Condenser

Here are the capillary condenser specifications:

Maker

Name

Source demag

Entrance aperture (ID: mm)

Exit aperture (ID: mm)

Manuals

Sigray

APS_special

1000

0.75

0.45.

full specs_01, order_01

X-radia

Zeiss

Condenser alignment

When switching mono-capillary condenser, relying on previous motor position is not very reliable, because the manual swapping step tend to cause loss of motor position.

Warning

Please never home the pitch and yaw because it could break the condensers. Tip: tweak the pitch of the condenser until it looks horizontal, checking with the microscope on the encoded tower. Then, make large motions with the Yaw (0.1° steps).

The condenser adaptor holding the Zeiss capillary is also bearing a beam shaping condenser. This should be the high energy beam shaping condenser (double check with Michael Wojcik if need it).

Dimensions on the sketch below are useful for pre-aligning the condenser in X and Y.

project project

Condenser shaker

To start the shaker IOC use the short cut on the desktop of the windows 10 machine called “postulate”

xfreerdp /u:usr32idc /d:XRAY /size:1900x1000 /v:postulate /sec:nla

Open the shaker control from:

project project

To operate the condenser shaker (piezo jena)

  • Waveform A (red curve) controls the vertical sweeping of the condenser

  • Waveform B (blue curve) controls the horizontal sweeping of the condenser

  • Select the Lissajou trajectory function

“Amp Multiplier” controls the amplitude of the scanning “Frequency” is the frequency of the red curve. It should be selected according to the exposure time.

For instance:

  • if exposure = 0.5s, frequency should not be 1 or 2 Hz but 0.5 or 1.5 Hz.

  • if exposure =1 s, frequency can be 1, 2, 3, 4 Hz, etc.

Favor low frequency to avoid detuning the pitch and yaw of the condenser too quickly.

project

Warning

Before using the shaker after a long shutdown, power cycle the shaker controller (see image below) and restart the epics IOC.

project

CRLs

To move the CRLs actuators:

usr32idc@32idcws $ 32idPLC start start | status | stop | medm

CRL control is available on the main TXM control screen:

project

The CRL stack consist of:

Item

Type

R (μm)

2R0 (mm)

Direction

Number

Order

1

cylinder parabolic (1D)

1000

2

H

2

crl_order_02

2

cylinder parabolic (1D)

1000

2

V

2

crl_order_02

3

cylinder parabolic (2D)

200

2

crl_order_00

4

cylinder parabolic (2D)

200

7

crl_order_01

The medm user interface is also accessible from the main beamline screen under: <IOC> <32idbPLC> <Digital> <PLC relays with DESC>

project project project

DCM

First start the main beamline control system with:

usr32idc@txmone $ ./start_caQtDM_32id
project

then select the Kohzu DCM:

project

Also check that the undulator is set at:

project

DCM temperature

You can check the DCM temperature with:

project project

Detector magnification

Switching magnification of the detector:

  • #2 = middle scintillator = 2X (motor pos = 45)

  • #3 = outboard scintillator = 5x (motor pos = 0)

  • #1 = inboard scintillator = 5X with tube lens and ESRF thin film scintillator (motor pos = 80)  Important to use this one, the use of a tube lens (thanks Alan!) improve image quality.

Flag

Connect to xxx.xx.102.81 and look at the video feed “1”. To move the flag up:

project project

Furnace Control

usr32idc@32idcws $ 32idcTEMP start
usr32idc@32idcws $ 32idcTEMP medm

Run this command on txmone:

usr32idc@txmone $ medm -x -attach -macro "P=32idcTEMP:,T=tc1,CT=heater,CV=out" PTC10.adl &

To read the sample thermocouple open the medm window under <32idcSOFT><TempCtrl><ADAM-4018+>

  • Tc 0 = sample thermocouple

  • Tc 1 = ambient T

Note: both the PID and output both need to be On for heating to occur.

project

Using Mark’s python script to build a calibration table:

usr32idc@txmone $ canda activate furnace
usr32idc@txmone $ python ~/wolfman/furnace_calibration.py

The “main” runs the run_calibration function and save a lookup table in a tsv file format.

  • The main function launches a calibration of the furnace using the readback value of a thermocouple located at the sample location.

The user needs to define a temperature vector for which the lookup table value will be recorded:

temperatures = np.arange(30, 1050, step=20)
  • Can read the lookup table and estimate a set value for a wanted temperature. For instance, if one want to know the set value of the furnace to obtain 500oC at the sample location:

To estimate T°:

usr32idc@txmone $ iptyhon
In [1]: from furnace_calibration import calibrate_temperature
In [2]: calibrate_temperature("furnace_calibration_2020-11-28.tsv", 500)

He flow control

The medm user interface is accessible from the main beamline screen under: <IOC> <32idcTXM> <new> <Analox He Sensor>

project project project

He valve control

usr32idc@32idcws $ 32idPLC start start | status | stop | medm

The medm user interface is accessible from the main beamline screen under: <IOC> <32idcPLC> <DAC> <PLC DAC>

project project project
  • ao1 VAL = 0 -> valve closed

  • ao1 VAL = 1 -> valve fully opened

  • ao1 VAL = 2.35 -> constant amount of He in the condenser enclosure (might varies if system more or less leaky

IOC Boot

To reboot the TXM IOCs:

usertxm@txmtwo $ iocConsole ioc32idcTXM
ioc32idcTXM> reboot

Magnification

Optic magnification calculation to generate tables use this xlsx spreadsheet.

project

Mirror

project project

Newport XPS

Newport motors/Controller 3 only:

http://s32xps4.xray.aps.anl.gov/cgi/post.cgi

Restarting the drivers:

  1. turn ON driver

  2. reset the IOC

  3. go on set mode

  4. type enter in the dial box

Phase Ring

To move the phase ring X you need to start the Micronix Piezo stages controller IOC:

usr32idc@32idbws $ 32idcSOFT start | status | stop | medm

medm start the standard EPICS ioc medm.

To move the phase ring Y:

usr32idc@32idcws $ 32idcTXM start | status | stop | medm

To get the UI to control the Micronix stages.

then

Low Z Siemens star with phase ring out:

project

Low Z Siemens star with phase ring in:

project

PID control

The BPM PID control parametes are accessible from:

Horizontal:

project

Vertical:

project

Point Gray camera

Camera

pixels (HxV)

pixels size (μm)

bit

fps

Manual

Part number

Purchase orider

Grasshopper3 5.0 MP Mono USB3 Vision (Sony Pregius IMX250)

2448 x 2048

3.45

10

75

camera_00001

GS3-U3-51S5M-C

camera_order_00001

This is the main TXM detector, to start, stop, medm use:

usr32idc@txmone $ 32idcPG1 start | status | stop | medm

to change lens:

project

Python scripts

Control script location is:

usr32idc@txmone $ cd ~/TXM_control/pg/

In_Out_positions:

usr32idc@txmone $ cd ~/TXM_control/pg/
usr32idc@txmone $ ls In_Out_positions.py

To run this script use the “All_in” and “All_out” in the main TXM user interface

project

It allows to automate the motion of several TXM stages when the operator wants to switch to a large view (direct beam -> “All_out”) and TXM view (diffuser, CRLs, pinhole, beamstop, ZP and condenser in -> “All_in”). The python script contains the IN and OUT positions of the stages and also readjusts other parameters like the readback values for the closed loop between the DCM and the BPM, camera settings (exposure time, flipping the image).

Challenge: checking the BPM readback value with and without the CRLs IN and write down the values in “In_Out_positions.py”, in the functions “All_In()” and “ All_Out” . These readback values change with the energy unfortunately, it is especially true when using the Silicon BPM rather than the Diamond BPM.

XANES and energy changes:

usr32idc@txmone $ /local/usr32idc/backup/TXM/run/energy_scan.py
usr32idc@txmone $ /local/usr32idc/backup/TXM/run/move_energy.py

Queensgate

project project project

Rotary stage

To home the rotary stage hit HomeR or HomeF in the motor control screen:

project

then set the user position at 129.69°

We motor controller is an Aerotech Ensemble:

project

Scintillator

Scintillator focus IOC:

usr32idc@sec32lt04 $ 32idcUC8  start | status | stop | medm

Scintillator pitch/yaw for 5x, 10x lenses:

usr32idc@32idbws $ 32idcSOFT   start | status | stop | medm

Shutter

The TXM has a fast shutter accessible from the 32idcTXM IOC under new/uniblitz:

project project

For more information check

Siemens Star

using the 40 nm Zone Plate:

project

using the 50 nm Zone Plate:

project

using the 16 nm Zone Plate:

project

zone plate selfy using the 16 nm Zone Plate:

project

XY stages

To move the air bearing XY stages:

usr32idc@32idcws $ 32idPLC start start | status | stop | medm

The medm user interface is accessible from the main beamline screen under: <IOC> <32idbPLC> <Digital> < Granite air valves (caQtDM only)>

X and Y can’t be actuated with “Stage High-Pressure” ON.

project project project

Web Cam

webcams are accessible from:

32-ID-B: xxx.xx.102.71
32-ID-B: xxx.xx.102.89
32-ID-C: xxx.xx.102.90
32-ID-C: xxx.xx.102.88

High resolution setup

date: 06/30/21 note: condenser was at -44.2

project

XML

To check that the areadetector attributes and layout XML contain a set of matching names run:

$ bash
usertxm@txmtwo$ grep -oP 'name=\"\K[^\"]+' TomoScanDetectorAttributes.xml | while read -r line ; do echo -n "$line " ; grep -q "$line" TomoScanLayout.xml && echo true || echo false ; done | grep false
usertxm@txmtwo$ grep -oP 'ndattribute=\"\K[^\"]+' TomoScanLayout.xml | while read -r line; do echo -n "$line "; grep -q "$line" TomoScanDetectorAttributes.xml && echo true || echo false ; done |grep false