Hi Rik,
Great progress! I’m glad the dedicated px4_fmu-v6c_rover.px4 firmware resolved the airframe issue and that your rover is now moving.
Thanks for sharing the configuration and videos.
I would check a few things before considering the actuator configuration complete.
1. Steering output assignment
Your current assignment is:
The first two assignments are consistent with your intention to use a common throttle command for both motors.
However, I would change M4 from RC Yaw to the dedicated rover Steering actuator function, if available in your PX4 rover configuration.
RC Yaw is an RC passthrough function, whereas the rover steering actuator is intended to receive commands from the Ackermann control architecture. This distinction matters particularly if you later use other supported drive modes.
2. Red indicator in QGroundControl
I would not assume the red indicator is harmless simply because the rover moves.
Could you share a close-up screenshot showing the exact red indicator and any associated warning or tooltip?
We should determine whether it represents an unassigned actuator, incomplete configuration, output state or another warning before changing additional parameters.
3. Disarmed PWM values
You have set:
PWM_MAIN_DIS2=1500
PWM_MAIN_DIS3=1500
PWM_MAIN_DIS4=1500
For bidirectional ESCs, 1500 µs may be the neutral command, but this must be confirmed against the Fire Phoenix ESC specifications.
For the steering servo, 1500 µs is a common centre position.
With the wheels safely raised and the system disarmed, verify that neither drive motor rotates and that the steering servo stays in a safe neutral position.
Also verify the ESC behaviour during RC signal loss and PX4 failsafe activation.
4. Output reversal
Your current PWM_MAIN_REV=4 should also be checked.
This parameter is a bitmask, not an individual PWM channel number. A value of 4 corresponds to bit 2, normally affecting the third output channel (M3), not M4.
Please confirm that the resulting motor and steering directions are correct.
5. Difference between left and right motor speeds
A slight speed difference is quite possible when using two brushed DC motors with separate ESCs in open-loop control.
Even if PX4 sends the same throttle command to both ESCs, the actual speeds can differ due to:
-
ESC neutral/deadband calibration
-
Motor manufacturing tolerances
-
Gearbox friction
-
Battery voltage and wiring losses
-
Different mechanical loads
I suggest first confirming that M2 and M3 receive identical PWM commands for the same throttle input.
Then, with the wheels raised, compare the motor behaviour at low, medium and higher throttle settings. Start at low throttle and keep the tests brief.
If possible, measure the motor speeds using the Hall encoders. This would tell us whether the difference comes from the command signals or the motor/ESC response.
An important distinction: Sending identical throttle commands to two ESCs does not provide closed-loop speed synchronization.
If matched wheel speeds become important, encoder-based speed feedback and an appropriate controller would be the next development stage.
For now, I would prioritize:
-
Correcting and validating the steering function.
-
Identifying the red actuator warning.
-
Verifying disarmed, neutral and failsafe behaviour.
-
Checking whether M2 and M3 receive identical throttle commands.
You have already achieved a useful first milestone. Once these checks are complete, we can move toward a more reliable and reproducible rover configuration.
Well done on getting the system running!