Throttle not working in ArduRover 3.2.3 and 3.3.0-rc1

Thank you to all the contributors to this very fine open source project!

I have the problem below with ArduRover 3.3.0-rc1, 3.2.3, but NOT with 2.5.0.

I am building a rover with skid-steer steering (converting a zero-turn lawn mower to autonomous). I am having trouble with the throttle function in ArduRover on a Pixhawk on the main vehicle. I took the control system into my electronics shop and connected small servos to PWM outputs 1 and 3.

I have SERVO1_FUNCTION = 26 and SERVO3_FUNCTION = 70. The steering action appears to be fine on servo1, but I have no throttle action at all on servo3. I have also set SERVO1_FUNCTION = 73 and SERVO3_FUNCTION = 74 and then see no movement of either servo. It is as if a safety interlock is keeping the throttle from operating.

I am operating in Manual mode so there should be no dependence on the GPS.

I know that the RC transmitter, Pixhawk output and the servo operate fine because I can set SERVO3_FUNCTION to RCIN3 (53 I think is the value) and I get good movement of the servo as I move RC channel 3.

I have set PILOT_STEER_TYPE to 0 and 1.

These videos show the problem:
ArduRover 3.3.0-rc1:
ArduRover 2.5.0:
Driving the rover in manual mode with 2.5.0:

I am a complete newby to ArduPilot, but very experienced with control systems and embedded systems.

Any help appreciated! I see videos of others’ rovers operating with the newer versions, so I am sure I have made a mistake somewhere!!


For Skid Steer Setup
You can do something like this

Servo 1 should be 73 - Throttle left.
Servo 2 should be 7-Throttle right.

You have to arm the rover first when the APM first turns on. What autopilot are you using ? Navio? Cube ?

Aww, man! That was it! I did not know (although I see it plainly now in the docs) that with the newer versions one has to arm (as the default) for manual to work! Wow… so easy and makes so much sense! Well, many hours later chasing the problem…it is working! Along the way, I learned a lot, such as how to install Ubuntu under Windows 10, install the pixhawk toolchain and get the development environment working. I have compiled and loaded the firmware. That was a huge thing and will be useful in the future, perhaps! Thank you so much for you help!

1 Like


Glad you got it working. We’re making a lot of improvements in the Rover/Boat firmware recently. An autonomous mower is a really good use case so please don’t hesitate to ask for help or new features that you need.

1 Like

I think I am having a similar problem with channel 1& 3 versus 1&2 on a skid steer.
I have Rover 3.4 and a Sabertooth 2x60 running 24vdc gearmotors. I am adding a Pixhawk and in the docs i see use ch 1&3 .

"Skid Steering
For “Skid steering” vehicles (like R2D2) these parameters values will need to be set:

SERVO1_FUNCTION = 73 (Throttle Left)
SERVO3_FUNCTION = 74 (Throttle Right)"

Before,when it was it was manual …I used 2 for fwd and reverse and 1 for left & right

Now my left stick acts like throttle and right stick left and right works (wrong), but fwd and back does not do anything
Can I have it the way it was?
my radiolink at10 is ch1 Aileron ch2 Elv ch3 Throttle ch 4 Rudder.
Seems like an easy fix ,but i can’t see it…
Seems like the transmitter is mapped wrong for Mission Planner directions quoted above?
Thanks for all your help …this is a learning experience but ,I love it…

I remember having trouble very similar to what you describe when I first set up my zero turn mower. Do you have PILOT_STEER_TYPE set to 0? I can’t remember for sure, but I think that may have been what I had wrong. I am not driving my rover like a tank, with two sticks. I am driving it with the left stick being throttle and the right being the steering. If that is what you want to do, set PILOT_STEER_TYPE to 0.

Kenny: Thanks for the reply. When I built this mower 4 years ago I set it up with right stick controls everything . With a saber tooth the right stick is ALL you need. the right stick goes forward …the rover goes forward ,the more you push the faster it goes. …pull right stick back …the same but reverse.
move right stick left for left turn and right for right turn…you just need the right stick.
I have MP set PILOT_STEER_TYPE set to 0 and what I have is what you explained you are using.
I would like to have ch2 do forward and rev and ch1 do left-right.I know it is a simple fix.

The definition of " tank steering "is what throws me off. I assumed it to mean SKID or differential control steering ,but I think tank steering in MP means you have two sticks that controls like a tank( I never drove a tank)or an old dozer…where you have a STICK in each hand.I am used to using right stick for ALL
i.e. a joystick like modern heavy equipment use.
Thanks again Kenny.
Doug Wright


The confusion may be coming from mixing up inputs vs outputs.

The documentation you’ve copy-pasted about setting “SERVO1_FUNCTION = 73 (throttle left)” and “SERVO3_FUNCTION = 73 (throttle right)” is re the outputs from the flight controller which are then connected to the ESCs/Motors.

It definitely sounds like you want to keep PILOT_STEER_TYPE to 0 like most people.

If you want to change which transmitter/receiver inputs to the flight controller are used for steering and throttle then the RCMAP parameters can be used to change this from the defaults of channel 1 and 3.


Thank you Randy. You are absolutely correct. I made those changes and had to tweek my TRX and reverse some channels but it now work as I am use to . I am learning something every day.What a wonderful job you guys have done …Thank you

1 Like

I’ll have to experiment with the single stick setup to see if I like it.

I am not sure if my single stick is going to work out. When i go to AUTO the rover spins to the left and CRASHES::cry:

The method of driving in manual or any of the operator controlled modes such as steering or acro has no effect in auto. The sticks do nothing. It sounds like the PID control might be driving a servo the wrong way. I wonder if SERVO1_REVERSED or SERVO3_REVERSED needs to be changed. I believe I had to do that but may be wrong. I can check later. You may have to reverse an rc input channel to make the manual control work if you reverse a servo.

But, I have had the same behavior if I don’t give the AHRS time to settle before trying auto. Also, way too large settings of tuning parameters will cause wild behavior.

If you upload a dataflash log, someone here can probably tell precisely what is going on.

1 Like

@dwright361 I just looked at my parameters. I have SERVO1_REVERSED=1 and SERVO3_REVERSED=1 and I have RC1_REVERSED=0 and RC3_REVERSED=1.Of course the RC values are for the throttle (left stick vertical) and steering (right stick horizontal) which I am using for steering. Since you are using different inputs, you would play with the ones you are using if necessary. On the SERVO settings, I am using linear actuators which extend to cause each wheel to spin in reverse. Your method of actuating the wheels may be different so your SERVO settings may be different.

And I could be way off base on this being your problem! Keep on trying!

Thanks Kenny: I will try those parameters and see what happens. Thanks for your foresight

I reversed SERVO1 and now it spins Right inAUTO

my data flash download has 450 files Which are needed?

There is only one dataflash file created each time the software runs. The file dates are not meaningful, on my system at least, but the filenames include a number that increments, so you can know which is the most recent.

If possible, it’s best to use the Mission Planner’s motor output tester to ensure the wheels are spinning in the correct direction. it’s described a bit on the wiki here.

I did not know about that. There is so much goodness in all this software!

Kenny my DF logs are 0kb, What is the file ext needed to diag these problems?
When opened the MP says…
" Log browser will not function without FMT messages in your log.These appear to be missing from your Log"