I am attempting a pass-through control mixer running on FMU with Simple Mixers on the PX4IO to map to the correct output pins. I am using actuator_controls_1 to pass these messages.
The problem is PX4 expects NANs on motor channels to send the correct “disarm PWM”. I cannot write NANs to the controls channels on the FMU side - they are coming out as “0.0f” on the PX4IO side - which results in a PWM of 1500us.
The behavior between the FMU mixer and the IO mixers do not match in this case - NANs are passed to the FMU mixer unaffected and send disarm values correctly.
I proposed that we encode a NAN as INT16_MAX, since the controls values are constraint to -1.0 to +1.0 and scaled by 10000 before getting cast to ints.
This way NANs still get passed on control channels and the FMU/PX4IO mixers behave the same.