APS-4ID-POLAR / ipython-polar

4-ID-Polar ipython configuration for bluesky (and other)
1 stars 3 forks source link

Improve temp control #98

Closed gfabbris closed 3 years ago

gfabbris commented 3 years ago

A couple of improvements to the lakeshores. Closes #47.

Automatic heater control

The heater range can be defined for different temperatures using .heater_range, and this can be turned on/off with .auto_heater.

# Sets the heater to 100mA if 0<T<8, 333mA if 8<T<20, and 1A if 20<T<305
lakeshore_340lt.auto_ranges = {'10 mA': None, '33 mA': None,
                               '100 mA': (0, 8), '333 mA': (8, 20),  '1 A': (20, 305)}
# Turn on auto heater
%mov lakeshore_340lt.auto_heater True  #or lakeshore_340lt.auto_heater.put(True)

Ability to track the vaporizer temperature in the 6T magnet

If lakeshore_336.track_vaporizer.get() == True then changing the sample temperature (.loop2) will also change the vaporizer (.loop1). Note that Bluesky will not track the vaporizer temperature, and it will change the movement status to complete as soon as .loop2 is satisfied.

The temperature offsets are hardwired in _get_vaporizer_position:

    def _get_vaporizer_position(self, sample_position):
        # TODO: I would like to have this stored in some variable that we can
        # change.
        if sample_position < 6:
            vaporizer_position = sample_position - 1
        elif sample_position < 20:
            vaporizer_position = sample_position - 2
        elif sample_position < 100:
            vaporizer_position = sample_position - 5
        else:
            vaporizer_position = 100
        return vaporizer_position

This feature is ON by default. To turn it off:

%mov lakeshore_336.track_vaporizer False  # or lakeshore_336.track_vaporizer.put(False)
lgtm-com[bot] commented 3 years ago

This pull request introduces 1 alert when merging aaece48979070f11ccabfb1d1ae07135dc2eb6bd into a6dfd7e19034e8c6f7f5939a54efea75201cac6f - view on LGTM.com

new alerts: