diff --git a/doc/img/ModCWControls1.png b/doc/img/ModCWControls1.png
new file mode 100644
index 000000000..72c943a1d
Binary files /dev/null and b/doc/img/ModCWControls1.png differ
diff --git a/doc/img/ModCWControls1.xcf b/doc/img/ModCWControls1.xcf
new file mode 100644
index 000000000..a5b35e75e
Binary files /dev/null and b/doc/img/ModCWControls1.xcf differ
diff --git a/doc/img/ModCWControls2.png b/doc/img/ModCWControls2.png
new file mode 100644
index 000000000..bfb478a30
Binary files /dev/null and b/doc/img/ModCWControls2.png differ
diff --git a/doc/img/ModCWControls2.xcf b/doc/img/ModCWControls2.xcf
new file mode 100644
index 000000000..e4254eb76
Binary files /dev/null and b/doc/img/ModCWControls2.xcf differ
diff --git a/sdrbase/resources/webapi.qrc b/sdrbase/resources/webapi.qrc
index 11d357456..6984d7097 100644
--- a/sdrbase/resources/webapi.qrc
+++ b/sdrbase/resources/webapi.qrc
@@ -10,9 +10,11 @@
         webapi/doc/swagger/include/BFMDemod.yaml
         webapi/doc/swagger/include/BladeRF1.yaml
         webapi/doc/swagger/include/BladeRF2.yaml
+        webapi/doc/swagger/include/ChannelSettings.yaml
         webapi/doc/swagger/include/Command.yaml
         webapi/doc/swagger/include/CWKeyer.yaml
         webapi/doc/swagger/include/DSDDemod.yaml
+        webapi/doc/swagger/include/DeviceSettings.yaml
         webapi/doc/swagger/include/FCDPro.yaml
         webapi/doc/swagger/include/FCDProPlus.yaml
         webapi/doc/swagger/include/FileSource.yaml
diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html
index 28f056d63..de02f6952 100644
--- a/sdrbase/resources/webapi/doc/html2/index.html
+++ b/sdrbase/resources/webapi/doc/html2/index.html
@@ -1770,7 +1770,7 @@ margin-bottom: 20px;
       "description" : "Channel type ID in short form from object name"
     },
     "config" : {
-      "$ref" : "#/definitions/ChannelSettings_2"
+      "$ref" : "#/definitions/ChannelSettings"
     }
   },
   "description" : "Represents a Preset::ChannelConfig object"
@@ -1958,92 +1958,6 @@ margin-bottom: 20px;
     }
   },
   "description" : "Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present."
-};
-            defs.ChannelSettings_2 = {
-  "required" : [ "channelType", "direction" ],
-  "discriminator" : "channelType",
-  "properties" : {
-    "channelType" : {
-      "type" : "string",
-      "description" : "Channel type code"
-    },
-    "direction" : {
-      "type" : "integer",
-      "description" : "0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)"
-    },
-    "originatorDeviceSetIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the device set index from where the message comes from."
-    },
-    "originatorChannelIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the channel index from where the message comes from."
-    },
-    "AMDemodSettings" : {
-      "$ref" : "#/definitions/AMDemodSettings"
-    },
-    "AMModSettings" : {
-      "$ref" : "#/definitions/AMModSettings"
-    },
-    "ATVModSettings" : {
-      "$ref" : "#/definitions/ATVModSettings"
-    },
-    "BFMDemodSettings" : {
-      "$ref" : "#/definitions/BFMDemodSettings"
-    },
-    "DSDDemodSettings" : {
-      "$ref" : "#/definitions/DSDDemodSettings"
-    },
-    "FileSourceSettings" : {
-      "$ref" : "#/definitions/FileSourceSettings"
-    },
-    "FreeDVDemodSettings" : {
-      "$ref" : "#/definitions/FreeDVDemodSettings"
-    },
-    "FreeDVModSettings" : {
-      "$ref" : "#/definitions/FreeDVModSettings"
-    },
-    "FreqTrackerSettings" : {
-      "$ref" : "#/definitions/FreqTrackerSettings"
-    },
-    "NFMDemodSettings" : {
-      "$ref" : "#/definitions/NFMDemodSettings"
-    },
-    "NFMModSettings" : {
-      "$ref" : "#/definitions/NFMModSettings"
-    },
-    "LocalSinkSettings" : {
-      "$ref" : "#/definitions/LocalSinkSettings"
-    },
-    "LocalSourceSettings" : {
-      "$ref" : "#/definitions/LocalSourceSettings"
-    },
-    "RemoteSinkSettings" : {
-      "$ref" : "#/definitions/RemoteSinkSettings"
-    },
-    "RemoteSourceSettings" : {
-      "$ref" : "#/definitions/RemoteSourceSettings"
-    },
-    "SSBModSettings" : {
-      "$ref" : "#/definitions/SSBModSettings"
-    },
-    "SSBDemodSettings" : {
-      "$ref" : "#/definitions/SSBDemodSettings"
-    },
-    "UDPSourceSettings" : {
-      "$ref" : "#/definitions/UDPSourceSettings"
-    },
-    "UDPSinkSettings" : {
-      "$ref" : "#/definitions/UDPSinkSettings"
-    },
-    "WFMDemodSettings" : {
-      "$ref" : "#/definitions/WFMDemodSettings"
-    },
-    "WFMModSettings" : {
-      "$ref" : "#/definitions/WFMModSettings"
-    }
-  },
-  "description" : "Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present."
 };
             defs.ChannelsDetail = {
   "required" : [ "channelcount" ],
@@ -2297,7 +2211,7 @@ margin-bottom: 20px;
       "type" : "integer"
     },
     "config" : {
-      "$ref" : "#/definitions/DeviceSettings_2"
+      "$ref" : "#/definitions/DeviceSettings"
     }
   },
   "description" : "Represents a Preset::DeviceConfig object"
@@ -2566,112 +2480,6 @@ margin-bottom: 20px;
     }
   },
   "description" : "Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present."
