Hi all,
I'm trying to get my tricopter to run on paparazzi. Therefore, I've adapted the CDW tricopter airframe file and changed the motor control from MKK to PWM, as I want test the rig for the instance without the I2C control option. Motors control works well, however I am struggling with the tail servo. It just doesn't work on paparazzi when connected via the autopilot, directly connected to the PWM of the RC receiver it works perfectly fine.
I attached the complete airframe XML, however the airframe file includes the following sections, important for PWM control:
<airframe name="KroozSD Tricopter">
<firmware name="rotorcraft">
.....
<subsystem name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="SERVO10"/> <!-- -->
</subsystem>
<subsystem name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
</subsystem>
......
</firmware>
<servos driver="Pwm">
<servo name="TAIL" no="5" min="1000" neutral="1500" max="2000"/>
<servo name="BACK" no="2" min="988" neutral="1000" max="2012"/>
<servo name="FRONTRIGHT" no="1" min="988" neutral="1000" max="2012"/>
<servo name="FRONTLEFT" no="0" min="988" neutral="1000" max="2012"/>
</servos>
<commands>
<axis name="PITCH" failsafe_value="0"/>
<axis name="ROLL" failsafe_value="0"/>
<axis name="YAW" failsafe_value="0"/>
<axis name="THRUST" failsafe_value="0"/>
</commands>
<command_laws>
<call fun="motor_mixing_run(autopilot_motors_on,FALSE,values)"/>
<set servo="FRONTLEFT" value="motor_mixing.commands[0]"/>
<set servo="FRONTRIGHT" value="motor_mixing.commands[1]"/>
<set servo="BACK" value="motor_mixing.commands[2]"/>
<set servo="TAIL" value="@YAW"/>
</command_laws>
<rc_commands>
<set command="YAW" value="@YAW"/>
</rc_commands>
.....
</airframe>
The radio XML looks as follows:
<radio name="FrSky X9D + X8R receiver 12ch SBus connection" data_min="900" data_max="2100" sync_min ="5000" sync_max ="28000" pulse_type="POSITIVE">
<channel ctl="A" function="THROTTLE" min="998" neutral="998" max="2011" average="0"/>
<channel ctl="B" function="YAW" min="990" neutral="1500" max="2011" average="0"/>
....
<channel ctl="gain1" function="XKILL" min="2050" neutral="1496" max="948" average="1"/>
....
</radio>
What am I missing here?
Thanks for your help, guys, I really appreciate your support !
Pascal