<!DOCTYPE module SYSTEM "module.dtd">

<module name="actuators_mkk_v2" dir="actuators" task="actuators">
  <doc>
    <description>
      Actuators Driver for Mikrokopter V2 ESC

      required xml configuration:
      - configuration section (number of motors and addresses)
      - servo section with driver="Mkk_v2"
      - command_laws section to map motor_mixing commands to servos (max command = 255)
    </description>
    <configure name="ACTUATORS_MKK_V2_I2C_DEV" value="i2cX" description="I2C port (default i2c1)"/>
    <configure name="ACTUATORS_MKK_V2_I2C_SCL_TIME" value="150" description="configurable I2C timing on lpc21 boards (150 is default, use 50 for 8 motors)"/>
    <define name="I2C_TRANSACTION_QUEUE_LEN" value="8" description="I2C queue length, default is 8, increase to 10 or more for 8 motors"/>
    <section name="ACTUATORS_MKK_V2" prefix="ACTUATORS_MKK_V2_">
      <define name="NB" value="4" description="number of motors"/>
      <define name="ADDR" value="{ 0x52, 0x54, 0x56, 0x58 }" description="array of I2C addresses"/>
    </section>
  </doc>
  <header>
    <file name="actuators_mkk_v2.h" dir="subsystems/actuators"/>
  </header>
  <makefile target="ap">
    <configure name="ACTUATORS_MKK_V2_I2C_DEV" default="i2c1" case="upper|lower"/>
    <configure name="ACTUATORS_MKK_V2_I2C_SCL_TIME" default="150"/>
    <define name="ACTUATORS"/>
    <define name="ACTUATORS_MKK_V2_I2C_DEV" value="$(ACTUATORS_MKK_V2_I2C_DEV_LOWER)"/>
    <define name="USE_$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)"/>
    <define name="$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)_SCLL" value="$(ACTUATORS_MKK_V2_I2C_SCL_TIME)" cond="ifeq ($(ARCH), lpc21)"/>
    <define name="$(ACTUATORS_MKK_V2_I2C_DEV_UPPER)_SCLH" value="$(ACTUATORS_MKK_V2_I2C_SCL_TIME)" cond="ifeq ($(ARCH), lpc21)"/>
    <file name="actuators_mkk_v2.c" dir="subsystems/actuators"/>
  </makefile>
  <makefile target="nps">
    <define name="USE_I2C0"/>
    <define name="ACTUATORS_MKK_V2_I2C_DEV" value="i2c0"/>
    <file name="actuators_mkk_v2.c" dir="subsystems/actuators"/>
  </makefile>
</module>

