GWS S35 servo will only turn CCW

I recently, purchase a GWS S35 continuous servo from pololu.com, and it will only turn Counter-Clockwise. I’ve tried both 0 and 180 with servo.write() and 1000us and 2000us with servo.writemicroseconds(). Neither of them produce clockwise rotation, only clock-clockwise. Can anyone help me with these problem?

Hello.

I am sorry that you are having trouble with your servo. Could you give us some more information about your setup? Information about your power supply, connections, and control board, along with some pictures of your setup, would help. Also, could you simplify your code down to the simplest possible program that should work but does not and post it here?

Do you have any other servos that you can test your setup with? If you have another continuous rotation servo, that would be best, but a regular servo can help diagnose some issues. Do you have an oscilloscope available that you would be able to measure the signal coming from the controller?

-Clint

I’m using a 6v power supply(4 AA batteries), an arduino UNO R3, and two GWS S35 servos purchased at Pololu.com. One of the GWS S35 functions perfectly. The code is based on the example code given for both servo.write() and servo.writeMicroseconds(). Here it is:

#include <Servo.h>

//  Motor Tests

//const int Objsensor = A3;
const int servOne = 9;
const int servTwo = 10;

const int RForward = 180;
const int RReverse = 0;
const int LForward = 0;
const int LReverse = 180;
const int Stop = 90;
const int LStop = 93;



//Testing the Motors


Servo servoLeft; 
Servo servoRight;


void setup(){
  pinMode(servOne,OUTPUT);
  pinMode(servTwo,OUTPUT);
  
  servoLeft.attach(servOne);
  servoRight.attach(servTwo);
  
}

void loop(){
  servoLeft.write(LForward);
  servoRight.write(RForward);
  
  // Delay for 2 seconds
  delay(2000);
  
  servoLeft.write(LStop);
  servoRight.write(Stop);
  delay(10000);
}

servoLeft – is the motor that only turns counter-clockwise.
I adjusted the LForward with values of 180-0 to test if the values were incorrect, but it still turned only in the counter-clockwise direction. I had to adjust the stop value to 93 for servoLeft for a complete stop.

Hello.

Just so I completely understand, are you saying that the bad servo will turn CCW if you do servoLeft.write(90) or servoLeft.write(96), but it stops if you do servoLeft.write(93)? If you switch the it so that the good servo is on pin 9 and the bad servo is on pin 10, does the problem follow the servo or the pin?

- Ben

Yes, it does, but servoLeft.write(93) stops it. I attached the servo to the opposite pin number, servoLeft was attached to pin number 10 and servoRight was attached to pin number 9. And again servoLeft only turned in a counter-clockwise direction.

Can you switch the pins the servos are connected to without actually changing the code? That way, if the problem follows the servo, you know for sure that the problem is with the servo. Otherwise, you still haven’t ruled out the (unlikely) possibility that there is a bug in your code.

If you’re convinced that the servo is bad, please email us with your order information and a link to this thread.

- Ben