No reverse throttle with Cytron MDDS30 in skid steering

Hello,

Configuration : Holybro mini Pixhawk4,
ChibiOS: 6a85082c
ArduRover V4.5.7 (52bed8d5)

Motors : 24V 250W wheelchair DC motors (13.4 amps)

Motor driver : Cytron SmartDriveDuo-30 (MDDS30)
Config of motor driver : rc mode, independent motors left/right

Pixhawk main outputs 1 and 3 are connected to Cytron right/left rc inputs

On my radio tx, throttle goes from 982 us to 2008 us (mid point is 1500 us)

On mission planner I configured MOT_PWM_TYPE = 0 (normal mode)

On mission planner, servo 1 (output 1) and servo 2 (output 2) are showing 1500 us when my throttle stick is down (sending 982 us to pixhawk)

and when throttle stick is to the max (sendgin 2000 us to pixhawk), servo1 & servo 2 are showing 2000 us.
Sans titre 1

So I get only forward throttle on the motor from zero to max speed, but no reverse.

I do not undertsand why servo1 and servo2 output between 1500 and 2000 us instead of outputting from 1000us to 2000us ?

ANy help welcome !

as I understood you have bidirectional motors with zero thrust at around 1500 PWM.
Try to use MOT_PWM_TYPE = 4 (BrushedBiPolar)

Not with that driver. It is set up to accept RC PWM, so setting any brushed motor output is not likely to help.

I have a feeling this is related to RC trim. Post those parameters or share a param file.

Or just set RC3_TRIM,1500 and give it a go.

On his picture above is RC trim is set to 1543.
isn’t it for a normal mode PWM throttle Ardupilot takes RC trim as zero throttle an so is not going below?
He can try to set RC trim to around 1000 than the the ESC might work but Ardupilot will missinterpret the zero throttle value

That’s servo trim. But it’s a common mistake to miscalibrate the throttle RC channel, which results in this behavior.

If you want reverse, the throttle channel needs to have a trim point in the middle. Zero throttle should be full reverse. Mid throttle should be stopped. Full throttle should be full forward.

Oh yes, sorry, you are right.

Solution : set RC3_TRIM to 1500
So now when throttle is fully down (ch3 in at min value) at 988us then Pixhawk send 988us to the cytron motor driver (full speed reverse motor spin direction) and when throttle is fully up (ch3 in at max value) at 2011 us the PIxhawk sends 2011us to the cytron motor driver (full speed forward motor spin direction).

So it works now as intended. However what I do not understand is why during the radio calibration, mission planner did not set the middle point correctly. It has set the max (2011us) and minimun (988us) coorectly but it had also set wrongly the mid point to the minimum value (988us) instead of the middle point value (1500us).

Is this a bug in the radio calibration routine of mission planner?

In the meantime I would suggest adding an important note in the wiki for ardurover motor setup ( Motor and Servo Configuration — Rover documentation) to set and check manually in the full parameters list the RC3_TRIM value and set it to the mid point of the throttle curve.

(especially that this issue of not being able to reverse direction in ardurover is a recurring question asked on many forums for many years now. So this point is obviously not clear for most people…)

Thanks Yuri for your help

Is this a bug in the radio calibration routine of mission planner?

No. Trim is set at the end of the routine when you click done. If the sticks aren’t centered, you get what you get.

@Eosbandi, should we include some verbiage to that effect on the calibration tab of MP?

You didn’t follow the wiki instruction:

  • A window will appear with the prompt, “Ensure all your sticks are centered and throttle is down and click ok to continue”. Move the throttle to the center and press “OK”.