-};
-            defs.DeviceSettings_2 = {
-  "required" : [ "deviceHwType", "direction" ],
-  "discriminator" : "deviceHwType",
-  "properties" : {
-    "deviceHwType" : {
-      "type" : "string",
-      "description" : "Device hardware type code"
-    },
-    "direction" : {
-      "type" : "integer",
-      "description" : "0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)"
-    },
-    "originatorIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the device set index from where the message comes from."
-    },
-    "airspySettings" : {
-      "$ref" : "#/definitions/AirspySettings"
-    },
-    "airspyHFSettings" : {
-      "$ref" : "#/definitions/AirspyHFSettings"
-    },
-    "bladeRF1InputSettings" : {
-      "$ref" : "#/definitions/BladeRF1InputSettings"
-    },
-    "bladeRF2InputSettings" : {
-      "$ref" : "#/definitions/BladeRF2InputSettings"
-    },
-    "bladeRF1OutputSettings" : {
-      "$ref" : "#/definitions/BladeRF1OutputSettings"
-    },
-    "bladeRF2OutputSettings" : {
-      "$ref" : "#/definitions/BladeRF2OutputSettings"
-    },
-    "fcdProSettings" : {
-      "$ref" : "#/definitions/FCDProSettings"
-    },
-    "fcdProPlusSettings" : {
-      "$ref" : "#/definitions/FCDProPlusSettings"
-    },
-    "fileInputSettings" : {
-      "$ref" : "#/definitions/FileInputSettings"
-    },
-    "hackRFInputSettings" : {
-      "$ref" : "#/definitions/HackRFInputSettings"
-    },
-    "hackRFOutputSettings" : {
-      "$ref" : "#/definitions/HackRFOutputSettings"
-    },
-    "kiwiSDRSettings" : {
-      "$ref" : "#/definitions/KiwiSDRSettings"
-    },
-    "limeSdrInputSettings" : {
-      "$ref" : "#/definitions/LimeSdrInputSettings"
-    },
-    "limeSdrOutputSettings" : {
-      "$ref" : "#/definitions/LimeSdrOutputSettings"
-    },
-    "localInputSettings" : {
-      "$ref" : "#/definitions/LocalInputSettings"
-    },
-    "localOutputSettings" : {
-      "$ref" : "#/definitions/LocalOutputSettings"
-    },
-    "perseusSettings" : {
-      "$ref" : "#/definitions/PerseusSettings"
-    },
-    "plutoSdrInputSettings" : {
-      "$ref" : "#/definitions/PlutoSdrInputSettings"
-    },
-    "plutoSdrOutputSettings" : {
-      "$ref" : "#/definitions/PlutoSdrOutputSettings"
-    },
-    "rtlSdrSettings" : {
-      "$ref" : "#/definitions/RtlSdrSettings"
-    },
-    "remoteOutputSettings" : {
-      "$ref" : "#/definitions/RemoteOutputSettings"
-    },
-    "remoteInputSettings" : {
-      "$ref" : "#/definitions/RemoteInputSettings"
-    },
-    "sdrPlaySettings" : {
-      "$ref" : "#/definitions/SDRPlaySettings"
-    },
-    "soapySDRInputSettings" : {
-      "$ref" : "#/definitions/SoapySDRInputSettings"
-    },
-    "soapySDROutputSettings" : {
-      "$ref" : "#/definitions/SoapySDROutputSettings"
-    },
-    "testSourceSettings" : {
-      "$ref" : "#/definitions/TestSourceSettings"
-    },
-    "testMISettings" : {
-      "$ref" : "#/definitions/TestMISettings"
-    },
-    "xtrxInputSettings" : {
-      "$ref" : "#/definitions/XtrxInputSettings"
-    },
-    "xtrxOutputSettings" : {
-      "$ref" : "#/definitions/XtrxOutputSettings"
-    }
-  },
-  "description" : "Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present."
 };
             defs.DeviceState = {
   "required" : [ "state" ],
@@ -27161,7 +26969,7 @@ except ApiException as e:
           
           
             
-              Generated 2019-07-31T18:41:04.524+02:00
+              Generated 2019-07-31T22:38:42.618+02:00
             
            
       
diff --git a/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml b/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml
new file mode 100644
index 000000000..7be49b84a
--- /dev/null
+++ b/sdrbase/resources/webapi/doc/swagger/include/ChannelSettings.yaml
@@ -0,0 +1,61 @@
+ChannelSettings:
+  description: Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present.
+  discriminator: channelType
+  required:
+    - channelType
+    - direction
+  properties:
+    channelType:
+      description: Channel type code
+      type: string
+    direction:
+      description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
+      type: integer
+    originatorDeviceSetIndex:
+      description: Optional for reverse API. This is the device set index from where the message comes from.
+      type: integer
+    originatorChannelIndex:
+      description: Optional for reverse API. This is the channel index from where the message comes from.
+      type: integer
+    AMDemodSettings:
+      $ref: "/doc/swagger/include/AMDemod.yaml#/AMDemodSettings"
+    AMModSettings:
+      $ref: "/doc/swagger/include/AMMod.yaml#/AMModSettings"
+    ATVModSettings:
+      $ref: "/doc/swagger/include/ATVMod.yaml#/ATVModSettings"
+    BFMDemodSettings:
+      $ref: "/doc/swagger/include/BFMDemod.yaml#/BFMDemodSettings"
+    DSDDemodSettings:
+      $ref: "/doc/swagger/include/DSDDemod.yaml#/DSDDemodSettings"
+    FileSourceSettings:
+      $ref: "/doc/swagger/include/FileSource.yaml#/FileSourceSettings"
+    FreeDVDemodSettings:
+      $ref: "/doc/swagger/include/FreeDVDemod.yaml#/FreeDVDemodSettings"
+    FreeDVModSettings:
+      $ref: "/doc/swagger/include/FreeDVMod.yaml#/FreeDVModSettings"
+    FreqTrackerSettings:
+      $ref: "/doc/swagger/include/FreqTracker.yaml#/FreqTrackerSettings"
+    NFMDemodSettings:
+      $ref: "/doc/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
+    NFMModSettings:
+      $ref: "/doc/swagger/include/NFMMod.yaml#/NFMModSettings"
+    LocalSinkSettings:
+      $ref: "/doc/swagger/include/LocalSink.yaml#/LocalSinkSettings"
+    LocalSourceSettings:
+      $ref: "/doc/swagger/include/LocalSource.yaml#/LocalSourceSettings"
+    RemoteSinkSettings:
+      $ref: "/doc/swagger/include/RemoteSink.yaml#/RemoteSinkSettings"
+    RemoteSourceSettings:
+      $ref: "/doc/swagger/include/RemoteSource.yaml#/RemoteSourceSettings"
+    SSBModSettings:
+      $ref: "/doc/swagger/include/SSBMod.yaml#/SSBModSettings"
+    SSBDemodSettings:
+      $ref: "/doc/swagger/include/SSBDemod.yaml#/SSBDemodSettings"
+    UDPSourceSettings:
+      $ref: "/doc/swagger/include/UDPSource.yaml#/UDPSourceSettings"
+    UDPSinkSettings:
+      $ref: "/doc/swagger/include/UDPSink.yaml#/UDPSinkSettings"
+    WFMDemodSettings:
+      $ref: "/doc/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
+    WFMModSettings:
+      $ref: "/doc/swagger/include/WFMMod.yaml#/WFMModSettings"
diff --git a/sdrbase/resources/webapi/doc/swagger/include/DeviceSettings.yaml b/sdrbase/resources/webapi/doc/swagger/include/DeviceSettings.yaml
new file mode 100644
index 000000000..fc5c776b0
--- /dev/null
+++ b/sdrbase/resources/webapi/doc/swagger/include/DeviceSettings.yaml
@@ -0,0 +1,74 @@
+DeviceSettings:
+  description: Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present.
+  discriminator: deviceHwType
+  required:
+    - deviceHwType
+    - direction
+  properties:
+    deviceHwType:
+      description: Device hardware type code
+      type: string
+    direction:
+      description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
+      type: integer
+    originatorIndex:
+      description: Optional for reverse API. This is the device set index from where the message comes from.
+      type: integer
+    airspySettings:
+      $ref: "/doc/swagger/include/Airspy.yaml#/AirspySettings"
+    airspyHFSettings:
+      $ref: "/doc/swagger/include/AirspyHF.yaml#/AirspyHFSettings"
+    bladeRF1InputSettings:
+      $ref: "/doc/swagger/include/BladeRF1.yaml#/BladeRF1InputSettings"
+    bladeRF2InputSettings:
+      $ref: "/doc/swagger/include/BladeRF2.yaml#/BladeRF2InputSettings"
+    bladeRF1OutputSettings:
+      $ref: "/doc/swagger/include/BladeRF1.yaml#/BladeRF1OutputSettings"
+    bladeRF2OutputSettings:
+      $ref: "/doc/swagger/include/BladeRF2.yaml#/BladeRF2OutputSettings"
+    fcdProSettings:
+      $ref: "/doc/swagger/include/FCDPro.yaml#/FCDProSettings"
+    fcdProPlusSettings:
+      $ref: "/doc/swagger/include/FCDProPlus.yaml#/FCDProPlusSettings"
+    fileInputSettings:
+      $ref: "/doc/swagger/include/FileInput.yaml#/FileInputSettings"
+    hackRFInputSettings:
+      $ref: "/doc/swagger/include/HackRF.yaml#/HackRFInputSettings"
+    hackRFOutputSettings:
+      $ref: "/doc/swagger/include/HackRF.yaml#/HackRFOutputSettings"
+    kiwiSDRSettings:
+      $ref: "/doc/swagger/include/KiwiSDR.yaml#/KiwiSDRSettings"
+    limeSdrInputSettings:
+      $ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrInputSettings"
+    limeSdrOutputSettings:
+      $ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrOutputSettings"
+    localInputSettings:
+      $ref: "/doc/swagger/include/LocalInput.yaml#/LocalInputSettings"
+    localOutputSettings:
+      $ref: "/doc/swagger/include/LocalOutput.yaml#/LocalOutputSettings"
+    perseusSettings:
+      $ref: "/doc/swagger/include/Perseus.yaml#/PerseusSettings"
+    plutoSdrInputSettings:
+      $ref: "/doc/swagger/include/PlutoSdr.yaml#/PlutoSdrInputSettings"
+    plutoSdrOutputSettings:
+      $ref: "/doc/swagger/include/PlutoSdr.yaml#/PlutoSdrOutputSettings"
+    rtlSdrSettings:
+      $ref: "/doc/swagger/include/RtlSdr.yaml#/RtlSdrSettings"
+    remoteOutputSettings:
+      $ref: "/doc/swagger/include/RemoteOutput.yaml#/RemoteOutputSettings"
+    remoteInputSettings:
+      $ref: "/doc/swagger/include/RemoteInput.yaml#/RemoteInputSettings"
+    sdrPlaySettings:
+      $ref: "/doc/swagger/include/SDRPlay.yaml#/SDRPlaySettings"
+    soapySDRInputSettings:
+      $ref: "/doc/swagger/include/SoapySDR.yaml#/SoapySDRInputSettings"
+    soapySDROutputSettings:
+      $ref: "/doc/swagger/include/SoapySDR.yaml#/SoapySDROutputSettings"
+    testSourceSettings:
+      $ref: "/doc/swagger/include/TestSource.yaml#/TestSourceSettings"
+    testMISettings:
+      $ref: "/doc/swagger/include/TestMI.yaml#/TestMISettings"
+    xtrxInputSettings:
+      $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxInputSettings"
+    xtrxOutputSettings:
+      $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxOutputSettings"
diff --git a/sdrbase/resources/webapi/doc/swagger/include/Preset.yaml b/sdrbase/resources/webapi/doc/swagger/include/Preset.yaml
index 1d0435562..b2a9faa86 100644
--- a/sdrbase/resources/webapi/doc/swagger/include/Preset.yaml
+++ b/sdrbase/resources/webapi/doc/swagger/include/Preset.yaml
@@ -8,7 +8,7 @@ DeviceConfig:
     deviceSequence:
       type: integer
     config:
-      $ref: "http://localhost:8081/api/swagger/swagger.yaml#/definitions/DeviceSettings"
+      $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
 
 ChannelConfig:
   description: Represents a Preset::ChannelConfig object
@@ -20,7 +20,7 @@ ChannelConfig:
       description: Channel type ID in short form from object name
       type: string
     config:
-      $ref: "http://localhost:8081/api/swagger/swagger.yaml#/definitions/ChannelSettings"
+      $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
 
 Preset:
   description: Represents a Preset object
diff --git a/sdrbase/resources/webapi/doc/swagger/swagger.yaml b/sdrbase/resources/webapi/doc/swagger/swagger.yaml
index 12fd2b64e..15c645ee9 100644
--- a/sdrbase/resources/webapi/doc/swagger/swagger.yaml
+++ b/sdrbase/resources/webapi/doc/swagger/swagger.yaml
@@ -868,7 +868,7 @@ paths:
         "200":
           description: On success returns current settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -893,12 +893,12 @@ paths:
           description: Device settings to apply
           required: true
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success returns new settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -923,12 +923,12 @@ paths:
           description: Device settings to apply
           required: true
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success returns new settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -984,7 +984,7 @@ paths:
           description: Originator information in the reverse API case
           required: false
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success return state before change
@@ -1018,7 +1018,7 @@ paths:
           description: Originator information in the reverse API case
           required: false
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "/doc/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success return state before change
@@ -1119,7 +1119,7 @@ paths:
           description: Channel identification (no settings data)
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "202":
           description: Message to add a channel was sent successfully
@@ -1159,7 +1159,7 @@ paths:
         "200":
           description: On success return deleted channel settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1195,7 +1195,7 @@ paths:
         "200":
           description: On success return channel settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1229,12 +1229,12 @@ paths:
           description: Channel settings to apply
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "200":
           description: On success return channel new settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1268,12 +1268,12 @@ paths:
           description: Channel settings to apply
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "200":
           description: On success return channel new settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "/doc/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1879,82 +1879,6 @@ definitions:
       preset:
         $ref: "#/definitions/PresetIdentifier"
 
-  DeviceSettings:
-    description: Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present.
-    discriminator: deviceHwType
-    required:
-      - deviceHwType
-      - direction
-    properties:
-      deviceHwType:
-        description: Device hardware type code
-        type: string
-      direction:
-        description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
-        type: integer
-      originatorIndex:
-        description: Optional for reverse API. This is the device set index from where the message comes from.
-        type: integer
-      airspySettings:
-        $ref: "/doc/swagger/include/Airspy.yaml#/AirspySettings"
-      airspyHFSettings:
-        $ref: "/doc/swagger/include/AirspyHF.yaml#/AirspyHFSettings"
-      bladeRF1InputSettings:
-        $ref: "/doc/swagger/include/BladeRF1.yaml#/BladeRF1InputSettings"
-      bladeRF2InputSettings:
-        $ref: "/doc/swagger/include/BladeRF2.yaml#/BladeRF2InputSettings"
-      bladeRF1OutputSettings:
-        $ref: "/doc/swagger/include/BladeRF1.yaml#/BladeRF1OutputSettings"
-      bladeRF2OutputSettings:
-        $ref: "/doc/swagger/include/BladeRF2.yaml#/BladeRF2OutputSettings"
-      fcdProSettings:
-        $ref: "/doc/swagger/include/FCDPro.yaml#/FCDProSettings"
-      fcdProPlusSettings:
-        $ref: "/doc/swagger/include/FCDProPlus.yaml#/FCDProPlusSettings"
-      fileInputSettings:
-        $ref: "/doc/swagger/include/FileInput.yaml#/FileInputSettings"
-      hackRFInputSettings:
-        $ref: "/doc/swagger/include/HackRF.yaml#/HackRFInputSettings"
-      hackRFOutputSettings:
-        $ref: "/doc/swagger/include/HackRF.yaml#/HackRFOutputSettings"
-      kiwiSDRSettings:
-        $ref: "/doc/swagger/include/KiwiSDR.yaml#/KiwiSDRSettings"
-      limeSdrInputSettings:
-        $ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrInputSettings"
-      limeSdrOutputSettings:
-        $ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrOutputSettings"
-      localInputSettings:
-        $ref: "/doc/swagger/include/LocalInput.yaml#/LocalInputSettings"
-      localOutputSettings:
-        $ref: "/doc/swagger/include/LocalOutput.yaml#/LocalOutputSettings"
-      perseusSettings:
-        $ref: "/doc/swagger/include/Perseus.yaml#/PerseusSettings"
-      plutoSdrInputSettings:
-        $ref: "/doc/swagger/include/PlutoSdr.yaml#/PlutoSdrInputSettings"
-      plutoSdrOutputSettings:
-        $ref: "/doc/swagger/include/PlutoSdr.yaml#/PlutoSdrOutputSettings"
-      rtlSdrSettings:
-        $ref: "/doc/swagger/include/RtlSdr.yaml#/RtlSdrSettings"
-      remoteOutputSettings:
-        $ref: "/doc/swagger/include/RemoteOutput.yaml#/RemoteOutputSettings"
-      remoteInputSettings:
-        $ref: "/doc/swagger/include/RemoteInput.yaml#/RemoteInputSettings"
-      sdrPlaySettings:
-        $ref: "/doc/swagger/include/SDRPlay.yaml#/SDRPlaySettings"
-      soapySDRInputSettings:
-        $ref: "/doc/swagger/include/SoapySDR.yaml#/SoapySDRInputSettings"
-      soapySDROutputSettings:
-        $ref: "/doc/swagger/include/SoapySDR.yaml#/SoapySDROutputSettings"
-      testSourceSettings:
-        $ref: "/doc/swagger/include/TestSource.yaml#/TestSourceSettings"
-      testMISettings:
-        $ref: "/doc/swagger/include/TestMI.yaml#/TestMISettings"
-      xtrxInputSettings:
-        $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxInputSettings"
-      xtrxOutputSettings:
-        $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxOutputSettings"
-
-
   DeviceReport:
     description: Base device report. Only the device report corresponding to the device specified in the deviceHwType is or should be present.
     discriminator: deviceHwType
@@ -2011,68 +1935,6 @@ definitions:
       xtrxOutputReport:
         $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxOutputReport"
 
-  ChannelSettings:
-    description: Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present.
-    discriminator: channelType
-    required:
-      - channelType
-      - direction
-    properties:
-      channelType:
-        description: Channel type code
-        type: string
-      direction:
-        description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
-        type: integer
-      originatorDeviceSetIndex:
-        description: Optional for reverse API. This is the device set index from where the message comes from.
-        type: integer
-      originatorChannelIndex:
-        description: Optional for reverse API. This is the channel index from where the message comes from.
-        type: integer
-      AMDemodSettings:
-        $ref: "/doc/swagger/include/AMDemod.yaml#/AMDemodSettings"
-      AMModSettings:
-        $ref: "/doc/swagger/include/AMMod.yaml#/AMModSettings"
-      ATVModSettings:
-        $ref: "/doc/swagger/include/ATVMod.yaml#/ATVModSettings"
-      BFMDemodSettings:
-        $ref: "/doc/swagger/include/BFMDemod.yaml#/BFMDemodSettings"
-      DSDDemodSettings:
-        $ref: "/doc/swagger/include/DSDDemod.yaml#/DSDDemodSettings"
-      FileSourceSettings:
-        $ref: "/doc/swagger/include/FileSource.yaml#/FileSourceSettings"
-      FreeDVDemodSettings:
-        $ref: "/doc/swagger/include/FreeDVDemod.yaml#/FreeDVDemodSettings"
-      FreeDVModSettings:
-        $ref: "/doc/swagger/include/FreeDVMod.yaml#/FreeDVModSettings"
-      FreqTrackerSettings:
-        $ref: "/doc/swagger/include/FreqTracker.yaml#/FreqTrackerSettings"
-      NFMDemodSettings:
-        $ref: "/doc/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
-      NFMModSettings:
-        $ref: "/doc/swagger/include/NFMMod.yaml#/NFMModSettings"
-      LocalSinkSettings:
-        $ref: "/doc/swagger/include/LocalSink.yaml#/LocalSinkSettings"
-      LocalSourceSettings:
-        $ref: "/doc/swagger/include/LocalSource.yaml#/LocalSourceSettings"
-      RemoteSinkSettings:
-        $ref: "/doc/swagger/include/RemoteSink.yaml#/RemoteSinkSettings"
-      RemoteSourceSettings:
-        $ref: "/doc/swagger/include/RemoteSource.yaml#/RemoteSourceSettings"
-      SSBModSettings:
-        $ref: "/doc/swagger/include/SSBMod.yaml#/SSBModSettings"
-      SSBDemodSettings:
-        $ref: "/doc/swagger/include/SSBDemod.yaml#/SSBDemodSettings"
-      UDPSourceSettings:
-        $ref: "/doc/swagger/include/UDPSource.yaml#/UDPSourceSettings"
-      UDPSinkSettings:
-        $ref: "/doc/swagger/include/UDPSink.yaml#/UDPSinkSettings"
-      WFMDemodSettings:
-        $ref: "/doc/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
-      WFMModSettings:
-        $ref: "/doc/swagger/include/WFMMod.yaml#/WFMModSettings"
-
   ChannelReport:
     description: Base channel report. Only the channel report corresponding to the channel specified in the channelType field is or should be present.
     discriminator: channelType
diff --git a/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml b/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml
new file mode 100644
index 000000000..f54bd0714
--- /dev/null
+++ b/swagger/sdrangel/api/swagger/include/ChannelSettings.yaml
@@ -0,0 +1,61 @@
+ChannelSettings:
+  description: Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present.
+  discriminator: channelType
+  required:
+    - channelType
+    - direction
+  properties:
+    channelType:
+      description: Channel type code
+      type: string
+    direction:
+      description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
+      type: integer
+    originatorDeviceSetIndex:
+      description: Optional for reverse API. This is the device set index from where the message comes from.
+      type: integer
+    originatorChannelIndex:
+      description: Optional for reverse API. This is the channel index from where the message comes from.
+      type: integer
+    AMDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/AMDemod.yaml#/AMDemodSettings"
+    AMModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/AMMod.yaml#/AMModSettings"
+    ATVModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/ATVMod.yaml#/ATVModSettings"
+    BFMDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/BFMDemod.yaml#/BFMDemodSettings"
+    DSDDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/DSDDemod.yaml#/DSDDemodSettings"
+    FileSourceSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FileSource.yaml#/FileSourceSettings"
+    FreeDVDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FreeDVDemod.yaml#/FreeDVDemodSettings"
+    FreeDVModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FreeDVMod.yaml#/FreeDVModSettings"
+    FreqTrackerSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FreqTracker.yaml#/FreqTrackerSettings"
+    NFMDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
+    NFMModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/NFMMod.yaml#/NFMModSettings"
+    LocalSinkSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LocalSink.yaml#/LocalSinkSettings"
+    LocalSourceSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LocalSource.yaml#/LocalSourceSettings"
+    RemoteSinkSettings:
+      $ref: "http://localhost:8081/api/swagger/include/RemoteSink.yaml#/RemoteSinkSettings"
+    RemoteSourceSettings:
+      $ref: "http://localhost:8081/api/swagger/include/RemoteSource.yaml#/RemoteSourceSettings"
+    SSBModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/SSBMod.yaml#/SSBModSettings"
+    SSBDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/SSBDemod.yaml#/SSBDemodSettings"
+    UDPSourceSettings:
+      $ref: "http://localhost:8081/api/swagger/include/UDPSource.yaml#/UDPSourceSettings"
+    UDPSinkSettings:
+      $ref: "http://localhost:8081/api/swagger/include/UDPSink.yaml#/UDPSinkSettings"
+    WFMDemodSettings:
+      $ref: "http://localhost:8081/api/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
+    WFMModSettings:
+      $ref: "http://localhost:8081/api/swagger/include/WFMMod.yaml#/WFMModSettings"
diff --git a/swagger/sdrangel/api/swagger/include/DeviceSettings.yaml b/swagger/sdrangel/api/swagger/include/DeviceSettings.yaml
new file mode 100644
index 000000000..83056d97c
--- /dev/null
+++ b/swagger/sdrangel/api/swagger/include/DeviceSettings.yaml
@@ -0,0 +1,74 @@
+DeviceSettings:
+  description: Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present.
+  discriminator: deviceHwType
+  required:
+    - deviceHwType
+    - direction
+  properties:
+    deviceHwType:
+      description: Device hardware type code
+      type: string
+    direction:
+      description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
+      type: integer
+    originatorIndex:
+      description: Optional for reverse API. This is the device set index from where the message comes from.
+      type: integer
+    airspySettings:
+      $ref: "http://localhost:8081/api/swagger/include/Airspy.yaml#/AirspySettings"
+    airspyHFSettings:
+      $ref: "http://localhost:8081/api/swagger/include/AirspyHF.yaml#/AirspyHFSettings"
+    bladeRF1InputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/BladeRF1.yaml#/BladeRF1InputSettings"
+    bladeRF2InputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/BladeRF2.yaml#/BladeRF2InputSettings"
+    bladeRF1OutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/BladeRF1.yaml#/BladeRF1OutputSettings"
+    bladeRF2OutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/BladeRF2.yaml#/BladeRF2OutputSettings"
+    fcdProSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FCDPro.yaml#/FCDProSettings"
+    fcdProPlusSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FCDProPlus.yaml#/FCDProPlusSettings"
+    fileInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/FileInput.yaml#/FileInputSettings"
+    hackRFInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/HackRF.yaml#/HackRFInputSettings"
+    hackRFOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/HackRF.yaml#/HackRFOutputSettings"
+    kiwiSDRSettings:
+      $ref: "http://localhost:8081/api/swagger/include/KiwiSDR.yaml#/KiwiSDRSettings"
+    limeSdrInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrInputSettings"
+    limeSdrOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrOutputSettings"
+    localInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LocalInput.yaml#/LocalInputSettings"
+    localOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/LocalOutput.yaml#/LocalOutputSettings"
+    perseusSettings:
+      $ref: "http://localhost:8081/api/swagger/include/Perseus.yaml#/PerseusSettings"
+    plutoSdrInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/PlutoSdr.yaml#/PlutoSdrInputSettings"
+    plutoSdrOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/PlutoSdr.yaml#/PlutoSdrOutputSettings"
+    rtlSdrSettings:
+      $ref: "http://localhost:8081/api/swagger/include/RtlSdr.yaml#/RtlSdrSettings"
+    remoteOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/RemoteOutput.yaml#/RemoteOutputSettings"
+    remoteInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/RemoteInput.yaml#/RemoteInputSettings"
+    sdrPlaySettings:
+      $ref: "http://localhost:8081/api/swagger/include/SDRPlay.yaml#/SDRPlaySettings"
+    soapySDRInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/SoapySDR.yaml#/SoapySDRInputSettings"
+    soapySDROutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/SoapySDR.yaml#/SoapySDROutputSettings"
+    testSourceSettings:
+      $ref: "http://localhost:8081/api/swagger/include/TestSource.yaml#/TestSourceSettings"
+    testMISettings:
+      $ref: "http://localhost:8081/api/swagger/include/TestMI.yaml#/TestMISettings"
+    xtrxInputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/Xtrx.yaml#/XtrxInputSettings"
+    xtrxOutputSettings:
+      $ref: "http://localhost:8081/api/swagger/include/Xtrx.yaml#/XtrxOutputSettings"
diff --git a/swagger/sdrangel/api/swagger/include/Preset.yaml b/swagger/sdrangel/api/swagger/include/Preset.yaml
index ddbfd0be8..7d5f287e3 100644
--- a/swagger/sdrangel/api/swagger/include/Preset.yaml
+++ b/swagger/sdrangel/api/swagger/include/Preset.yaml
@@ -8,7 +8,7 @@ DeviceConfig:
     deviceSequence:
       type: integer
     config:
-      $ref: "http://localhost:8081/api/swagger/swagger.yaml#/definitions/DeviceSettings"
+      $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
 
 ChannelConfig:
   description: Represents a Preset::ChannelConfig object
@@ -20,7 +20,7 @@ ChannelConfig:
       description: Channel type ID in short form from object name
       type: string
     config:
-      $ref: "http://localhost:8081/api/swagger/swagger.yaml#/definitions/ChannelSettings"
+      $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
 
 Preset:
   description: Represents a Preset object
diff --git a/swagger/sdrangel/api/swagger/swagger.yaml b/swagger/sdrangel/api/swagger/swagger.yaml
index 13a6f0158..af5bd5b8a 100644
--- a/swagger/sdrangel/api/swagger/swagger.yaml
+++ b/swagger/sdrangel/api/swagger/swagger.yaml
@@ -868,7 +868,7 @@ paths:
         "200":
           description: On success returns current settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -893,12 +893,12 @@ paths:
           description: Device settings to apply
           required: true
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success returns new settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -923,12 +923,12 @@ paths:
           description: Device settings to apply
           required: true
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success returns new settings values
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
         "404":
           description: Invalid device set index or device not found
           schema:
@@ -984,7 +984,7 @@ paths:
           description: Originator information in the reverse API case
           required: false
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success return state before change
@@ -1018,7 +1018,7 @@ paths:
           description: Originator information in the reverse API case
           required: false
           schema:
-            $ref: "#/definitions/DeviceSettings"
+            $ref: "http://localhost:8081/api/swagger/include/DeviceSettings.yaml#/DeviceSettings"
       responses:
         "200":
           description: On success return state before change
@@ -1119,7 +1119,7 @@ paths:
           description: Channel identification (no settings data)
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "202":
           description: Message to add a channel was sent successfully
@@ -1159,7 +1159,7 @@ paths:
         "200":
           description: On success return deleted channel settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1195,7 +1195,7 @@ paths:
         "200":
           description: On success return channel settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1229,12 +1229,12 @@ paths:
           description: Channel settings to apply
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "200":
           description: On success return channel new settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1268,12 +1268,12 @@ paths:
           description: Channel settings to apply
           required: true
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
       responses:
         "200":
           description: On success return channel new settings
           schema:
-            $ref: "#/definitions/ChannelSettings"
+            $ref: "http://localhost:8081/api/swagger/include/ChannelSettings.yaml#/ChannelSettings"
         "400":
           description: Invalid device set or channel index
           schema:
@@ -1879,82 +1879,6 @@ definitions:
       preset:
         $ref: "#/definitions/PresetIdentifier"
 
-  DeviceSettings:
-    description: Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present.
-    discriminator: deviceHwType
-    required:
-      - deviceHwType
-      - direction
-    properties:
-      deviceHwType:
-        description: Device hardware type code
-        type: string
-      direction:
-        description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
-        type: integer
-      originatorIndex:
-        description: Optional for reverse API. This is the device set index from where the message comes from.
-        type: integer
-      airspySettings:
-        $ref: "http://localhost:8081/api/swagger/include/Airspy.yaml#/AirspySettings"
-      airspyHFSettings:
-        $ref: "http://localhost:8081/api/swagger/include/AirspyHF.yaml#/AirspyHFSettings"
-      bladeRF1InputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/BladeRF1.yaml#/BladeRF1InputSettings"
-      bladeRF2InputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/BladeRF2.yaml#/BladeRF2InputSettings"
-      bladeRF1OutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/BladeRF1.yaml#/BladeRF1OutputSettings"
-      bladeRF2OutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/BladeRF2.yaml#/BladeRF2OutputSettings"
-      fcdProSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FCDPro.yaml#/FCDProSettings"
-      fcdProPlusSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FCDProPlus.yaml#/FCDProPlusSettings"
-      fileInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FileInput.yaml#/FileInputSettings"
-      hackRFInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/HackRF.yaml#/HackRFInputSettings"
-      hackRFOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/HackRF.yaml#/HackRFOutputSettings"
-      kiwiSDRSettings:
-        $ref: "http://localhost:8081/api/swagger/include/KiwiSDR.yaml#/KiwiSDRSettings"
-      limeSdrInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrInputSettings"
-      limeSdrOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrOutputSettings"
-      localInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LocalInput.yaml#/LocalInputSettings"
-      localOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LocalOutput.yaml#/LocalOutputSettings"
-      perseusSettings:
-        $ref: "http://localhost:8081/api/swagger/include/Perseus.yaml#/PerseusSettings"
-      plutoSdrInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/PlutoSdr.yaml#/PlutoSdrInputSettings"
-      plutoSdrOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/PlutoSdr.yaml#/PlutoSdrOutputSettings"
-      rtlSdrSettings:
-        $ref: "http://localhost:8081/api/swagger/include/RtlSdr.yaml#/RtlSdrSettings"
-      remoteOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/RemoteOutput.yaml#/RemoteOutputSettings"
-      remoteInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/RemoteInput.yaml#/RemoteInputSettings"
-      sdrPlaySettings:
-        $ref: "http://localhost:8081/api/swagger/include/SDRPlay.yaml#/SDRPlaySettings"
-      soapySDRInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/SoapySDR.yaml#/SoapySDRInputSettings"
-      soapySDROutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/SoapySDR.yaml#/SoapySDROutputSettings"
-      testSourceSettings:
-        $ref: "http://localhost:8081/api/swagger/include/TestSource.yaml#/TestSourceSettings"
-      testMISettings:
-        $ref: "http://localhost:8081/api/swagger/include/TestMI.yaml#/TestMISettings"
-      xtrxInputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/Xtrx.yaml#/XtrxInputSettings"
-      xtrxOutputSettings:
-        $ref: "http://localhost:8081/api/swagger/include/Xtrx.yaml#/XtrxOutputSettings"
-
-
   DeviceReport:
     description: Base device report. Only the device report corresponding to the device specified in the deviceHwType is or should be present.
     discriminator: deviceHwType
@@ -2011,68 +1935,6 @@ definitions:
       xtrxOutputReport:
         $ref: "http://localhost:8081/api/swagger/include/Xtrx.yaml#/XtrxOutputReport"
 
-  ChannelSettings:
-    description: Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present.
-    discriminator: channelType
-    required:
-      - channelType
-      - direction
-    properties:
-      channelType:
-        description: Channel type code
-        type: string
-      direction:
-        description: 0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)
-        type: integer
-      originatorDeviceSetIndex:
-        description: Optional for reverse API. This is the device set index from where the message comes from.
-        type: integer
-      originatorChannelIndex:
-        description: Optional for reverse API. This is the channel index from where the message comes from.
-        type: integer
-      AMDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/AMDemod.yaml#/AMDemodSettings"
-      AMModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/AMMod.yaml#/AMModSettings"
-      ATVModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/ATVMod.yaml#/ATVModSettings"
-      BFMDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/BFMDemod.yaml#/BFMDemodSettings"
-      DSDDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/DSDDemod.yaml#/DSDDemodSettings"
-      FileSourceSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FileSource.yaml#/FileSourceSettings"
-      FreeDVDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FreeDVDemod.yaml#/FreeDVDemodSettings"
-      FreeDVModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FreeDVMod.yaml#/FreeDVModSettings"
-      FreqTrackerSettings:
-        $ref: "http://localhost:8081/api/swagger/include/FreqTracker.yaml#/FreqTrackerSettings"
-      NFMDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
-      NFMModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/NFMMod.yaml#/NFMModSettings"
-      LocalSinkSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LocalSink.yaml#/LocalSinkSettings"
-      LocalSourceSettings:
-        $ref: "http://localhost:8081/api/swagger/include/LocalSource.yaml#/LocalSourceSettings"
-      RemoteSinkSettings:
-        $ref: "http://localhost:8081/api/swagger/include/RemoteSink.yaml#/RemoteSinkSettings"
-      RemoteSourceSettings:
-        $ref: "http://localhost:8081/api/swagger/include/RemoteSource.yaml#/RemoteSourceSettings"
-      SSBModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/SSBMod.yaml#/SSBModSettings"
-      SSBDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/SSBDemod.yaml#/SSBDemodSettings"
-      UDPSourceSettings:
-        $ref: "http://localhost:8081/api/swagger/include/UDPSource.yaml#/UDPSourceSettings"
-      UDPSinkSettings:
-        $ref: "http://localhost:8081/api/swagger/include/UDPSink.yaml#/UDPSinkSettings"
-      WFMDemodSettings:
-        $ref: "http://localhost:8081/api/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
-      WFMModSettings:
-        $ref: "http://localhost:8081/api/swagger/include/WFMMod.yaml#/WFMModSettings"
-
   ChannelReport:
     description: Base channel report. Only the channel report corresponding to the channel specified in the channelType field is or should be present.
     discriminator: channelType
diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html
index 28f056d63..de02f6952 100644
--- a/swagger/sdrangel/code/html2/index.html
+++ b/swagger/sdrangel/code/html2/index.html
@@ -1770,7 +1770,7 @@ margin-bottom: 20px;
       "description" : "Channel type ID in short form from object name"
     },
     "config" : {
-      "$ref" : "#/definitions/ChannelSettings_2"
+      "$ref" : "#/definitions/ChannelSettings"
     }
   },
   "description" : "Represents a Preset::ChannelConfig object"
@@ -1958,92 +1958,6 @@ margin-bottom: 20px;
     }
   },
   "description" : "Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present."
-};
-            defs.ChannelSettings_2 = {
-  "required" : [ "channelType", "direction" ],
-  "discriminator" : "channelType",
-  "properties" : {
-    "channelType" : {
-      "type" : "string",
-      "description" : "Channel type code"
-    },
-    "direction" : {
-      "type" : "integer",
-      "description" : "0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)"
-    },
-    "originatorDeviceSetIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the device set index from where the message comes from."
-    },
-    "originatorChannelIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the channel index from where the message comes from."
-    },
-    "AMDemodSettings" : {
-      "$ref" : "#/definitions/AMDemodSettings"
-    },
-    "AMModSettings" : {
-      "$ref" : "#/definitions/AMModSettings"
-    },
-    "ATVModSettings" : {
-      "$ref" : "#/definitions/ATVModSettings"
-    },
-    "BFMDemodSettings" : {
-      "$ref" : "#/definitions/BFMDemodSettings"
-    },
-    "DSDDemodSettings" : {
-      "$ref" : "#/definitions/DSDDemodSettings"
-    },
-    "FileSourceSettings" : {
-      "$ref" : "#/definitions/FileSourceSettings"
-    },
-    "FreeDVDemodSettings" : {
-      "$ref" : "#/definitions/FreeDVDemodSettings"
-    },
-    "FreeDVModSettings" : {
-      "$ref" : "#/definitions/FreeDVModSettings"
-    },
-    "FreqTrackerSettings" : {
-      "$ref" : "#/definitions/FreqTrackerSettings"
-    },
-    "NFMDemodSettings" : {
-      "$ref" : "#/definitions/NFMDemodSettings"
-    },
-    "NFMModSettings" : {
-      "$ref" : "#/definitions/NFMModSettings"
-    },
-    "LocalSinkSettings" : {
-      "$ref" : "#/definitions/LocalSinkSettings"
-    },
-    "LocalSourceSettings" : {
-      "$ref" : "#/definitions/LocalSourceSettings"
-    },
-    "RemoteSinkSettings" : {
-      "$ref" : "#/definitions/RemoteSinkSettings"
-    },
-    "RemoteSourceSettings" : {
-      "$ref" : "#/definitions/RemoteSourceSettings"
-    },
-    "SSBModSettings" : {
-      "$ref" : "#/definitions/SSBModSettings"
-    },
-    "SSBDemodSettings" : {
-      "$ref" : "#/definitions/SSBDemodSettings"
-    },
-    "UDPSourceSettings" : {
-      "$ref" : "#/definitions/UDPSourceSettings"
-    },
-    "UDPSinkSettings" : {
-      "$ref" : "#/definitions/UDPSinkSettings"
-    },
-    "WFMDemodSettings" : {
-      "$ref" : "#/definitions/WFMDemodSettings"
-    },
-    "WFMModSettings" : {
-      "$ref" : "#/definitions/WFMModSettings"
-    }
-  },
-  "description" : "Base channel settings. Only the channel settings corresponding to the channel specified in the channelType field is or should be present."
 };
             defs.ChannelsDetail = {
   "required" : [ "channelcount" ],
@@ -2297,7 +2211,7 @@ margin-bottom: 20px;
       "type" : "integer"
     },
     "config" : {
-      "$ref" : "#/definitions/DeviceSettings_2"
+      "$ref" : "#/definitions/DeviceSettings"
     }
   },
   "description" : "Represents a Preset::DeviceConfig object"
