Skip to content

MX Series DC Power Supply¤

Connect to an MX100QP, MX100TP, MX103QP or MX180TP DC power supply from Aim and Thurlby Thandar Instruments.

MXSeries (MultiMessageBased) ¤

MXSeries(equipment: Equipment)

              flowchart LR
              msl.equipment_resources.aim_tti.mx_series.MXSeries[MXSeries]
              msl.equipment_resources.multi_message_based.MultiMessageBased[MultiMessageBased]
              msl.equipment.interfaces.message_based.MessageBased[MessageBased]
              msl.equipment.schema.Interface[Interface]

                              msl.equipment_resources.multi_message_based.MultiMessageBased --> msl.equipment_resources.aim_tti.mx_series.MXSeries
                                msl.equipment.interfaces.message_based.MessageBased --> msl.equipment_resources.multi_message_based.MultiMessageBased
                                msl.equipment.schema.Interface --> msl.equipment.interfaces.message_based.MessageBased
                




              click msl.equipment_resources.aim_tti.mx_series.MXSeries href "" "msl.equipment_resources.aim_tti.mx_series.MXSeries"
              click msl.equipment_resources.multi_message_based.MultiMessageBased href "" "msl.equipment_resources.multi_message_based.MultiMessageBased"
              click msl.equipment.interfaces.message_based.MessageBased href "" "msl.equipment.interfaces.message_based.MessageBased"
              click msl.equipment.schema.Interface href "" "msl.equipment.schema.Interface"
            

Connect to an MX100QP, MX100TP, MX103QP or MX180TP DC power supply.

Regular-expression patterns that are used to select this Resource when connect() is called.

manufacturer=r"Aim\s*[-&_]?\s*(and)?\s*T(hurlby)?\s*T(handar)?\s*I(nstruments)?"
model=r"MX1[80][03][TQ]P"
flags=IGNORECASE

Parameters:

Name Type Description Default
equipment Equipment

An Equipment instance.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
def __init__(self, equipment: Equipment) -> None:
    r"""Connect to an MX100QP, MX100TP, MX103QP or MX180TP DC power supply from [Aim and Thurlby Thandar Instruments].

    [Aim and Thurlby Thandar Instruments]: https://www.aimtti.com/

    Regular-expression patterns that are used to select this Resource when
    [connect()][msl.equipment.schema.Equipment.connect] is called.
    ```python
    manufacturer=r"Aim\s*[-&_]?\s*(and)?\s*T(hurlby)?\s*T(handar)?\s*I(nstruments)?"
    model=r"MX1[80][03][TQ]P"
    flags=IGNORECASE
    ```

    Args:
        equipment: An [Equipment][] instance.
    """  # noqa: E501
    super().__init__(equipment)
    self.rstrip: bool = True

clear ¤

clear() -> None

Send the clear command, *CLS.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
132
133
134
def clear(self) -> None:
    """Send the clear command, `*CLS`."""
    _ = self.write("*CLS")

decrement_current ¤

decrement_current(channel: int) -> None

Decrement the current by step size for the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
136
137
138
139
140
141
142
143
144
145
146
def decrement_current(self, channel: int) -> None:
    """Decrement the current by step size for the output channel.

    !!! note "See also"
        [get_current_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.get_current_step_size],
        [set_current_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.set_current_step_size]

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
    """
    self._write_and_check(f"DECI{channel}")

decrement_voltage ¤

decrement_voltage(channel: int, *, verify: bool = True) -> None

Decrement the voltage by step size for the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
verify bool

Whether to verify that the output voltage has stabilized at the decremented voltage before returning to the calling program.

True
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
148
149
150
151
152
153
154
155
156
157
158
159
160
161
def decrement_voltage(self, channel: int, *, verify: bool = True) -> None:
    """Decrement the voltage by step size for the output channel.

    !!! note "See also"
        [get_voltage_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.get_voltage_step_size],
        [set_voltage_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.set_voltage_step_size]

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        verify: Whether to verify that the output voltage has stabilized at
            the decremented voltage before returning to the calling program.
    """
    v = "V" if verify else ""
    self._write_and_check(f"DECV{channel}{v}")

event_status_register ¤

event_status_register() -> int

Read and clear the standard event status register.

Returns:

Type Description
int

The event status register value.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
163
164
165
166
167
168
169
def event_status_register(self) -> int:
    """Read and clear the standard event status register.

    Returns:
        The event status register value.
    """
    return int(self.query("*ESR?"))

get_current ¤

get_current(channel: int) -> float

Get the output current of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The output current (in Amps).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
171
172
173
174
175
176
177
178
179
180
181
def get_current(self, channel: int) -> float:
    """Get the output current of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The output current (in Amps).
    """
    reply = self._query_and_check(f"I{channel}O?")
    return float(reply[:-1])  # the reply ends with 'A'

get_current_limit ¤

get_current_limit(channel: int) -> float

Get the current limit of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The current limit (in Amps).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
183
184
185
186
187
188
189
190
191
192
193
def get_current_limit(self, channel: int) -> float:
    """Get the current limit of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The current limit (in Amps).
    """
    reply = self._query_and_check(f"I{channel}?")
    return float(reply[2:])

get_current_step_size ¤

get_current_step_size(channel: int) -> float

Get the current step size of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The current step size (in Amps).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
195
196
197
198
199
200
201
202
203
204
205
def get_current_step_size(self, channel: int) -> float:
    """Get the current step size of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The current step size (in Amps).
    """
    reply = self._query_and_check(f"DELTAI{channel}?")
    return float(reply[7:])

get_over_current_protection ¤

get_over_current_protection(channel: int) -> float | None

Get the over-current protection trip point of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float | None

If the trip point is enabled then returns the trip point value in Amps. Otherwise, returns None if the over-current protection is disabled.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
207
208
209
210
211
212
213
214
215
216
217
218
219
220
def get_over_current_protection(self, channel: int) -> float | None:
    """Get the over-current protection trip point of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        If the trip point is enabled then returns the trip point value in Amps.
            Otherwise, returns `None` if the over-current protection is disabled.
    """
    reply = self._query_and_check(f"OCP{channel}?")
    if reply.endswith("OFF"):
        return None
    return float(reply[3:])

get_over_voltage_protection ¤

get_over_voltage_protection(channel: int) -> float | None

Get the over-voltage protection trip point of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float | None

If the trip point is enabled then returns the trip point value in Volts. Otherwise, returns None if the over-voltage protection is disabled.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
222
223
224
225
226
227
228
229
230
231
232
233
234
235
def get_over_voltage_protection(self, channel: int) -> float | None:
    """Get the over-voltage protection trip point of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        If the trip point is enabled then returns the trip point value in Volts.
            Otherwise, returns `None` if the over-voltage protection is disabled.
    """
    reply = self._query_and_check(f"OVP{channel}?")
    if reply.endswith("OFF"):
        return None
    return float(reply[3:])

get_voltage ¤

get_voltage(channel: int) -> float

Get the output voltage of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The output voltage (in Volts).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
237
238
239
240
241
242
243
244
245
246
247
def get_voltage(self, channel: int) -> float:
    """Get the output voltage of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The output voltage (in Volts).
    """
    reply = self._query_and_check(f"V{channel}O?")
    return float(reply[:-1])  # the reply ends with 'V'

get_voltage_range ¤

get_voltage_range(channel: int) -> int

Get the output voltage range index of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
int

The output voltage range index, e.g., 2 → 35V/3A. See the manual for more details.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
249
250
251
252
253
254
255
256
257
258
def get_voltage_range(self, channel: int) -> int:
    """Get the output voltage range index of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The output voltage range index, e.g., 2 → 35V/3A. See the manual for more details.
    """
    return int(self._query_and_check(f"VRANGE{channel}?"))

get_voltage_setpoint ¤

get_voltage_setpoint(channel: int) -> float

Get the set-point voltage of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The set-point voltage (in Volts).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
260
261
262
263
264
265
266
267
268
269
270
def get_voltage_setpoint(self, channel: int) -> float:
    """Get the set-point voltage of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The set-point voltage (in Volts).
    """
    reply = self._query_and_check(f"V{channel}?")
    return float(reply[2:])

get_voltage_step_size ¤

get_voltage_step_size(channel: int) -> float

Get the voltage step size of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
float

The voltage step size (in Volts).

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
272
273
274
275
276
277
278
279
280
281
282
def get_voltage_step_size(self, channel: int) -> float:
    """Get the voltage step size of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        The voltage step size (in Volts).
    """
    reply = self._query_and_check(f"DELTAV{channel}?")
    return float(reply[7:])

