Motor output limits resets on reboot

Hello, I have a problem with an airboat :
I can limit the output value in the servo tab (or in the servox_max/min param), and it will stay and work as configured until reboot. However the limits are reset to 1000-2000 on functions 73 and 74 (throttle left/right) after any reboot (soft and hard). I have tried with 2 protocols (pwm and dshot) and the results are the same.

I have also try the throttle max param, which limit the throttle, but not the steering commands (which are linked on a skid rover /air boat)

The system runs very good once outputs are limited, but for now I have to set output limits at every start up.
Do you have any ideas ? should I open a bug report ?
thank you
Alex

@JaKoB-FR,

This is probably being caused by the DShot library which thinks that some outputs are being used for DShot for some reason.

If you can provide an onboard log we can probably see why it is trying to use DShot for some outputs.

You might also try using the latest beta to see if the problem has been resolved because we have improved DShot support in 4.2.

By the way, we’ve recently improved our DShot and BLHeli documentation here.

Thank you for considering my question and for your answer.
I have temporary moved the controller to another project and will note be able to test the beta (and logs were disabled).
I will test and give a feedback once back to this project.

@rmackay9
I got back on that project and update to rover 4.2.0 released recently.
I am facing the same issue, however I think it may be linked to the servo_blh_3Dmask parameter that I use to have reverse. Without this parameter enabled, pwm limits are saved between reboots, while they are reset on reboots if the parameter is enabled.

Documentation says :
Currently, only BLHeli32 and BLHeli_S capable reversible DShot ESCs are supported. In order to use one, the output which drives it must be designated with the appropriate bit in the SERVO_BLH_3DMASK bitmask parameter. This will map the outputs 1000-1500-2000 values to the correct digital values for the ESC to provide FullReverse-Idle-FullForward range operation, respectively.

Unfortunatly I am still not able to transmit a log.

Hi @JaKoB-FR,

So I guess you are using BLHeli servos for the left and right throttle? If “yes” then it is the “correct” behaviour that the SERVOx_MIN/TRIM/MAX are set to 1000/1500/2000 respectively. “correct” is in quotes because this behaviour is intentional and how the system was designed to work.

So that we better understand the issue and to possibly help us provide an alternative solution can you explain why you don’t want to use the full range of motors? If the issue is that the vehicle is accelerating or turning too quickly in any mode except Manual then there are numerous parameters to adjust this.

Hi @rmackay9 ,

Yes I am using blheli ESCs as left and right throttle. And yes I am also looking to limit their power because the vehicle is accelerating and turning too quickly. In fact the motors+props are far too powerfull for the vehicle, and I am trying to solve an hardware issue with software … which is clearly not a good engineering practice !

However I have followed the first steps of the tuning guide, and also has set the throttle max parameter, which limits the “forward” outputs, but not the “steering” ones.
After some tuning (and setting manually the min max outputs at every boot) it works pretty well.

enclosed a picture of the build (a playmobil boat and half a 3’’ quad) :