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:
Image with the beam stop in:
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:
Right click start.opi in the Navigator
Open with -> OPI Display (Workbench)
Click “Start BPM Display” (the screen opens in the right pane)
Drag the screen’s tab from the right pane to the center pane
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. |
|
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.
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:
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.
Warning
Before using the shaker after a long shutdown, power cycle the shaker controller (see image below) and restart the epics IOC.
CRLs¶
To move the CRLs actuators:
usr32idc@32idcws $ 32idPLC start start | status | stop | medm
CRL control is available on the main TXM control screen:
The CRL stack consist of:
Item |
Type |
R (μm) |
2R0 (mm) |
Direction |
Number |
Order |
---|---|---|---|---|---|---|
1 |
cylinder parabolic (1D) |
1000 |
2 |
H |
2 |
|
2 |
cylinder parabolic (1D) |
1000 |
2 |
V |
2 |
|
3 |
cylinder parabolic (2D) |
200 |
2 |
|||
4 |
cylinder parabolic (2D) |
200 |
7 |
The medm user interface is also accessible from the main beamline screen under: <IOC> <32idbPLC> <Digital> <PLC relays with DESC>
DCM¶
First start the main beamline control system with:
usr32idc@txmone $ ./start_caQtDM_32id
then select the Kohzu DCM:
Also check that the undulator is set at:
DCM temperature¶
You can check the DCM temperature with:
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:
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.
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>
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>
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.
Mirror¶
Newport XPS¶
Newport motors/Controller 3 only:
http://s32xps4.xray.aps.anl.gov/cgi/post.cgi
Restarting the drivers:
turn ON driver
reset the IOC
go on set mode
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:
Low Z Siemens star with phase ring in:
PID control¶
The BPM PID control parametes are accessible from:
Horizontal:
Vertical:
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 |
GS3-U3-51S5M-C |
This is the main TXM detector, to start, stop, medm use:
usr32idc@txmone $ 32idcPG1 start | status | stop | medm
to change lens:
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
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¶
Rotary stage¶
To home the rotary stage hit HomeR or HomeF in the motor control screen:
then set the user position at 129.69°
We motor controller is an Aerotech Ensemble:
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:
For more information check
Siemens Star¶
using the 40 nm Zone Plate:
using the 50 nm Zone Plate:
using the 16 nm Zone Plate:
zone plate selfy using the 16 nm Zone Plate:
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.
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
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