@@ -2566,112 +2480,6 @@ margin-bottom: 20px;
     }
   },
   "description" : "Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present."
-};
-            defs.DeviceSettings_2 = {
-  "required" : [ "deviceHwType", "direction" ],
-  "discriminator" : "deviceHwType",
-  "properties" : {
-    "deviceHwType" : {
-      "type" : "string",
-      "description" : "Device hardware type code"
-    },
-    "direction" : {
-      "type" : "integer",
-      "description" : "0 for Rx only, 1 for Tx only or 2 for any number and direction (default 0)"
-    },
-    "originatorIndex" : {
-      "type" : "integer",
-      "description" : "Optional for reverse API. This is the device set index from where the message comes from."
-    },
-    "airspySettings" : {
-      "$ref" : "#/definitions/AirspySettings"
-    },
-    "airspyHFSettings" : {
-      "$ref" : "#/definitions/AirspyHFSettings"
-    },
-    "bladeRF1InputSettings" : {
-      "$ref" : "#/definitions/BladeRF1InputSettings"
-    },
-    "bladeRF2InputSettings" : {
-      "$ref" : "#/definitions/BladeRF2InputSettings"
-    },
-    "bladeRF1OutputSettings" : {
-      "$ref" : "#/definitions/BladeRF1OutputSettings"
-    },
-    "bladeRF2OutputSettings" : {
-      "$ref" : "#/definitions/BladeRF2OutputSettings"
-    },
-    "fcdProSettings" : {
-      "$ref" : "#/definitions/FCDProSettings"
-    },
-    "fcdProPlusSettings" : {
-      "$ref" : "#/definitions/FCDProPlusSettings"
-    },
-    "fileInputSettings" : {
-      "$ref" : "#/definitions/FileInputSettings"
-    },
-    "hackRFInputSettings" : {
-      "$ref" : "#/definitions/HackRFInputSettings"
-    },
-    "hackRFOutputSettings" : {
-      "$ref" : "#/definitions/HackRFOutputSettings"
-    },
-    "kiwiSDRSettings" : {
-      "$ref" : "#/definitions/KiwiSDRSettings"
-    },
-    "limeSdrInputSettings" : {
-      "$ref" : "#/definitions/LimeSdrInputSettings"
-    },
-    "limeSdrOutputSettings" : {
-      "$ref" : "#/definitions/LimeSdrOutputSettings"
-    },
-    "localInputSettings" : {
-      "$ref" : "#/definitions/LocalInputSettings"
-    },
-    "localOutputSettings" : {
-      "$ref" : "#/definitions/LocalOutputSettings"
-    },
-    "perseusSettings" : {
-      "$ref" : "#/definitions/PerseusSettings"
-    },
-    "plutoSdrInputSettings" : {
-      "$ref" : "#/definitions/PlutoSdrInputSettings"
-    },
-    "plutoSdrOutputSettings" : {
-      "$ref" : "#/definitions/PlutoSdrOutputSettings"
-    },
-    "rtlSdrSettings" : {
-      "$ref" : "#/definitions/RtlSdrSettings"
-    },
-    "remoteOutputSettings" : {
-      "$ref" : "#/definitions/RemoteOutputSettings"
-    },
-    "remoteInputSettings" : {
-      "$ref" : "#/definitions/RemoteInputSettings"
-    },
-    "sdrPlaySettings" : {
-      "$ref" : "#/definitions/SDRPlaySettings"
-    },
-    "soapySDRInputSettings" : {
-      "$ref" : "#/definitions/SoapySDRInputSettings"
-    },
-    "soapySDROutputSettings" : {
-      "$ref" : "#/definitions/SoapySDROutputSettings"
-    },
-    "testSourceSettings" : {
-      "$ref" : "#/definitions/TestSourceSettings"
-    },
-    "testMISettings" : {
-      "$ref" : "#/definitions/TestMISettings"
-    },
-    "xtrxInputSettings" : {
-      "$ref" : "#/definitions/XtrxInputSettings"
-    },
-    "xtrxOutputSettings" : {
-      "$ref" : "#/definitions/XtrxOutputSettings"
-    }
-  },
-  "description" : "Base device settings. Only the device settings corresponding to the device specified in the deviceHwType field is or should be present."
 };
             defs.DeviceState = {
   "required" : [ "state" ],
@@ -27161,7 +26969,7 @@ except ApiException as e:
           
           
             
-              Generated 2019-07-31T18:41:04.524+02:00
+              Generated 2019-07-31T22:38:42.618+02:00
             
            
       
diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelConfig.cpp b/swagger/sdrangel/code/qt5/client/SWGChannelConfig.cpp
index eab913ee3..9f34d4b98 100644
--- a/swagger/sdrangel/code/qt5/client/SWGChannelConfig.cpp
+++ b/swagger/sdrangel/code/qt5/client/SWGChannelConfig.cpp
@@ -46,7 +46,7 @@ SWGChannelConfig::init() {
     m_channel_id_uri_isSet = false;
     channel_id = new QString("");
     m_channel_id_isSet = false;
-    config = new SWGChannelSettings_2();
+    config = new SWGChannelSettings();
     m_config_isSet = false;
 }
 
@@ -78,7 +78,7 @@ SWGChannelConfig::fromJsonObject(QJsonObject &pJson) {
     
     ::SWGSDRangel::setValue(&channel_id, pJson["channelId"], "QString", "QString");
     
-    ::SWGSDRangel::setValue(&config, pJson["config"], "SWGChannelSettings_2", "SWGChannelSettings_2");
+    ::SWGSDRangel::setValue(&config, pJson["config"], "SWGChannelSettings", "SWGChannelSettings");
     
 }
 
@@ -103,7 +103,7 @@ SWGChannelConfig::asJsonObject() {
         toJsonValue(QString("channelId"), channel_id, obj, QString("QString"));
     }
     if((config != nullptr) && (config->isSet())){
-        toJsonValue(QString("config"), config, obj, QString("SWGChannelSettings_2"));
+        toJsonValue(QString("config"), config, obj, QString("SWGChannelSettings"));
     }
 
     return obj;
@@ -129,12 +129,12 @@ SWGChannelConfig::setChannelId(QString* channel_id) {
     this->m_channel_id_isSet = true;
 }
 
-SWGChannelSettings_2*
+SWGChannelSettings*
 SWGChannelConfig::getConfig() {
     return config;
 }
 void
-SWGChannelConfig::setConfig(SWGChannelSettings_2* config) {
+SWGChannelConfig::setConfig(SWGChannelSettings* config) {
     this->config = config;
     this->m_config_isSet = true;
 }
diff --git a/swagger/sdrangel/code/qt5/client/SWGChannelConfig.h b/swagger/sdrangel/code/qt5/client/SWGChannelConfig.h
index 983f371c4..0fe9e1635 100644
--- a/swagger/sdrangel/code/qt5/client/SWGChannelConfig.h
+++ b/swagger/sdrangel/code/qt5/client/SWGChannelConfig.h
@@ -22,7 +22,7 @@
 #include 
 
 
-#include "SWGChannelSettings_2.h"
+#include "SWGChannelSettings.h"
 #include 
 
 #include "SWGObject.h"
@@ -49,8 +49,8 @@ public:
     QString* getChannelId();
     void setChannelId(QString* channel_id);
 
-    SWGChannelSettings_2* getConfig();
-    void setConfig(SWGChannelSettings_2* config);
+    SWGChannelSettings* getConfig();
+    void setConfig(SWGChannelSettings* config);
 
 
     virtual bool isSet() override;
@@ -62,7 +62,7 @@ private:
     QString* channel_id;
     bool m_channel_id_isSet;
 
-    SWGChannelSettings_2* config;
+    SWGChannelSettings* config;
     bool m_config_isSet;
 
 };
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.cpp b/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.cpp
index 44e6f07c0..1aff8eed8 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.cpp
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.cpp
@@ -50,7 +50,7 @@ SWGDeviceConfig::init() {
     m_device_serial_isSet = false;
     device_sequence = 0;
     m_device_sequence_isSet = false;
-    config = new SWGDeviceSettings_2();
+    config = new SWGDeviceSettings();
     m_config_isSet = false;
 }
 
@@ -85,7 +85,7 @@ SWGDeviceConfig::fromJsonObject(QJsonObject &pJson) {
     
     ::SWGSDRangel::setValue(&device_sequence, pJson["deviceSequence"], "qint32", "");
     
-    ::SWGSDRangel::setValue(&config, pJson["config"], "SWGDeviceSettings_2", "SWGDeviceSettings_2");
+    ::SWGSDRangel::setValue(&config, pJson["config"], "SWGDeviceSettings", "SWGDeviceSettings");
     
 }
 
@@ -113,7 +113,7 @@ SWGDeviceConfig::asJsonObject() {
         obj->insert("deviceSequence", QJsonValue(device_sequence));
     }
     if((config != nullptr) && (config->isSet())){
-        toJsonValue(QString("config"), config, obj, QString("SWGDeviceSettings_2"));
+        toJsonValue(QString("config"), config, obj, QString("SWGDeviceSettings"));
     }
 
     return obj;
@@ -149,12 +149,12 @@ SWGDeviceConfig::setDeviceSequence(qint32 device_sequence) {
     this->m_device_sequence_isSet = true;
 }
 
-SWGDeviceSettings_2*
+SWGDeviceSettings*
 SWGDeviceConfig::getConfig() {
     return config;
 }
 void
-SWGDeviceConfig::setConfig(SWGDeviceSettings_2* config) {
+SWGDeviceConfig::setConfig(SWGDeviceSettings* config) {
     this->config = config;
     this->m_config_isSet = true;
 }
diff --git a/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.h b/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.h
index 885024976..24b7a0b89 100644
--- a/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.h
+++ b/swagger/sdrangel/code/qt5/client/SWGDeviceConfig.h
@@ -22,7 +22,7 @@
 #include 
 
 
-#include "SWGDeviceSettings_2.h"
+#include "SWGDeviceSettings.h"
 #include 
 
 #include "SWGObject.h"
@@ -52,8 +52,8 @@ public:
     qint32 getDeviceSequence();
     void setDeviceSequence(qint32 device_sequence);
 
-    SWGDeviceSettings_2* getConfig();
-    void setConfig(SWGDeviceSettings_2* config);
+    SWGDeviceSettings* getConfig();
+    void setConfig(SWGDeviceSettings* config);
 
 
     virtual bool isSet() override;
@@ -68,7 +68,7 @@ private:
     qint32 device_sequence;
     bool m_device_sequence_isSet;
 
-    SWGDeviceSettings_2* config;
+    SWGDeviceSettings* config;
     bool m_config_isSet;
 
 };
diff --git a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h
index be347ceaa..01b3f1305 100644
--- a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h
+++ b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h
@@ -46,7 +46,6 @@
 #include "SWGChannelListItem.h"
 #include "SWGChannelReport.h"
 #include "SWGChannelSettings.h"
-#include "SWGChannelSettings_2.h"
 #include "SWGChannelsDetail.h"
 #include "SWGCommand.h"
 #include "SWGComplex.h"
@@ -60,7 +59,6 @@
 #include "SWGDeviceSet.h"
 #include "SWGDeviceSetList.h"
 #include "SWGDeviceSettings.h"
-#include "SWGDeviceSettings_2.h"
 #include "SWGDeviceState.h"
 #include "SWGErrorResponse.h"
 #include "SWGFCDProPlusSettings.h"
@@ -262,9 +260,6 @@ namespace SWGSDRangel {
     if(QString("SWGChannelSettings").compare(type) == 0) {
       return new SWGChannelSettings();
     }
-    if(QString("SWGChannelSettings_2").compare(type) == 0) {
-      return new SWGChannelSettings_2();
-    }
     if(QString("SWGChannelsDetail").compare(type) == 0) {
       return new SWGChannelsDetail();
     }
@@ -304,9 +299,6 @@ namespace SWGSDRangel {
     if(QString("SWGDeviceSettings").compare(type) == 0) {
       return new SWGDeviceSettings();
     }
-    if(QString("SWGDeviceSettings_2").compare(type) == 0) {
-      return new SWGDeviceSettings_2();
-    }
     if(QString("SWGDeviceState").compare(type) == 0) {
       return new SWGDeviceState();
     }