diff --git a/src/cfclient/ui/tabs/FlightTab.py b/src/cfclient/ui/tabs/FlightTab.py
index 9dc06b8a90a167e1f7ea8437da4ca2c2e91ccba6..492a815d0a44945aa814d0df32f9ea64f40afab6 100644
--- a/src/cfclient/ui/tabs/FlightTab.py
+++ b/src/cfclient/ui/tabs/FlightTab.py
@@ -619,10 +619,21 @@ class FlightTab(Tab, flight_tab_class):
 
         if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x09):
             heightHoldPossible = True
+            self.helper.inputDeviceReader.set_hover_max_height(1.0)
+
+        if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0E):
+            heightHoldPossible = True
+            self.helper.inputDeviceReader.set_hover_max_height(2.0)
 
         if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0A):
             heightHoldPossible = True
             hoverPossible = True
+            self.helper.inputDeviceReader.set_hover_max_height(1.0)
+        
+        if self.helper.cf.mem.ow_search(vid=0xBC, pid=0x0F):
+            heightHoldPossible = True
+            hoverPossible = True
+            self.helper.inputDeviceReader.set_hover_max_height(2.0)
 
         if not heightHoldPossible:
             self._assist_mode_combo.model().item(2).setEnabled(False)
diff --git a/src/cfclient/utils/input/__init__.py b/src/cfclient/utils/input/__init__.py
index 20e6a15c896368d28b97beb1701c9f153713d5cd..ec3d3299db36e1802e1cb311bbd18ed94b8baf16 100644
--- a/src/cfclient/utils/input/__init__.py
+++ b/src/cfclient/utils/input/__init__.py
@@ -97,6 +97,7 @@ class JoystickReader(object):
         self.thrust_slew_enabled = False
         self.thrust_slew_limit = 0
         self.has_pressure_sensor = False
+        self._hover_max_height = MAX_TARGET_HEIGHT
 
         self.max_rp_angle = 0
         self.max_yaw_rate = 0
@@ -187,6 +188,9 @@ class JoystickReader(object):
                 return d
         return None
 
+    def set_hover_max_height(self, height):
+        self._hover_max_height = height
+
     def set_alt_hold_available(self, available):
         """Set if altitude hold is available or not (depending on HW)"""
         self.has_pressure_sensor = available
@@ -458,8 +462,8 @@ class JoystickReader(object):
                     # Integrate velosity setpoint
                     self._target_height += vz * INPUT_READ_PERIOD
                     # Cap target height
-                    if self._target_height > MAX_TARGET_HEIGHT:
-                        self._target_height = MAX_TARGET_HEIGHT
+                    if self._target_height > self._hover_max_height:
+                        self._target_height = self._hover_max_height
                     if self._target_height < MIN_HOVER_HEIGHT:
                         self._target_height = MIN_HOVER_HEIGHT
 
@@ -495,8 +499,8 @@ class JoystickReader(object):
                         # Integrate velosity setpoint
                         self._target_height += vz * INPUT_READ_PERIOD
                         # Cap target height
-                        if self._target_height > MAX_TARGET_HEIGHT:
-                            self._target_height = MAX_TARGET_HEIGHT
+                        if self._target_height > self._hover_max_height:
+                            self._target_height = self._hover_max_height
                         if self._target_height < MIN_TARGET_HEIGHT:
                             self._target_height = MIN_TARGET_HEIGHT
                         self.heighthold_input_updated.call(roll, -pitch,