I’m having a problem translating several inputs to servo PWM outputs the way I want. For one project, there’s RCIN PWM signal which has min/max values of 1000 and 2000 which I want to convert to higher PWM outputs, say 2200 as a maximum. However, I was not able to do so with both RCx_MIN, RCx_MAX and SERVOx_MIN, SERVOx_MAX.
For a second project, I’d like to have one motor to have a higher PWM minimum, as it doesn’t rotate at lower PWMs due to some internal resistance. It’s not a good idea to fix broken motors this way, but I’d still like to be able to do so.
Being able to limit and trim servo outputs feels like basic functionality, but it’s missing for me.
The flight controller I’m using for both projects is SpeedyBee F405 V3.
Thanks! I did manage to solve the motor issue simply by calibrating the ESC.
What I was looking for is having different MIN MAX when SERVOx function is RCINx. It seems that, for that function, RCIN PWM is passed directly to servos without any adjustment.
I use it for a VTX module that adjusts power based on PWM.
Set the SERVOx_FUNCTION for the output you want to the RCINx channel you want to control it from.
Ex) This will control Servo Channel 9 from RC Channel 8.
You can use Passthru also then Output Chan = Input Chan.
For anyone in the future with this problem:
I was just searching for a solution to the same issue and found this thread. I, too, didn’t understand why the Min and Max values were not obeyed. I am using RCIN4 to control SERVO4. I had SERVO4_FUNCTION=58 (RCIN8). RCIN8 did control SERVO4, but SERVO4_MIN and SERVO4_MAX had no bearing on SERVO4’s output. Then I read the documentation and discovered that what I wanted was RCIN8Scaled (SERVO4_FUNCTION=147). Now SERVO4 Max is obeyed and the Trim value acts as a minimum which will work for me.