get_voltage_tracking_mode ¤

get_voltage_tracking_mode() -> int

Get the voltage tracking mode of the unit.

Returns:

Type Description
int

The voltage tracking mode. See the manual for more details.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
284
285
286
287
288
289
290
def get_voltage_tracking_mode(self) -> int:
    """Get the voltage tracking mode of the unit.

    Returns:
        The voltage tracking mode. See the manual for more details.
    """
    return int(self._query_and_check("CONFIG?"))

increment_current ¤

increment_current(channel: int) -> None

Increment the current by the step size for the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
292
293
294
295
296
297
298
299
300
301
302
def increment_current(self, channel: int) -> None:
    """Increment the current by the step size for the output channel.

    !!! note "See also"
        [get_current_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.get_current_step_size],
        [set_current_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.set_current_step_size]

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
    """
    self._write_and_check(f"INCI{channel}")

increment_voltage ¤

increment_voltage(channel: int, *, verify: bool = True) -> None

Increment the voltage by the step size for the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
verify bool

Whether to verify that the output voltage has stabilized at the incremented voltage before returning to the calling program.

True
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
304
305
306
307
308
309
310
311
312
313
314
315
316
317
def increment_voltage(self, channel: int, *, verify: bool = True) -> None:
    """Increment the voltage by the step size for the output channel.

    !!! note "See also"
        [get_voltage_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.get_voltage_step_size],
        [set_voltage_step_size][msl.equipment_resources.aim_tti.mx_series.MXSeries.set_voltage_step_size]

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        verify: Whether to verify that the output voltage has stabilized at
            the incremented voltage before returning to the calling program.
    """
    v = "V" if verify else ""
    self._write_and_check(f"INCV{channel}{v}")

is_output_on ¤

is_output_on(channel: int) -> bool

Check if the output channel is on or off.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required

Returns:

Type Description
bool

Whether the output channel is on or off.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
319
320
321
322
323
324
325
326
327
328
329
def is_output_on(self, channel: int) -> bool:
    """Check if the output channel is on or off.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).

    Returns:
        Whether the output channel is on or off.
    """
    reply = self._query_and_check(f"OP{channel}?")
    return reply == "1"

recall ¤

recall(channel: int, index: int) -> None

Recall the settings of the output channel from the store.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
index int

The store index number, can be 0-49.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
331
332
333
334
335
336
337
338
def recall(self, channel: int, index: int) -> None:
    """Recall the settings of the output channel from the store.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        index: The store index number, can be 0-49.
    """
    self._write_and_check(f"RCL{channel} {index}")

recall_all ¤

recall_all(index: int) -> None

Recall the settings for all output channels from the store.

Parameters:

Name Type Description Default
index int

The store index number, can be 0-49.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
340
341
342
343
344
345
346
def recall_all(self, index: int) -> None:
    """Recall the settings for all output channels from the store.

    Args:
        index: The store index number, can be 0-49.
    """
    self._write_and_check(f"*SAV {index}")

reset ¤

reset() -> None

Send the reset command, *RST.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
348
349
350
def reset(self) -> None:
    """Send the reset command, `*RST`."""
    _ = self.write("*RST")

reset_trip ¤

reset_trip() -> None

Attempt to clear all trip conditions.

Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
352
353
354
def reset_trip(self) -> None:
    """Attempt to clear all trip conditions."""
    _ = self.write("TRIPRST")

save ¤

save(channel: int, index: int) -> None

Save the present settings of the output channel to the store.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
index int

The store index number, can be 0-49.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
356
357
358
359
360
361
362
363
def save(self, channel: int, index: int) -> None:
    """Save the present settings of the output channel to the store.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        index: The store index number, can be 0-49.
    """
    self._write_and_check(f"SAV{channel} {index}")

save_all ¤

save_all(index: int) -> None

Save the settings of all output channels to the store.

Parameters:

Name Type Description Default
index int

The store index number, can be 0-49.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
365
366
367
368
369
370
371
def save_all(self, index: int) -> None:
    """Save the settings of all output channels to the store.

    Args:
        index: The store index number, can be 0-49.
    """
    self._write_and_check(f"*RCL {index}")

