A motor connected to an ESC (both are from the original rover).
The motor’s power cables (two of them are connected to the ESC).
A servo for steering control (located underneath the black plate).
I have many questions as I’m starting this project:
Is it possible to use this ESC?
The rover is a Traxxas (I don’t remember the exact model). I understand that to build a vehicle with ArduPilot, all components must be compatible with MAVLink. Is that correct? I’m not sure if this ESC will work with MAVLink.
For controlling the servo and the speed controller, I understand they need to be connected to the FMU PWM output on the Pixhawk.
The problem is that I don’t have the separate adapter (in the Pixhawk 6C, the connector is not integrated). I live in Argentina, and the only option I’ve found is a cable kit that costs around $80 USD with shipping, which seems very expensive just for the adapter.
Is it possible to make one myself? Is there a wiring diagram I can follow?
This is the adapter I believe I need.
I don’t have much experience with building projects like this. There are many components I’m encountering for the first time, so I’d greatly appreciate it if you could explain things in the simplest way possible.
The ESC and steering servo should both just be PWM. So you should be able to connect them directly to the main output of the flight controller. You will probably need a different receiver and radio because I don’t think you can get the Traxxas radio to output a signal the Pixhawk can use.
Mavlink is for communication typically between the flight controller and the ground control. Components like ESCs don’t use Mavlink. They have their own protocols, but with the hardware you have that shouldn’t be a problem.
"I have a quadcopter drone built with a Holybro kit. The kit included a Pixhawk 6C. Basically, this is the connection I have to use the motors (I didn’t use servos, so the connection shown in the image is not included).
Since the Pixhawk doesn’t have PWM signal pins, I used the adapter shown in the image. Now, I want to build a rover and I already have the Pixhawk, but I don’t have the adapter. So, I wanted to know how I could make one or if the only way to get it is to buy it.
How did you connect the motors on the quad copter? Those outputs would have been PWM, or if they were Dshot it would have been through a path that can be re-configured to PWM.
The I/O PWM Out is pin out, it’s just that the physical layout isn’t the 3-pin dupont connector you’re looking for. If you used the adapter on the quad, it will work the same for the rover.
Edit:
If you have the wires, you could follow the pinout and make your own adapter. The servo would need 5v, gnd, and signal. The ESC likely only needs gnd and signal. You could test the ESC to see if it has a BEC that is providing the 5v feed back for the servo. I don’t think that servo rail supplies 5V, so you might need to take that from the ESC.
Just make sure you connect the ground from the PWM adapter to the servo and ESC. The grounds should all be the same, but this just ensures that so it all has the proper reference point.
In my case, the Traxxas ESC had two wires: one for power and another used to connect an optional cooler. The output was 5-6 V, so I directly connected it to the adapter. That worked fine for me. Now I can control the servo with an Xbox controller and Mission Planner. However, I don’t know how to set up the Traxxas ESC to work with ArduPilot. I don’t have the original controller, and I’m not sure if that’s a problem when calibrating or configuring the ESC.
This is my configuration: Servo 1 is the steering servo, and the ESC is in port 3.
I configurated the RCIN4 to work with that KEY but i´m not sure if it’s okay to set the function in Servo 3 to an RCINX because I want to make autonomous drives. So, I think it has to be set as Throttle, as specified in the Rover setup documentation. Will that be a problem?
I have this configuration but the throttle is too sensitive. I barely touch the buton and the motor goes very fast. I tried changing the min and max throttle. Also i set both parameters MOT_THR_MAX and SPPED_MAX and still going very fast.
Also i change the Cruise speed and throtle but nothin happens. Maybe is because the Servo3 function is directly the RCIN? How can i bind the RCIN to throtrle function?
You need to set up the output as throttle, not RC pass through. Throttle will only work when it is armed. All those other parameters (speed, throttle max, etc) will only work on the throttle.
If the motor is working when you connect it to RCIN4, but not throttle, then it suggests to me there’s a configuration issue. I just noticed you’re using RCIN4. Ardupilot defaults to the throttle on RC3. You can fix this by adjusting the RCMAP_THROTTLE to 4.
I set the Servo3 function config to de throttle, RCMAP_THROTTLE to 3 and arm the rover too. But still not working. In the joystick configuration section y see the RCIN3 change when I press the button (I configue from RCIN4 to RCIN3 for thothle keys). But in the servo output the Throttle still idle.
Joistick config: