Limiting Current on T200 Thrusters

Hi all,

I’ve read a few threads on this topic and want to confirm I’ve understood things correctly.

I’m supervising a group of students who are building an ROV, and they are limited to a 12V 25A power supply (supplying power to the ROV through a tether). Their design has 6 x T200 thrusters, connected through Basic ESCs to a Navigator board (with Rasp Pi etc), and they only want the motors using a max of 18A total current.

Obviously the T200 thrusters could draw much more than the available current, so the students have been looking at how to limit the current usage of the thrusters to suit.

My understanding from looking at previous discussion threads is that this can be done through changing one of the Autopilot Parameters in BlueOS - the [MOT_BAT_CURR_MAX] parameter.

Is this correct? If so, should the number entered for this parameter be the maximum current they want for all motors added together (i.e. 18A)? Or should this be the max current they want for each motor (i.e. 3A)?

I also saw some comments about limiting current by restricting the PWM frequency range that can be used for each motor. i.e. Using the performance details on the T200 thruster product page on the BR website suggests that if the min PWM value was 1300, the max current at 12V would be 3.3A (and likewise with max PWM value at 1700). I assume these min and max PWM values would then be entered into BlueOS Vehicle Setup page under the PWM Outputs tab for each individual motor.

Are both these methods correct, and if so, is one better than the other? Or other there any other factors to consider in order to restrict the current for the motors?

Thanks!
Andy

Hi @amurray -
Using both approaches to limit current is your best bet. The MOT_BAT_CURR_MAX parameter is for the total current, so you would want to set that to 18. Because this can have a delay in response, and still allow for large current spikes, limiting the max/pin PWM for each thruster (servo#_max / min) is also a good idea, as you mention. Testing and reducing those further may be a good idea! You can also lower the gain of the system to lower than 50% to reduce the max power output.

There will be significant voltage drop moving power at only 12V - you’ll want to use as much copper as possible to do so, or increase the voltage if allowable - I believe ~14V is acceptable? This calculator can be handy.

1 Like

ArduSub currently ignores SERVOn_MIN/MAX parameters for outputs assigned as motors, so you’ll need to use the MOT_PWM_MIN/MAX parameters instead, which apply to all motor outputs (instead of having individual control).

If more power is drawn than the power system can provide the control electronics may experience a brownout event and reboot the vehicle or autopilot, and the resulting loss of control can be problematic. Accordingly, there’s a tradeoff between guaranteed safety and allowing maximum performance (especially where it’s known that not all motors will be run at high thrust levels simultaneously).

There are some different ways of managing that tradeoff, because global limiting has some leeway with specified latency (using MOT_BAT_CURR_TC), whereas limiting motors directly limits maximum thrust. It is seemingly[1] also possible to reduce the likelihood of current spikes by limiting the motor slew rate, but doing so may add some additional latency / sluggishness to the responsiveness of vehicle controls.


  1. The parameter exists, but I’m not sure we’ve tried it, so it’s possible it doesn’t work properly for Sub. ↩︎

2 Likes

Thanks @tony-white and @EliotBR for your responses. We have adjusted the parameters accordingly!

1 Like