diff --git a/base/uk.ac.stfc.isis.ibex.opis/resources/automatic_needle_valve.opi b/base/uk.ac.stfc.isis.ibex.opis/resources/automatic_needle_valve.opi
new file mode 100644
index 0000000000..8c12222e43
--- /dev/null
+++ b/base/uk.ac.stfc.isis.ibex.opis/resources/automatic_needle_valve.opi
@@ -0,0 +1,1869 @@
+
+
+
+
+ false
+ -1
+ -1
+
+ false
+
+
+
+ 5.1.0
+
+
+
+ 6
+ 600
+
+ true
+ $(P)$(EURO):A0$(SENSOR):
+
+
+
+
+ true
+ true
+ true
+ true
+ true
+ Display
+ 800
+ -6c70a930:185e92885a4:-7fd3
+ -1
+ -1
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Header1_NEW
+
+
+
+
+ 37
+ 0
+ Title_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Automatic Needle Valve Controller
+
+ false
+ 1
+ true
+ Label
+ 463
+ true
+ -6c70a930:185e92885a4:-7eac
+ 12
+ 6
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Header2_NEW
+
+
+
+
+ 37
+ 0
+ Name_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ $(NAME)
+
+ false
+ 1
+ true
+ Label
+ 367
+ true
+ -6c70a930:185e92885a4:-7ea4
+ 12
+ 42
+
+
+
+
+
+
+
+
+
+ 13
+ 1
+ true
+ false
+
+ ISIS_GroupBox_NEW
+
+
+
+
+ 139
+ false
+
+ true
+
+ Mode
+
+
+ true
+ true
+ false
+
+
+ true
+
+ false
+ true
+ Grouping Container
+ 373
+ -6c70a930:185e92885a4:-7d2e
+ 6
+ 84
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 0
+ Flow_setpoint_mode_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Flow Setpoint mode:
+
+ false
+ 1
+ true
+ Label
+ 121
+ true
+ -6c70a930:185e92885a4:-7b6e
+ 12
+ 9
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Flow_SP_mode_RBV
+ 0
+ true
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 90
+ false
+ -3fe86e35:1864f8abbd8:-7921
+ 144
+ 9
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 0
+ Manager_mode_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Manager mode enabled?
+
+ false
+ 1
+ true
+ Label
+ 145
+ true
+ -6c70a930:185e92885a4:-7c69
+ 12
+ 74
+
+
+
+ false
+ false
+
+
+
+ -1
+ true
+
+
+
+ 0
+ 1
+ 3
+
+
+
+ 0
+ true
+ true
+
+ Default
+
+ false
+
+
+
+ 24
+ Manager_mode_LED
+
+
+
+ OFF
+
+
+
+ ON
+ $(P)CS:MANAGER
+
+
+
+ true
+ true
+ true
+
+
+ false
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ LED
+ 24
+ -6c70a930:185e92885a4:-7c68
+ 300
+ 72
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 0
+ Manager_mode_Label_1
+
+
+ true
+ true
+ false
+
+
+ false
+ (required for writing)
+
+ false
+ 1
+ true
+ Label
+ 127
+ true
+ -3fe86e35:1864f8abbd8:-7913
+ 156
+ 74
+
+
+
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 28
+ true
+ true
+ mode_button
+ $(PV_ROOT)FLOW_SP_MODE_SELECT:SP
+
+
+
+ true
+ true
+ false
+
+
+
+
+
+ $(pv_name)
+$(pv_value)
+ true
+ Choice Button
+ 133
+ 4ec5f80:1872cc883d3:-795b
+ 144
+ 36
+
+
+
+
+
+
+
+
+
+
+ 13
+ 1
+ true
+ false
+
+ ISIS_GroupBox_NEW
+
+
+
+
+ 229
+ false
+
+ true
+
+ Flow
+
+
+ true
+ true
+ false
+
+
+ true
+
+ false
+ true
+ Grouping Container
+ 379
+ -6c70a930:185e92885a4:-7d7e
+ 6
+ 228
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Flow_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Flow:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ 699302c9:18631f8a2ab:-7fd1
+ 18
+ 18
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Flow_RBV
+ 0
+ true
+ $(PV_ROOT)FLOW
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 85
+ false
+ 699302c9:18631f8a2ab:-7fd0
+ 132
+ 18
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Manual_flow_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Manual flow:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ -6c70a930:185e92885a4:-7c5a
+ 18
+ 48
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Manual_flow_RBV
+ 0
+ true
+ $(PV_ROOT)MANUAL_FLOW
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 85
+ false
+ -6c70a930:185e92885a4:-7c59
+ 132
+ 48
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 3
+ 1
+
+ false
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ false
+ 1.7976931348623157E308
+ -1.7976931348623157E308
+ false
+ Manual_flow_SP
+ 0
+ true
+ $(PV_ROOT)MANUAL_FLOW:SP
+
+ 0.0
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+ true
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+ true
+ true
+ false
+
+
+ 0
+ true
+
+ 0.0
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Text Input
+ 90
+ -6c70a930:185e92885a4:-7c58
+ 227
+ 48
+
+
+
+ false
+ 255
+ true
+ 20
+ 0
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+ true
+ 0.0
+
+ Default
+
+ false
+
+
+
+ 1
+ true
+ 0
+ 1
+ Setpoint_Polyline
+
+
+
+
+
+
+ 0.0
+
+
+ true
+ true
+ true
+
+
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Polyline
+ 325
+ ebaac8:185e95ee376:-7e26
+ 6
+ 114
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Flow_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Flow SP low limit:
+
+ false
+ 1
+ true
+ Label
+ 108
+ true
+ -6c70a930:185e92885a4:-7c27
+ 6
+ 78
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Flow_lowlim_RBV
+ 0
+ true
+ $(PV_ROOT)FLOW_SP_LOWLIM
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 85
+ false
+ -6c70a930:185e92885a4:-7c26
+ 132
+ 78
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 3
+ 1
+
+ false
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ false
+ 1.7976931348623157E308
+ -1.7976931348623157E308
+ false
+ Flow_lowlim_SP
+ 0
+ true
+ $(PV_ROOT)FLOW_SP_LOWLIM:SP
+
+ 0.0
+
+
+
+ true
+
+ $(P)CS:MANAGER
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+
+
+
+ true
+ true
+ false
+
+
+ 0
+ true
+
+ 0.0
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Text Input
+ 90
+ -6c70a930:185e92885a4:-7c25
+ 227
+ 78
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Valve_direction_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Valve direction:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ -6c70a930:185e92885a4:-7b56
+ 18
+ 162
+
+
+
+ false
+ false
+
+
+
+ -1
+ true
+
+
+
+ 0
+ 1
+ 3
+
+
+
+ 0
+ true
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+ Valve_dir_LED
+
+
+
+ OFF
+
+
+
+ ON
+ $(PV_ROOT)VALVE_DIR
+
+
+
+ true
+ true
+ true
+
+
+ false
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ LED
+ 20
+ -6c70a930:185e92885a4:-7b52
+ 227
+ 162
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Valve_dir_RBV
+ 0
+ true
+ $(PV_ROOT)VALVE_DIR
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 85
+ false
+ 699302c9:18631f8a2ab:-7fc8
+ 132
+ 162
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Stop_Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Needle valve stop:
+
+ false
+ 1
+ true
+ Label
+ 108
+ true
+ 2cad3757:186e08b90f4:-5d6f
+ 6
+ 132
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 20
+ 0
+ Stop_RBV
+ 0
+ true
+ $(PV_ROOT)NEEDLE_VALVE_STOP
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ true
+ ######
+ $(pv_name)
+$(pv_value)
+ true
+ 1
+ true
+ Text Update
+ 85
+ false
+ 2cad3757:186e08b90f4:-5d6e
+ 132
+ 132
+
+
+
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 28
+ true
+ true
+ STOP_SP_button
+ $(PV_ROOT)NEEDLE_VALVE_STOP:SP
+
+
+
+ true
+ true
+ false
+
+
+
+
+
+ $(pv_name)
+$(pv_value)
+ true
+ Choice Button
+ 133
+ 597b1303:189b03ee6d7:-7fb3
+ 216
+ 128
+
+
+
+
+
+
+
+
+
+
+ 13
+ 1
+ true
+ false
+
+ ISIS_GroupBox_NEW
+
+
+
+
+ 181
+ false
+
+ true
+
+ Temperature Control
+
+
+ true
+ true
+ false
+
+
+ false
+
+ false
+ true
+ Grouping Container
+ 355
+ 4ec5f80:1872cc883d3:-7ef8
+ 384
+ 228
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 19
+ 0
+ Temperature_RBV
+ 3
+ false
+ $(PV_ROOT)TEMP
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 80
+ false
+ 4ec5f80:1872cc883d3:-7ef7
+ 123
+ 18
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 19
+ 0
+ Setpoint_RBV
+ 3
+ false
+ $(PV_ROOT)TEMP:SP:RBV
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 80
+ false
+ 4ec5f80:1872cc883d3:-7ef6
+ 124
+ 48
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 3
+ 1
+
+ false
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 19
+ 0
+ false
+ 1.7976931348623157E308
+ -1.7976931348623157E308
+ false
+ Setpoint_SP
+ 3
+ false
+ $(PV_ROOT)TEMP:SP
+
+ 0.0
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+
+
+
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+ true
+
+ $(P)CS:MANAGER
+ $(PV_ROOT)FLOW_SP_MODE_SELECT
+
+
+
+ true
+ true
+ false
+
+
+ 0
+ false
+
+ 0.0
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Text Input
+ 80
+ 4ec5f80:1872cc883d3:-7ef5
+ 216
+ 48
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 19
+ 0
+ Heater_RBV
+ 3
+ false
+ $(PV_ROOT)OUTPUT
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 80
+ false
+ 4ec5f80:1872cc883d3:-7ef4
+ 124
+ 78
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Setpoint_label
+
+
+ true
+ true
+ false
+
+
+ false
+ Setpoint:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ 4ec5f80:1872cc883d3:-7ef3
+ 6
+ 48
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Heater_label
+
+
+ true
+ true
+ false
+
+
+ false
+ Heater:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ 4ec5f80:1872cc883d3:-7ef2
+ 6
+ 78
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Temerature_label
+
+
+ true
+ true
+ false
+
+
+ false
+ Temperature:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ 4ec5f80:1872cc883d3:-7ef1
+ 6
+ 18
+
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Value_NEW
+
+ false
+
+
+
+ 0
+ 19
+ 0
+ Temperature_units_RBV
+ 3
+ false
+ $(PV_ROOT)TEMP.EGU
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 80
+ false
+ 4ec5f80:1872cc883d3:-7ef0
+ 215
+ 18
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Label_NEW
+
+
+
+
+ 20
+ 2
+ Ramping_label
+
+
+ true
+ true
+ false
+
+
+ false
+ Heating:
+
+ false
+ 1
+ true
+ Label
+ 96
+ true
+ 4ec5f80:1872cc883d3:-7eef
+ 6
+ 108
+
+
+
+ false
+ false
+
+
+
+ -1
+ true
+
+
+
+ 0
+ 1
+ 3
+
+
+
+ 0
+ true
+ true
+
+ ISIS_Label_Small
+
+ false
+
+
+
+ 25
+ Ramping_LED
+
+
+
+ OFF
+
+
+
+ ON
+ $(PV_ROOT)RAMPING
+
+
+
+ true
+ true
+ true
+
+
+ false
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ LED
+ 25
+ 4ec5f80:1872cc883d3:-7eee
+ 126
+ 108
+
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+ ISIS_Header2_NEW
+
+
+
+
+ 37
+ 0
+ Label_15
+
+
+
+ true
+
+ $(P)CS:MANAGER
+
+
+
+ true
+ true
+ false
+
+
+ false
+ To control this device, enable manager mode!
+
+ false
+ 1
+ false
+ Label
+ 403
+ true
+ -6c823268:187747e8255:-7ebb
+ 384
+ 42
+
+
\ No newline at end of file
diff --git a/base/uk.ac.stfc.isis.ibex.opis/resources/opi_info.xml b/base/uk.ac.stfc.isis.ibex.opis/resources/opi_info.xml
index 4363cf7fd4..0831a601fb 100644
--- a/base/uk.ac.stfc.isis.ibex.opis/resources/opi_info.xml
+++ b/base/uk.ac.stfc.isis.ibex.opis/resources/opi_info.xml
@@ -3059,6 +3059,27 @@
+
+ Automatic Needle Valve Controller
+
+ EUROTHERM
+ automatic_needle_valve.opi
+ Automatic Needle Valve Controller
+
+
+ EURO
+ The Eurotherm PV prefix (e.g. EUROTHRM_01).
+ EUROTHRM_01
+
+
+ SENSOR
+ The temperature sensor number (e.g. 1).
+ 1
+
+
+
+
+
Tektronix AFG3000