set_current_limit ¤

set_current_limit(channel: int, value: float) -> None

Set the current limit of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
value float

The current limit (in Amps).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
373
374
375
376
377
378
379
380
def set_current_limit(self, channel: int, value: float) -> None:
    """Set the current limit of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        value: The current limit (in Amps).
    """
    self._write_and_check(f"I{channel} {value}")

set_current_meter_averaging ¤

set_current_meter_averaging(
    channel: int, mode: Literal["ON", "OFF", "LOW", "MED", "HIGH"]
) -> None

Set the current meter measurement averaging of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
mode Literal['ON', 'OFF', 'LOW', 'MED', 'HIGH']

Averaging mode.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
382
383
384
385
386
387
388
389
def set_current_meter_averaging(self, channel: int, mode: Literal["ON", "OFF", "LOW", "MED", "HIGH"]) -> None:
    """Set the current meter measurement averaging of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        mode: Averaging mode.
    """
    self._write_and_check(f"DAMPING{channel} {mode}")

set_current_step_size ¤

set_current_step_size(channel: int, size: float) -> None

Set the current step size of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
size float

The current step size, in Amps.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
391
392
393
394
395
396
397
398
def set_current_step_size(self, channel: int, size: float) -> None:
    """Set the current step size of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        size: The current step size, in Amps.
    """
    self._write_and_check(f"DELTAI{channel} {size}")

set_multi_off_action ¤

set_multi_off_action(
    channel: int, action: Literal["QUICK", "NEVER", "DELAY"]
) -> None

Set the Multi-Off action of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
action Literal['QUICK', 'NEVER', 'DELAY']

The Multi-Off action.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
400
401
402
403
404
405
406
407
def set_multi_off_action(self, channel: int, action: Literal["QUICK", "NEVER", "DELAY"]) -> None:
    """Set the Multi-Off action of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        action: The Multi-Off action.
    """
    self._write_and_check(f"OFFACTION{channel} {action}")

set_multi_off_delay ¤

set_multi_off_delay(channel: int, delay: int) -> None

Set the Multi-Off delay, in milliseconds, of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
delay int

The turn-off delay (in milliseconds).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
409
410
411
412
413
414
415
416
def set_multi_off_delay(self, channel: int, delay: int) -> None:
    """Set the Multi-Off delay, in milliseconds, of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        delay: The turn-off delay (in milliseconds).
    """
    self._write_and_check(f"OFFDELAY{channel} {delay}")

set_multi_on_action ¤

set_multi_on_action(
    channel: int, action: Literal["QUICK", "NEVER", "DELAY"]
) -> None

Set the Multi-On action of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
action Literal['QUICK', 'NEVER', 'DELAY']

The Multi-On action.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
418
419
420
421
422
423
424
425
def set_multi_on_action(self, channel: int, action: Literal["QUICK", "NEVER", "DELAY"]) -> None:
    """Set the Multi-On action of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        action: The Multi-On action.
    """
    self._write_and_check(f"ONACTION{channel} {action}")

set_multi_on_delay ¤

set_multi_on_delay(channel: int, delay: int) -> None

Set the Multi-On delay, in milliseconds, of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
delay int

The turn-on delay (in milliseconds).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
427
428
429
430
431
432
433
434
def set_multi_on_delay(self, channel: int, delay: int) -> None:
    """Set the Multi-On delay, in milliseconds, of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        delay: The turn-on delay (in milliseconds).
    """
    self._write_and_check(f"ONDELAY{channel} {delay}")

set_over_current_protection ¤

set_over_current_protection(
    channel: int, *, enable: bool, value: float | None = None
) -> None

Set the over-current protection trip point of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
enable bool

Whether to enable or disable the over-current protection trip point.

required
value float | None

If the trip point is enabled then you must specify a value (in Amps).

None
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
def set_over_current_protection(self, channel: int, *, enable: bool, value: float | None = None) -> None:
    """Set the over-current protection trip point of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        enable: Whether to enable or disable the over-current protection trip point.
        value: If the trip point is enabled then you must specify a value (in Amps).
    """
    if enable:
        if value is None:
            msg = "Must specify the trip point value if the trip point is enabled"
            raise ValueError(msg)
        command = f"OCP{channel} ON;OCP{channel} {value}"
    else:
        command = f"OCP{channel} OFF"
    self._write_and_check(command)

