Subsystem/actuators
This subsystem only needs be explicitly specified for rotorcrafts where there are several different actuators implementations and you have to add the correct one depending on the ESCs you use.
Currently possible actuators subsystems are
- mkk
- asctec
- asctec_v2
- pwm_supervision
- skiron
- heli
MKK
Mikrokopter ESCs
File: conf/airframes/myplane.xml |
<firmware name="rotorcraft">
...
<subsystem name="actuators" type="mkk">
<configure name="MKK_I2C_SCL_TIME" value="50"/> <!-- only LPC21xx, optional, 150 is default, use 50 for 8 motors-->
</subsystem>
<define name="I2C_TRANSACTION_QUEUE_LEN" value="10"/> <!-- default is 8, increase to 10 or more for 8 motors-->
</firmware>
|
- MKK_I2C_SCL_TIME is specific to LPC21x based boards (e.g. booz) and has no effect for STM32 based boards (e.g. Lisa/M/L)
XML configuration
required defines in section ACTUATORS_MKK:
- NB: number of motors
- ADDR: the I2C addresses of your motors
File: conf/airframes/myplane.xml |
<section name="ACTUATORS_MKK" prefix="ACTUATORS_MKK_">
<define name="NB" value="4"/>
<define name="ADDR" value="{ 0x52, 0x54, 0x56, 0x58 }"/>
</section>
|
The order of addresses in the list defines the numbering of motors! Warn on this during motor mixing!
You also need the matching Motor Mixing section. MKK specific values for SUPERVISION defines:
- STOP_MOTOR : 0, optional, as the default is already 0
- MIN_MOTOR : 3
- MAX_MOTOR : 200
Asctec v1
These controllers already to the mixing themselves, so the Motor Mixing section section is not needed.
File: conf/airframes/myplane.xml |
<firmware name="rotorcraft">
...
<subsystem name="actuators" type="asctec"/>
</firmware>
|
Asctec v2
File: conf/airframes/myplane.xml |
<firmware name="rotorcraft">
...
<subsystem name="actuators" type="asctec_v2"/>
</firmware>
|
XML configuration
You need the matching Motor Mixing section.
PWM Supervision
Only for stm32 based autopilot boards (eg. Lisa/M, Lisa/L)
File: conf/airframes/myplane.xml |
<firmware name="rotorcraft">
...
<subsystem name="actuators" type="pwm_supervison">
<define name="SERVO_HZ" value="400"/>
</subsystem>
</firmware>
|
The define SERVO_HZ sets a higher update frequency for the pwm controllers which is needed for good response times.
XML configuration
File: conf/airframes/myplane.xml |
<servos min="0" neutral="0" max="0xff">
<servo name="FRONT" no="0" min="1000" neutral="1000" max="2000"/>
<servo name="BACK" no="1" min="1000" neutral="1000" max="2000"/>
<servo name="LEFT" no="2" min="1000" neutral="1000" max="2000"/>
<servo name="RIGHT" no="3" min="1000" neutral="1000" max="2000"/>
</servos>
|
You also need the matching Motor Mixing section. Example PWM specific values for SUPERVISION defines:
- STOP_MOTOR : 800
- MIN_MOTOR : 1000
- MAX_MOTOR : 2000