Hi Px4 community,
I am currently trying to add a custom payload mixer into Px4. My goal is to control a set of 6 servo motors that close/open and load/unload the payload into the drone with some logic added to it. They are connected to MAIN PWM output(the one from the PX4_IO MCU) and the Drone Motors ESCs to the AUX(or FMU PWM outputs). I want to be able to perform some actions with the servos while the drone is not armed .
My Airframe file looks like this:
Multirotor mixer for PX4FMU
===========================
R: 4+ 10000 10000 10000 0
# Description
#M: <control count>
#S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
# Payload mixer for last two channels
-----------------------------------------------------
# Payload Gate Right-Lift
M: 1
S: 6 1 10000 10000 0 -10000 10000
# Payload Gate Left-Lift
M: 1
S: 6 2 10000 10000 0 -10000 10000
# Payload Gate Right-Lock
M: 1
S: 6 3 10000 10000 0 -10000 10000
# Payload Gate Left-Lock
M: 1
S: 6 4 10000 10000 0 -10000 10000
I followed the manual https://dev.px4.cc/master/en/concept/custom_mixer_payload.html.
For testing I created a simple app that publishes to the actuactor_controls_6.
Anyway on the mavlink inspector I only see PWM changes when in armed state.
Here is the listener output:
pxh> listener actuator_controls_6
TOPIC: actuator_controls_6
actuator_controls_s
timestamp: 81176000 (142.648000 seconds ago)
timestamp_sample: 0 (81176000 us before timestamp)
control: [-0.5000, -0.5000, -0.3000, -1.0000, 0.0000, 0.0000, 0.0000, 0.0000]
and here the uORB status
pxh> uorb status
TOPIC NAME INST #SUB #Q SIZE PRIO PATH
actuator_armed 0 7 1 24 75 /obj/actuator_armed0
actuator_controls_0 0 9 1 48 75 /obj/actuator_controls_00
actuator_controls_6 0 1 1 48 75 /obj/actuator_controls_60
actuator_outputs 0 5 1 80 75 /obj/actuator_outputs0
So my question is how to control the servos when disarmed ?