<?xml version='1.0' encoding='UTF-8'?>
<parameters>
  <version>3</version>
  <group name="UAVCAN Motor Parameters" no_code_generation="true">
    <parameter default="75" name="ctl_bw" type="INT32">
      <short_desc>Speed controller bandwidth</short_desc>
      <long_desc>Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.</long_desc>
      <unit>Hertz</unit>
      <min>10</min>
      <max>250</max>
    </parameter>
    <parameter default="1" name="ctl_dir" type="INT32">
      <short_desc>Reverse direction</short_desc>
      <long_desc>Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.</long_desc>
      <min>0</min>
      <max>1</max>
    </parameter>
    <parameter default="1" name="ctl_gain" type="FLOAT">
      <short_desc>Speed (RPM) controller gain</short_desc>
      <long_desc>Speed (RPM) controller gain. Determines controller
            aggressiveness; units are amp-seconds per radian. Systems with
            higher rotational inertia (large props) will need gain increased;
            systems with low rotational inertia (small props) may need gain
            decreased. Higher values result in faster response, but may result
            in oscillation and excessive overshoot. Lower values result in a
            slower, smoother response.</long_desc>
      <unit>amp-seconds per radian</unit>
      <decimal>3</decimal>
      <min>0.00</min>
      <max>1.00</max>
    </parameter>
    <parameter default="3.5" name="ctl_hz_idle" type="FLOAT">
      <short_desc>Idle speed (e Hz)</short_desc>
      <long_desc>Idle speed (e Hz)</long_desc>
      <unit>Hertz</unit>
      <decimal>3</decimal>
      <min>0.0</min>
      <max>100.0</max>
    </parameter>
    <parameter default="25" name="ctl_start_rate" type="INT32">
      <short_desc>Spin-up rate (e Hz/s)</short_desc>
      <long_desc>Spin-up rate (e Hz/s)</long_desc>
      <unit>Hz/s</unit>
      <min>5</min>
      <max>1000</max>
    </parameter>
    <parameter default="0" name="esc_index" type="INT32">
      <short_desc>Index of this ESC in throttle command messages.</short_desc>
      <long_desc>Index of this ESC in throttle command messages.</long_desc>
      <unit>Index</unit>
      <min>0</min>
      <max>15</max>
    </parameter>
    <parameter default="20034" name="id_ext_status" type="INT32">
      <short_desc>Extended status ID</short_desc>
      <long_desc>Extended status ID</long_desc>
      <min>1</min>
      <max>1000000</max>
    </parameter>
    <parameter default="50000" name="int_ext_status" type="INT32">
      <short_desc>Extended status interval (µs)</short_desc>
      <long_desc>Extended status interval (µs)</long_desc>
      <unit>µs</unit>
      <min>0</min>
      <max>1000000</max>
    </parameter>
    <parameter default="50000" name="int_status" type="INT32">
      <short_desc>ESC status interval (µs)</short_desc>
      <long_desc>ESC status interval (µs)</long_desc>
      <unit>µs</unit>
      <max>1000000</max>
    </parameter>
    <parameter default="12" name="mot_i_max" type="FLOAT">
      <short_desc>Motor current limit in amps</short_desc>
      <long_desc>Motor current limit in amps. This determines the maximum
            current controller setpoint, as well as the maximum allowable
            current setpoint slew rate. This value should generally be set to
            the continuous current rating listed in the motor’s specification
            sheet, or set equal to the motor’s specified continuous power
            divided by the motor voltage limit.</long_desc>
      <unit>Amps</unit>
      <decimal>3</decimal>
      <min>1</min>
      <max>80</max>
    </parameter>
    <parameter default="2300" name="mot_kv" type="INT32">
      <short_desc>Motor Kv in RPM per volt</short_desc>
      <long_desc>Motor Kv in RPM per volt. This can be taken from the motor’s
            specification sheet; accuracy will help control performance but
            some deviation from the specified value is acceptable.</long_desc>
      <unit>RPM/v</unit>
      <min>0</min>
      <max>4000</max>
    </parameter>
      <parameter default="0.0" name="mot_ls" type="FLOAT">
      <short_desc>READ ONLY: Motor inductance in henries.</short_desc>
      <long_desc>READ ONLY: Motor inductance in henries. This is measured on start-up.</long_desc>
      <unit>henries</unit>
      <decimal>3</decimal>
    </parameter>
    <parameter default="14" name="mot_num_poles" type="INT32">
      <short_desc>Number of motor poles.</short_desc>
      <long_desc>Number of motor poles. Used to convert mechanical speeds to
            electrical speeds. This number should be taken from the motor’s
            specification sheet.</long_desc>
      <unit>Poles</unit>
      <min>2</min>
      <max>40</max>
    </parameter>
    <parameter default="0.0" name="mot_rs" type="FLOAT">
      <short_desc>READ ONLY: Motor resistance in ohms</short_desc>
      <long_desc>READ ONLY: Motor resistance in ohms. This is measured on start-up. When
            tuning a new motor, check that this value is approximately equal
            to the value shown in the motor’s specification sheet.</long_desc>
      <unit>Ohms</unit>
      <decimal>3</decimal>
    </parameter>
    <parameter default="0.5" name="mot_v_accel" type="FLOAT">
      <short_desc>Acceleration limit (V)</short_desc>
      <long_desc>Acceleration limit (V)</long_desc>
      <unit>Volts</unit>
      <decimal>3</decimal>
      <min>0.01</min>
      <max>1.00</max>
    </parameter>
    <parameter default="14.8" name="mot_v_max" type="FLOAT">
      <short_desc>Motor voltage limit in volts</short_desc>
      <long_desc>Motor voltage limit in volts. The current controller’s
            commanded voltage will never exceed this value. Note that this may
            safely be above the nominal voltage of the motor; to determine the
            actual motor voltage limit, divide the motor’s rated power by the
            motor current limit.</long_desc>
      <unit>Volts</unit>
      <decimal>3</decimal>
      <min>0</min>
    </parameter>
  </group>
</parameters>