set_over_voltage_protection ¤

set_over_voltage_protection(
    channel: int, *, enable: bool, value: float | None = None
) -> None

Set the over-voltage protection trip point of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
enable bool

Whether to enable or disable the over-voltage protection trip point.

required
value float | None

If the trip point is enabled then you must specify a value (in Volts).

None
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
def set_over_voltage_protection(self, channel: int, *, enable: bool, value: float | None = None) -> None:
    """Set the over-voltage protection trip point of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        enable: Whether to enable or disable the over-voltage protection trip point.
        value: If the trip point is enabled then you must specify a value (in Volts).
    """
    if enable:
        if value is None:
            msg = "Must specify the trip point value if the trip point is enabled"
            raise ValueError(msg)
        command = f"OVP{channel} ON;OVP{channel} {value}"
    else:
        command = f"OVP{channel} OFF"
    self._write_and_check(command)

set_voltage ¤

set_voltage(channel: int, value: float, *, verify: bool = True) -> None

Set the output voltage of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
value float

The value (in Volts).

required
verify bool

Whether to verify that the output voltage has stabilized at value before returning to the calling program.

True
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
470
471
472
473
474
475
476
477
478
479
480
def set_voltage(self, channel: int, value: float, *, verify: bool = True) -> None:
    """Set the output voltage of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        value: The value (in Volts).
        verify: Whether to verify that the output voltage has stabilized at `value`
            before returning to the calling program.
    """
    command = f"V{channel}V {value}" if verify else f"V{channel} {value}"
    self._write_and_check(command)

set_voltage_range ¤

set_voltage_range(channel: int, index: int) -> None

Set the output voltage range of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
index int

The output voltage range index. See the manual for more details. For example, 2 → 35V/3A.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
482
483
484
485
486
487
488
489
490
def set_voltage_range(self, channel: int, index: int) -> None:
    """Set the output voltage range of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        index: The output voltage range index. See the manual for more details.
            For example, 2 → 35V/3A.
    """
    self._write_and_check(f"VRANGE{channel} {index}")

set_voltage_step_size ¤

set_voltage_step_size(channel: int, size: float) -> None

Set the voltage step size of the output channel.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
size float

The voltage step size (in Volts).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
492
493
494
495
496
497
498
499
def set_voltage_step_size(self, channel: int, size: float) -> None:
    """Set the voltage step size of the output channel.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
        size: The voltage step size (in Volts).
    """
    self._write_and_check(f"DELTAV{channel} {size}")

set_voltage_tracking_mode ¤

set_voltage_tracking_mode(mode: int) -> None

Set the voltage tracking mode of the unit.

Parameters:

Name Type Description Default
mode int

The voltage tracking mode. See the manual for more details.

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
501
502
503
504
505
506
507
def set_voltage_tracking_mode(self, mode: int) -> None:
    """Set the voltage tracking mode of the unit.

    Args:
        mode: The voltage tracking mode. See the manual for more details.
    """
    self._write_and_check(f"CONFIG {mode}")

turn_off ¤

turn_off(channel: int) -> None

Turn the output channel off.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
509
510
511
512
513
514
515
def turn_off(self, channel: int) -> None:
    """Turn the output channel off.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
    """
    self._write_and_check(f"OP{channel} 0")

turn_off_multi ¤

turn_off_multi(options: dict[int, bool | int] | None = None) -> None

Turn multiple output channels off (the Multi-Off feature).

Parameters:

Name Type Description Default
options dict[int, bool | int] | None

Set the Multi-Off option for each output channel before setting Multi-Off. If not specified then uses the pre-programmed options. If a particular output channel is not included in options then uses the pre-programmed option for that channel. The keys are the output channel number and the value can be False (set the channel to NEVER, see the manual for more details), True (set the channel to QUICK, see the manual for more details) or a delay in milliseconds (as an int). Examples,

  • {1: False} → channel 1 does not turn off
  • {2: 100} → channel 2 has a 100-ms delay
  • {1: 100, 3: True} → channel 1 has a 100-ms delay and channel 3 turns off immediately
  • {1: 100, 2: 200, 3: 300} → channel 1 has a 100-ms delay, channel 2 has a 200-ms delay and channel 3 has a 300-ms delay
