SM-S4303R Continuous Rotation Servo not working properly

I had one SM-S4303R Continuous Rotation Servo (https://www.robot-r-us.com/vmchk/motor-robot-servo/src-sm-s4303r-continuous-rotation-servo.html) at first it used to work fine with direct 5V from the arduino. but yesterday it was not spinning at all. i opened it and connected 5V and ground the the internal motor and the motor was working fine! so i thought maybe the driver is dead or something. so i bought another one and the same thing is happening with the new one. am i doing something wrong in the wiring?

it has 1White, 1Red and 1Black female header.

  • i tried with red to arduino 5V, Black to GND and white to arduino pin 9(using servo.write() to write values)
  • i tried with red and black to Vout and GND of a 250mah 9V Ni-MH battery and white to arduino pin 9(using servo.write() to write values)
  • tried making the ground of arduino and servo same(i dont know why it helps but some people it helps somehow)
  • tried adjusting the middlepoint with a constant value 75 in arduino Servo.write()[code below]

is there anything i'm missing or should try?

#include <Servo.h>

Servo gg;
void setup() {
  gg.attach(9);
  Serial.begin(9600);
}

void loop() {
  gg.write(75);
}

Don't try to power any servo or motor from the Arduino 5v pin - it cannot supply enough current and the high current draw can cause the Arduino to reset - and may damage the Arduino. Give your servo a separate power supply with a common GND with the Arduino. You could test things with a pack of 3 or 4 AA Alkaline cells for servo power.

...R

I've already tried that(i've even listed what i've tried in the post :). Didn't work. Anything else i should try?

You've tried it with the Arduino 5V pin. You've tried it with a tiny NiMH battery which sounds like one of the PP3 replacement types. They will rarely drive motors unless they are newly charged and then only for a short while.

How about trying it with 3 or 4 AA cells as suggested? And you definitely need the servo ground/battery negative connected to the Arduino ground...otherwise the control signal has no reference.

Steve