Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Config/cameraserver.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ ARCHON_IP=192.168.1.2
ARCHON_PORT=4242
DEFAULT_FIRMWARE=/home/user/Software/acf/kpf-getimage-slot5.acf
EXPOSE_PARAM=Expose # Archon parameter which triggers exposure
#HEATER_TARGET_MIN=-150 # heater target lower limit (C)
#HEATER_TARGET_MAX=50 # heater target upper limit (C)
IMDIR=/tmp # base directory to save images
BASENAME=image # base image filename
NBPORT=3030 # server non-blocking port
Expand Down
48 changes: 48 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,54 @@ If you encounter any problems or have questions about this project, please open
$ ../bin/run_unit_tests
```

## Heater & Sensor Control

For Archon **Heater** and **HeaterX** modules, the server exposes commands to
control the closed-loop heaters and read/control the on-board temperature
sensors. These require firmware to be loaded and a sufficiently recent Archon
backplane.

### `heater`

Control heater `A` or `B` on the given module: enable state and target, PID
parameters, ramp, current limit, and input sensor.

```
heater <module> <A|B> [ <on|off> [target] | <target> | PID [<p> <i> <d>]
| RAMP [<on|off> [rate]] | ILIM [val] | INPUT [A|B|C] ]
```

| Form | Effect |
|----------------------------------------|---------------------------------------------------------|
| `heater <module> <A\|B>` | get enable state and target |
| `heater <module> <A\|B> <on\|off> [target]` | set enable state, optionally the target |
| `heater <module> <A\|B> <target>` | set the target (range depends on backplane version) |
| `heater <module> <A\|B> PID [<p> <i> <d>]` | get/set the P, I, D parameters (`0`–`10000` each) |
| `heater <module> <A\|B> RAMP [<on\|off> [rate]]` | get/set ramp enable and ramprate (`1`–`32767`) |
| `heater <module> <A\|B> ILIM [val]` | get/set the current limit (`0`–`10000`) |
| `heater <module> <A\|B> INPUT [A\|B\|C]` | get/set the input sensor (`C` requires HeaterX) |

The target range defaults to backplane-version-dependent limits and can be
overridden in the `.cfg` file with `HEATER_TARGET_MIN` / `HEATER_TARGET_MAX`
(degrees C).

### `sensor`

Set or get a temperature sensor's RTD excitation current and digital averaging.

```
sensor <module> <A|B|C> [ <current> | AVG [ <N> ] ]
```

| Form | Effect |
|-----------------------------------|--------------------------------------------------------------|
| `sensor <module> <A\|B\|C>` | get the excitation current (nano-amps) |
| `sensor <module> <A\|B\|C> <current>` | set the excitation current, `0`–`1600000` nA |
| `sensor <module> <A\|B\|C> AVG` | get the digital averaging count |
| `sensor <module> <A\|B\|C> AVG <N>`| set the digital averaging count `N` ∈ {1,2,4,8,…,256} |

Sensor `C` is available only on **HeaterX** modules.

---

David Hale
Expand Down
Loading
Loading