Custom Frame - Connecting two add_motors_raw to the same engine

ArduSub is set up for servo-style PWM-based control of bi-directional thrusters (which proportionally controls the thrust) and peripherals (to directly control servo angle, light level, etc). Stepper motors are generally controlled with individual pulses that command incremental ‘step’ motions, which is not compatible with servo-style control. I expect it would be quite unusual to have a stepper motor with servo control unless that’s something you’ve purchased intentionally or set up yourself.

Can you provide a clear description of the actuators in your system? If your vehicle is mostly controlled with thrusters, with a single stepper motor for buoyancy then you may be able to work around that by using an Arduino board or microcontroller in between the Pixhawk and that motor’s controller to allow controlling it via a servo signal, but if you have multiple stepper motors and/or are using control surfaces instead of thrusters then you’ll likely need to do considerable modifications of ArduSub to get it working for you, and there isn’t documentation or a guide on how to meaningfully do so - it may be easier to just create a controller from scratch on an Arduino.

You don’t - those are descriptions of the signals that are output, depending on the commands that are sent to the flight controller.

As an example, for a thruster that is configured with a 1.0 forward thrust factor and 0.0 for the other motion directions, a full forwards command would set the output for that thruster to a 1900µs pulse-duration PWM signal. A full reverse command would set the output for that thruster to 1100µs pulses. A neutral/stopped command would set the output to 1500µs. Commands in between stopped and full forwards would set the output thrust somewhere between 1500µs and 1900µs, and similarly for between stopped and full reverse.

It’s possible to use vehicle parameters to restrict the pulse-duration ranges (e.g. you could make full forwards 1700 and full reverse 1300), but the control is PWM-based - i.e. pulses that are sent at regular intervals (200Hz by default, so one pulse every 5 milliseconds). The only way to change that is to either configure the output as not a motor (and then not be able to use ArduSub’s attitude and position controllers), or rewrite ArduSub to use a different form of control (which on a Pixhawk may only be possible on AUX pins, since the MAIN pins are from a PWM controller).