diff --git a/src/calng/conditions/JungfrauCondition.py b/src/calng/conditions/JungfrauCondition.py
index 2825a4d82978860f9514050ac805ba070931c040..30963793023deff7b8fa0fd01ada0f221992d36d 100644
--- a/src/calng/conditions/JungfrauCondition.py
+++ b/src/calng/conditions/JungfrauCondition.py
@@ -1,53 +1,29 @@
-import collections
 import operator
 
 from karabo.middlelayer import AccessMode, Assignment, String
 from .. import base_condition
-from ..corrections.JungfrauCorrection import GainModes
+from ..corrections.JungfrauCorrection import GainModes, GainSettings
 
 
-def old_settings_to_gain_mode(setting):
-    gain_mode = GainModes(setting)
-    if gain_mode in (GainModes.FIX_GAIN_1, GainModes.FIX_GAIN_2):
-        return 1
+def gain_mode_translator(gain_mode_string):
+    if gain_mode_string in {"dynamic", "forceswitchg1", "forceswitchg2"}:
+        return GainModes.ADAPTIVE_GAIN.name
+    elif gain_mode_string in {"fixg1", "fixg2"}:
+        return GainModes.FIXED_GAIN.name
     else:
-        return 0
+        raise ValueError(f"Unknown gain mode {gain_mode_string}")
 
 
-def old_settings_to_gain_setting(setting):
-    gain_mode = GainModes(setting)
-    if gain_mode is GainModes.DYNAMIC_GAIN_HG0:
-        return 1
-    else:
-        return 0
-
-
-def new_settings_to_gain_setting(setting):
+def gain_setting_translator(setting):
     if setting == "gain0":
-        return 0
+        return GainSettings.LOW_CDS.name
     elif setting == "highgain0":
-        return 1
+        return GainSettings.HIGH_CDS.name
     else:
         raise ValueError(f"Unknown gain setting {setting}")
 
 
-def new_gain_mode_to_gain_mode(gain_mode):
-    if gain_mode in {"dynamic", "forceswitchg1", "forceswitchg2"}:
-        return 0
-    elif gain_mode in {"fixg1", "fixg2"}:
-        return 1
-    else:
-        raise ValueError(f"Unknown gain_mode {gain_mode}")
-
-
 class JungfrauCondition(base_condition.ConditionBase):
-    detectorFirmwareVersion = String(
-        displayedName="Firmware version",
-        assignment=Assignment.OPTIONAL,
-        accessMode=AccessMode.INITONLY,
-        defaultValue="new",
-        options=["old", "new"],
-    )
     controlDeviceId = String(
         displayedName="Control device ID",
         assignment=Assignment.MANDATORY,
@@ -56,29 +32,17 @@ class JungfrauCondition(base_condition.ConditionBase):
 
     @property
     def keys_to_get(self):
-        key_map = [
-            # cells: 1.0 or 16.0
-            ("storageCells", "memoryCells", lambda n: n + 1),
-            (
-                "exposureTime",
-                "integrationTime",
-                lambda n: n * 1e6,
-            ),
-        ]
-        if self.detectorFirmwareVersion.value == "old":
-            key_map += [
-                # note: control device parameter is a vector
-                ("vHighVoltage", "biasVoltage", operator.itemgetter(0)),
-                # gain mode: omitted or 1.0
-                ("settings", "gainMode", old_settings_to_gain_mode),
-                # gain setting: 0.0 or 1.0 (derived from gain mode on device)
-                ("settings", "gainSetting", old_settings_to_gain_setting),
-            ]
-        else:
-            key_map += [
+        return {
+            self.controlDeviceId.value: [
+                # cells: 1.0 or 16.0
+                ("storageCells", "memoryCells", lambda n: n + 1),
+                (
+                    "exposureTime",
+                    "integrationTime",
+                    lambda n: n * 1e6,
+                ),
                 ("highVoltage", "biasVoltage", operator.itemgetter(0)),
-                ("settings", "gainSetting", new_settings_to_gain_setting),
-                ("gainMode", "gainMode", new_gain_mode_to_gain_mode),
+                ("settings", "gainSetting", gain_setting_translator),
+                ("gainMode", "gainMode", gain_mode_translator),
             ]
-
-        return {self.controlDeviceId.value: key_map}
+        }
diff --git a/src/calng/corrections/JungfrauCorrection.py b/src/calng/corrections/JungfrauCorrection.py
index bb40a97fc8661fe0b4d682e3ee0b2459dfe1204e..b7903d033143d77b4efc323789f23325ebbd774f 100644
--- a/src/calng/corrections/JungfrauCorrection.py
+++ b/src/calng/corrections/JungfrauCorrection.py
@@ -42,12 +42,13 @@ bad_pixel_constants = {
 
 # from pycalibration (TOOD: move to common shared lib)
 class GainModes(enum.Enum):
-    DYNAMIC_GAIN = "dynamicgain"
-    DYNAMIC_GAIN_HG0 = "dynamichg0"
-    FIX_GAIN_1 = "fixgain1"
-    FIX_GAIN_2 = "fixgain2"
-    FORCE_SWITCH_HG1 = "forceswitchg1"
-    FORCE_SWITCH_HG2 = "forceswitchg2"
+    ADAPTIVE_GAIN = 0
+    FIXED_GAIN = 1
+
+
+class GainSettings(enum.Enum):
+    LOW_CDS = 0
+    HIGH_CDS = 1
 
 
 class CorrectionFlags(enum.IntFlag):
@@ -380,7 +381,7 @@ class JungfrauCalcatFriend(base_calcat.BaseCalcatFriend):
             .reconfigurable()
             .commit(),
 
-            DOUBLE_ELEMENT(schema)
+            STRING_ELEMENT(schema)
             .key("constantParameters.gainMode")
             .displayedName("Gain mode")
             .description(
@@ -390,16 +391,18 @@ class JungfrauCalcatFriend(base_calcat.BaseCalcatFriend):
                 "for fixed gain (omitted otherwise)."
             )
             .assignmentOptional()
-            .defaultValue(0)
+            .defaultValue(GainModes.ADAPTIVE_GAIN.name)
+            .options(",".join(gain_mode.name for gain_mode in GainModes))
             .reconfigurable()
             .commit(),
 
-            DOUBLE_ELEMENT(schema)
+            STRING_ELEMENT(schema)
             .key("constantParameters.gainSetting")
             .displayedName("Gain setting")
             .description("See description of gainMode")
             .assignmentOptional()
-            .defaultValue(0)
+            .defaultValue(GainSettings.LOW_CDS.name)
+            .options(",".join(gain_setting.name for gain_setting in GainSettings))
             .reconfigurable()
             .commit(),
         )
@@ -421,10 +424,13 @@ class JungfrauCalcatFriend(base_calcat.BaseCalcatFriend):
         res["Integration Time"] = self._get_param("integrationTime")
         res["Sensor Temperature"] = self._get_param("sensorTemperature")
 
-        if self._get_param("gainMode") != 0:
-            # NOTE: always include if CalCat is updated for this
-            res["Gain mode"] = self._get_param("gainMode")
-        res["Gain Setting"] = self._get_param("gainSetting")
+        if (
+            gain_mode := GainModes[self._get_param("gainMode")]
+        ) is not GainModes.ADAPTIVE_GAIN:
+            # NOTE: currently only including if parameter for CalCat is 1
+            # change if conditions are tidied up in the database
+            res["Gain mode"] = gain_mode.value
+        res["Gain Setting"] = GainSettings[self._get_param("gainSetting")].value
 
         return res