# devices.lakeshore:Lakeshore340


Interface for Lakeshore 340 temperature controller.


Usage

``` python
devices.lakeshore:Lakeshore340(
    interface,
    **kwargs,
)
```


Extends the base Lakeshore3xx class with specific features for the Lakeshore 340 model.


## Methods

| Name | Description |
|----|----|
| [__init__()](#__init__) | Initialize Lakeshore 340 temperature controller. |
| [getHeaterRange()](#getHeaterRange) | Get the heater range setting. |
| [setHeaterRange()](#setHeaterRange) | Set the heater range. |
| [writeCurveToIndex()](#writeCurveToIndex) | Write a calibration curve to the device. |
| [writeZonePID()](#writeZonePID) | Write Zone PID settings to the controller. |

------------------------------------------------------------------------


### \_\_init\_\_()


Initialize Lakeshore 340 temperature controller.


Usage

``` python
__init__(
    interface,
    **kwargs,
)
```


#### Parameters


`interface: str`  
VISA resource string for the instrument.

`**kwargs: dict`  
Additional keyword arguments.

- baud_rate: Serial communication baud rate (default: 19200)


------------------------------------------------------------------------


### getHeaterRange()


Get the heater range setting.


Usage

``` python
getHeaterRange()
```


#### Returns


`int`  
Current heater range setting (0-5).


------------------------------------------------------------------------


### setHeaterRange()


Set the heater range.


Usage

``` python
setHeaterRange(heaterRange)
```


#### Parameters


`heaterRange: int`  
Heater range to set (0-5). 0: Off, 1: Low, 2: Medium, 3: High, etc.


------------------------------------------------------------------------


### writeCurveToIndex()


Write a calibration curve to the device.


Usage

``` python
writeCurveToIndex(
    index,
    name,
    sn,
    rList,
    tList,
)
```


#### Parameters


`index: int`  
Index to store the curve at (21-60).

`name: str`  
Name of the curve.

`sn: str`  
Serial number of the sensor.

`rList: List[float]`  
List of resistance values.

`tList: List[float]`  
List of temperature values.


#### Notes

Only supports Cernox sensors currently. Maximum length of tList and rList is 199.

------------------------------------------------------------------------


### writeZonePID()


Write Zone PID settings to the controller.


Usage

``` python
writeZonePID(
    templist,
    plist,
    ilist,
    dlist,
    rangelist,
    loop=1,
)
```


#### Parameters


`templist: List[float]`  
Upper temperature limits for each zone (must be sorted from low to high).

`plist: List[float]`  
P (proportional) parameters for each temperature zone.

`ilist: List[float]`  
I (integral) parameters for each temperature zone.

`dlist: List[float]`  
D (derivative) parameters for each temperature zone.

`rangelist: List[int]`  
Heater range settings for each temperature zone (0-5).

`loop: int = ``1`  
Control loop number, by default 1.


#### Notes

All lists can have at most 10 entries. Enables automatic adjustment of PID parameters based on temperature.
