diff --git a/docs/services/bmc_dm.rst b/docs/services/bmc_dm.rst
index 0c45dfbd..b1472f0b 100644
--- a/docs/services/bmc_dm.rst
+++ b/docs/services/bmc_dm.rst
@@ -1,14 +1,56 @@
Boston Deformable Mirror
========================
+This service operates a pair of identical Boston Micromachines MEMS DMs controlled by the same driver. The following Boston DMs have been tested with catkit2 thus far:
+
+- `BMC DM Kilo-C-1.5 `_
Configuration
-------------
+.. code-block:: YAML
+
+ boston_dm:
+ service_type: bmc_dm
+ simulated_service_type: bmc_dm_sim
+ interface: bmc_dm
+ requires_safety: true
+
+ serial_number: 0000
+ command_length: 2048
+ num_actuators: 952
+ dac_bit_depth: 14
+ max_volts: 200
+
+ flat_map_fname: !path ../flat_data.fits
+ gain_map_fname: !path ../gain_map.fits
+ dm_mask_fname: !path ../dm_mask.fits
+
+ startup_maps:
+ flat: !path ../flat_data.fits
+
+ channels:
+ - correction_howfs
+ - correction_lowfs
+ - probe
+ - poke
+ - aberration
+ - atmosphere
+ - astrogrid
+ - resume
+ - flat
Properties
----------
+``channels``: List of command channel names (dict).
Commands
--------
+None.
+
Datastreams
-----------
+``total_voltage``: Array of the total voltage applied to each actuator of the DM.
+
+``total_surface``: Array of the total amplitude of each DM actuator (nanometers).
+
+``channels[channel_name]``: The command (nm surface) per virtual channel, identified by channel name.
diff --git a/docs/services/flir_camera.rst b/docs/services/flir_camera.rst
index aed0485c..b9b7b3d3 100644
--- a/docs/services/flir_camera.rst
+++ b/docs/services/flir_camera.rst
@@ -1,14 +1,77 @@
FLIR Camera
===========
+This service operates an FLIR camera. The following are the different types of FLIR cameras that have been tested and used with catkit2 so far:
+
+- `Teledyne FLIR BFS-U3-63S4M-C `_
+
+For further documentation, see:
+
+- `image format control `_
+
+Note that using FLIR cameras requires a manual installation of drivers from `flir.com. `_
Configuration
-------------
+.. code-block:: YAML
+
+ camera1:
+ service_type: flir_camera
+ simulated_service_type: camera_sim
+ requires_safety: false
+
+ serial_number: 000000
+ width: 312
+ height: 312
+ offset_x: 100
+ offset_y: 134
+ adc_bit_depth: 12bit
+ pixel_format: mono12p
+ well_depth_percentage_target: 0.65
+ exposure_time: 1000
+ gain: 0
+ env:
+ KMP_DUPLICATE_LIB_OK: TRUE
Properties
----------
+``exposure_time``: Exposure time (in microseconds) of the camera.
+
+``gain``: Gain of the camera.
+
+``width``: The width of the camera frames.
+
+``height``: The height of the camera frames.
+
+``offset_x``: The x offset of the camera frames on the sensor.
+
+``offset_y``: The y offset of the camera frames on the sensor.
+
+``sensor_width``: The width of the sensor.
+
+``sensor_height``: The height of the sensor.
+
+``pixel_format``: Format of the pixel provided by the camera.
+
+``adc_bit_depth``: Fixed bit output of the camera ADC.
+
+``acquisition_frame_rate``: Frame rate of the acquisition (if enabled, see below).
+
+``acquisition_frame_rate_enable``: Whether to allow manual control of the acquisition frame rate.
+
+``device_name``: The name of the camera.
Commands
--------
+``start_acquisition()``: This starts the acquisition of images from the camera.
+
+``end_acquisition()``: This ends the acquisition of images from the camera.
+
Datastreams
-----------
+``temperature``: The temperature (in Celsius) as measured by the camera.
+
+``images``: The images acquired by the camera.
+
+``is_acquiring``: Whether the camera is currently acquiring images.
+
diff --git a/docs/services/nkt_superk.rst b/docs/services/nkt_superk.rst
index 76164154..41843e8f 100644
--- a/docs/services/nkt_superk.rst
+++ b/docs/services/nkt_superk.rst
@@ -1,14 +1,67 @@
NKT Super K Compact Tunable Laser
=================================
+The NKT Super K service contains software for controlling both the `NKT SuperK EVO Supercontinuum White Light Laser `_
+and the `NKT SuperK VARIA Variable Bandpass Filter `_.
+This is done because a single open port to the device is needed that cannot be shared between multiple services.
+
+Associated drivers for both the EVO and VARIA (found in the linked manuals) also need to be installed.
Configuration
-------------
+.. code-block:: YAML
+
+ nkt_superk:
+ service_type: nkt_superk
+ simulated_service_type: nkt_superk_sim
+ interface: nkt_superk
+ requires_safety: false
+
+ port: COM4
+ emission: 1
+ power_setpoint: 100
+ current_setpoint: 100
+ nd_setpoint: 100
+ lwp_setpoint: 633
+ swp_setpoint: 643
+ sleep_time_per_nm: 0.013
+ base_sleep_time: 0.05
+
Properties
----------
+None.
+
Commands
--------
+None.
+
Datastreams
-----------
+``base_temperature``: Base temperature output by the EVO (Celsius).
+
+``supply_voltage``: DC supply voltage to the EVO.
+
+``external_control_input``: Level of external feedback control for the EVO (Volts, DC).
+
+``emission``: Output emission of the EVO (int) - 0 is OFF, 1 is ON.
+
+``power_setpoint``: Output emission power level of the EVO (in percent).
+
+``current_setpoint``: Output current level of the EVO (in percent).
+
+``monitor_input``: Monitors the input to the VARIA from the EVO.
+
+``nd_setpoint``: Set point for the VARIA ND filter.
+
+``swp_setpoint``: Upper bandwidth limit for the VARIA (in nm).
+
+``lwp_setpoint``: Lower bandwidth limit for the VARIA (in nm).
+
+``nd_filter_moving``: Whether the ND filer is moving for the VARIA.
+
+``swp_filter_moving``: Whether the short wavelength (high-pass) filter is moving for the VARIA.
+
+``lwp_filter_moving``: Whether the long wavelength (low-pass) filter is moving for the VARIA.
+