Arduino, Victor 883 controller, and a 24V motor

Hello all!

I am building a very simple mini autonomous cart using Max Sonar Ultrasonic sensors, a SparkFun RedBoard (same as Uno), two Victor 883 ESCs, and two 24V 500W brush motors. For proof-of-concept, I am working with just a RedBoard, one Victor and one motor.

I am using the Servo library. I have calibrated the Victor for 0=full reverse, 90=neutral (actually 91-97), and 180+=full forward via myservo.write(). I have tried myservo.writeMicroseconds(), as well, finding 1000=full reverse, 1500=neutral, 2000+=full forward. Both work the same, I go with just myservo.write().

My issue is that I cannot get my motor to go slowly enough. At myservo.write(98) (slowest foward speed), the rpm is still too high. It is the same for myservo.writeMicroseconds(1545), the slowest for that function. Would like to pulse my servo like tapping an accelerator… but delay() isn’t helping me out.

Here is my code and attached is my diagram.

#include <Servo.h>

Servo VictorLeft;

void setup() {


/*For Victor calibration only. Hold CAL button on Victor. Upload code. Continue to hold CAL until LED flashes red-green. Release CAL.
Serial.println(“Maximum position…”);
VictorLeft.write(180); // maximum position
delay(2000); // wait 2 seconds

Serial.println(“Minimum position…”);
VictorLeft.write(0); // minimum position
delay(2000); // wait 2 seconds

Serial.println(“Neutral position…”);
VictorLeft.write(90); // “neutral”/“middle” position

void loop() { // MAIN CODE START


//CCW = 0-90, neutral = 91-97, slow CW = 98-180+


My Victor ESC:

I figured it out!

I pulse between slow and neutral, using different delay intervals and ratio between each interval! Example…

myservo.write(90); //slowest forward
myservo.write(95); //neutral