Basic Throttle limits in Arduino Software to fix brownouts


As talked about in this weeks Dev call, I made a basic throttling method in the Arduino code that limits the PWM range of each thruster so it doesn't brown out. So just using really really rudimentary open loop control to stop brown outs of the beagle bone.

the variable throttleThrow sets how much the thrusters can go from neutral. Right now its set to 40, because in our bench tests, a single thruster running at pwm values of 130 or 50 drew about 4 A (using 8x NiMH batterys with a nominal pack voltage of 9.6 V).

Attached is the OpenROV.ino file; just replace the existing OpenROV.ino file with this one and you can load it into the arduino!

Have fun with it! Ill be working on improving it :D

1701-OpenROV.ino (1.95 KB)


I can not get this to work in both directions for the motor/prop and have tried burning the chip twice. Did you have this working? For me it only limits the speed in one direction.



I have not tried Colin's arduino fix, but instead used the mod to the javascript code Stefan's change to ArduinoPhysics.js) and was OK with that:



I've taken another approach which is to slow down how fast adjustments to speed on the ESC are applied so that we remove the potential huge AMP draw spike from going 0 to 60 all at one time. Works very well on my ROV.

Patched OpenROV.ino


Thanks I switched to it this weekend and used it to power my OpenRov in our pond under the ice. It works a lot better with Stefans code.