-
Notifications
You must be signed in to change notification settings - Fork 1
spectrometer_user_guide
P. Valvin, 02-02-2022
The SpectrometerGUI
module is the user interface for the driving of an optical spectrometer with a 2D image sensor dedicated to optical spectroscopy.
The module uses spectrumlogic
module functions.
The sensor can be a 2D sensor, a 1D sensor or a 0D sensor (PM, APD...)
Spectrometer interfacing features :
- 1 or 2 input ports
- 1 or 2 output ports
- Input and output slit width
- Grating selection (turret)
Camera interfacing features :
- Setpoint temperature
- Shutter mode
- Gain
- Trigger mode
- Read mode (
IMAGE, IMAGE_ADVANCED, FULL VERTICAL BINNING, MULTIPLE_TRACKS
) - Acquisition mode (
LIVE_SCAN, SINGLE_SCAN, MULTI_SCAN
) - Exposure time
- Readout frequency
The GUI is organized in 4 tabs that follow the typical path of spectroscopy sessions.
- Settings
- Image
- Alignement
- Spectrum
In this first tab, you’ll give the general settings of both spectrometer and camera. This settings should not change very often during your session.
The left-hand column corresponds to the general settings of the spectrometer :
- grating (in case of a multiple-grating turret)
- Input port (in case of a two input ports spectrometer)
- Output Port (in case of a two output ports spectrometer)
- Wavelength correction (manual shift of the central wavelength) Concerning the calibration, the dispersion is supposed to be ok. We can only correct here an observed shift of the central wavelength. If you need to correct the dispersion, you should use Andor software.
In the right-hand column, you can fill the general settings for the camera :
- Gain
- Trigger mode
- Cooler set temperature
- Shutter mode
For both spectrometer and camera, the software asks the hardware the possibilities.
In the bottom bar, you can change the central wavelength of the spectrometer. It is necessary to click on GoTo to send the order to the instrument. The actual wavelength is indicated right to the GoTo button. The actual temperature is indicated on the bottom-right corner indicator.
Now that you chose your general settings, you need to see what you have on your sensor. Whether to make an image, or a spectrum, or some other kind of measure (multispectrum, series…). So, let’s make an image with the second tab. On the right hand column, you’ll set the following parameters :
-
Read mode :
IMAGE
: for a full frame acquisitionIMAGE-ADVANCED
for a cropped image acquisition. -
Acquisition mode :
SINGLE_SCAN
will perform a single acquisition.LIVE_SCAN
will repeat single scans until you press on Stop acquisition. -
Exposure time : Exposure time in second.
-
Readout speed : Readout speed of the ADC converter.
You can upload a background if you want to substract a background to your acquisition. We suggest you make a background directory with your typical acquisition parameters.
You can save the image. It will be saved in the qudi data directory. The subdirectory will be xxx and the filename is constructed with the datetime parameters. The image is plotted on the left part of the panel and there are some tracks buttons on the bottom. Each track button will allow you to define an horizontal subimage with a certain height. These tracks will be used in the spectrum tab for MULTIPLE_TRACKS read mode. A single track can be usefull if you have a small focused spot on the entrance slit of the spectrometer, in order to avoid the acquisition of not used pixels. This will increase the signal to noise ratio. Multiple tracks can apply if you use a Rochon polarizer, or a fuber bundle that will lead to multiple spectra on the 2D sensor.
The parameters for IMAGE_ADVANCED are the following :
- the crop zone : it is defined directly on the image by drawing the corresponding rectangle.
- the binning : to enter in the two corresponding boxes.
After selecting a region of interest on the previous tab (image), you may try to optimize your signal using the Alignment tab. In this tab, the plot will represent the integrated number of counts of the selected area.
Finally, the « Spectrum » tab will gather the parameters for the final spectrum acquisition.
On the right-hand column, you will set the spectrum acquisition parameter :
- read mode :
FVB
(Full Vertical Binning)MULTIPLE_TRACKS
: better to raise the S/N ratio - Acquisition mode :
SINGLE_SCAN
: for a single acquisitionLIVE_SCAN
: after clicking on Start Acquisition, you will repeat SINGLE_SCAN acquisition until you press on Stop Acquisition. Usefull during alignment sessions.MULTI_SCAN
: Very usefull for the acquisition of some series of SINGLE_SCAN.
The MULTI_SCAN
settings have to be detailled in the box bellow.
- if you want to perform multiple acquisition of the same spectral region, to increase the S/N ratio, you have to set a scan step to 0.
For simplicity of this document, we just report her the list of the function names. For more details, please dig into the code, where each function is documented.
'acquired_data',
'acquired_wavelength',
'acquisition_mode',
'acquisition_params',
'active_tracks',
'blockSignals',
'camera',
'camera_constraints',
'camera_gain',
'camera_temperature',
'center_wavelength',
'childEvent',
'children',
'connectNotify',
'connectors',
'cooler_status',
'customEvent',
'deleteLater',
'destroyed',
'disconnect',
'disconnectNotify',
'dumpObjectInfo',
'dumpObjectTree',
'dynamicPropertyNames',
'event',
'eventFilter',
'exposure_time',
'findChild',
'findChildren',
'getConfiguration',
'getModuleThread',
'getStatusVariables',
'getTaskRunner',
'get_acquired_data',
'get_connector',
'get_input_slit_width',
'get_output_slit_width',
'grating',
'image_advanced_area',
'image_advanced_binning',
'inherits',
'input_port',
'input_slit_width',
'installEventFilter',
'isSignalConnected',
'isWidgetType',
'isWindowType',
'is_module_threaded',
'killTimer',
'log',
'metaObject',
'module_state',
'moveToThread',
'number_of_scan',
'objectName',
'objectNameChanged',
'on_activate',
'on_deactivate',
'output_port',
'output_slit_width',
'parent',
'property',
'pyqtConfigure',
'read_mode',
'readout_speed',
'receivers',
'removeEventFilter',
'save_acquired_data',
'savelogic',
'scan_delay',
'scan_wavelength_step',
'sender',
'senderSignalIndex',
'setObjectName',
'setParent',
'setProperty',
'setStatusVariables',
'set_input_slit_width',
'set_output_slit_width',
'shutter_state',
'sigUpdateData',
'sigUpdateSettings',
'signalsBlocked',
'spectro_constraints',
'spectrometer',
'startTimer',
'start_acquisition',
'staticMetaObject',
'stop_acquisition',
'take_acquisition',
'taskLock',
'temperature_setpoint',
'thread',
'threadlock',
'timerEvent',
'tr',
'trigger_mode',
'wavelength_calibration',
'wavelength_spectrum'
The reduced list of functions you may use for scripting should be :
'acquired_data',
'acquired_wavelength',
'acquisition_mode',
'acquisition_params',
'active_tracks',
'camera_constraints',
'camera_gain',
'camera_temperature',
'center_wavelength',
'cooler_status',
'exposure_time',
'getConfiguration',
'get_acquired_data',
'get_input_slit_width',
'get_output_slit_width',
'grating',
'image_advanced_area',
'image_advanced_binning',
'inherits',
'input_port',
'input_slit_width',
'module_state',
'number_of_scan',
'output_port',
'output_slit_width',
'read_mode',
'readout_speed',
'save_acquired_data',
'savelogic',
'scan_delay',
'scan_wavelength_step',
'set_input_slit_width',
'set_output_slit_width',
'shutter_state',
'start_acquisition',
'stop_acquisition',
'take_acquisition',
'temperature_setpoint',
'trigger_mode',
'wavelength_calibration',
'wavelength_spectrum'
hardware:
shamrock:
module.Class: 'spectrometer.shamrock.Shamrock'
newton:
module.Class: 'camera.andor_camera.Main'
dll_location: 'C:\Program Files\Andor SDK\atmcd64d.dll'
has_external_shutter: True
shutter_switching_time: 100e-3
logic :
spectrumlogic:
module.Class: 'spectrum_logic.SpectrumLogic'
reverse_data_with_side_output: True
connect:
spectrometer: 'shamrock'
camera: 'newton'
savelogic: 'savelogic'
gui :
spectrometer:
module.Class: 'spectrometer.spectrometer.Main'
connect:
spectrumlogic: 'spectrumlogic'
savelogic: 'savelogic'