None
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
def turn_off_multi(self, options: dict[int, bool | int] | None = None) -> None:
    """Turn multiple output channels off (the Multi-Off feature).

    Args:
        options: Set the Multi-Off option for each output channel before setting Multi-Off.
            If not specified then uses the pre-programmed options. If a particular output
            channel is not included in `options` then uses the pre-programmed option for
            that channel. The keys are the output channel number and the value can be
            `False` (set the channel to `NEVER`, see the manual for more details),
            `True` (set the channel to `QUICK`, see the manual for more details) or a
            delay in milliseconds (as an [int][]). Examples,

            * `{1: False}` → channel 1 does not turn off
            * `{2: 100}` → channel 2 has a 100-ms delay
            * `{1: 100, 3: True}` → channel 1 has a 100-ms delay and channel 3 turns off immediately
            * `{1: 100, 2: 200, 3: 300}` → channel 1 has a 100-ms delay, channel 2 has a 200-ms delay
                and channel 3 has a 300-ms delay
    """
    if options:
        for channel, value in options.items():
            if isinstance(value, bool):
                self.set_multi_off_action(channel, "QUICK" if value else "NEVER")
            else:
                self.set_multi_off_action(channel, "DELAY")
                self.set_multi_off_delay(channel, value)
                time.sleep(0.1)  # otherwise the power supply may not set the delay properly
    self._write_and_check("OPALL 0")

turn_on ¤

turn_on(channel: int) -> None

Turn the output channel on.

Parameters:

Name Type Description Default
channel int

The output channel. The first output channel is 1 (not 0).

required
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
545
546
547
548
549
550
551
def turn_on(self, channel: int) -> None:
    """Turn the output channel on.

    Args:
        channel: The output channel. The first output channel is 1 (not 0).
    """
    self._write_and_check(f"OP{channel} 1")

turn_on_multi ¤

turn_on_multi(options: dict[int, bool | int] | None = None) -> None

Turn multiple output channels on (the Multi-On feature).

Parameters:

Name Type Description Default
options dict[int, bool | int] | None

Set the Multi-On option for each output channel before setting Multi-On. If not specified then uses the pre-programmed options. If a particular output channel is not included in options then uses the pre-programmed option for that channel. The keys are the output channel number and the value can be False (set the channel to NEVER, see the manual for more details), True (set the channel to QUICK, see the manual for more details) or a delay in milliseconds (as an int). Examples,

  • {1: False} → channel 1 does not turn on
  • {2: 100} → channel 2 has a 100-ms delay
  • {1: 100, 3: True} → channel 1 has a 100-ms delay and channel 3 turns on immediately
  • {1: 100, 2: 200, 3: 300} → channel 1 has a 100-ms delay, channel 2 has a 200-ms delay and channel 3 has a 300-ms delay
None
Source code in packages/resources/src/msl/equipment_resources/aim_tti/mx_series.py
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
def turn_on_multi(self, options: dict[int, bool | int] | None = None) -> None:
    """Turn multiple output channels on (the Multi-On feature).

    Args:
        options: Set the Multi-On option for each output channel before setting Multi-On.
            If not specified then uses the pre-programmed options. If a particular output
            channel is not included in `options` then uses the pre-programmed option for
            that channel. The keys are the output channel number and the value can be
            `False` (set the channel to `NEVER`, see the manual for more details),
            `True` (set the channel to `QUICK`, see the manual for more details) or a
            delay in milliseconds (as an [int][]). Examples,

            * `{1: False}` → channel 1 does not turn on
            * `{2: 100}` → channel 2 has a 100-ms delay
            * `{1: 100, 3: True}` → channel 1 has a 100-ms delay and channel 3 turns on immediately
            * `{1: 100, 2: 200, 3: 300}` → channel 1 has a 100-ms delay, channel 2 has a 200-ms delay
                and channel 3 has a 300-ms delay
    """
    if options:
        for channel, value in options.items():
            if isinstance(value, bool):
                self.set_multi_on_action(channel, "QUICK" if value else "NEVER")
            else:
                self.set_multi_on_action(channel, "DELAY")
                self.set_multi_on_delay(channel, value)
                time.sleep(0.1)  # otherwise the power supply may not set the delay properly
    self._write_and_check("OPALL 1")