Servo wiers connection layout E-flite Sub-Micro Digital Tail Servo

Hello,

I'm trying to figure out with E-flite 7.6g Sub-Micro Digital Tail Servo JST my particular one has 1.0mm to male JR connector, so need to be connected with some switch.

I have 2 other servos here, which wires layout is (-)(+)(s), but this E-flite servo turns GND wire to the center (+)(-)(s), not like on the picture by link from above, which also has usual connector. Particular device look like this:

I have cut off this connector, to change it on usual size with first layout, but I can't turn this servo same way as other servos with using of Arduino Uno, loaded code and C# from desktop control

My connection attempt:

** Black: (-)**
** Red: (+) **
** Orange: (Signal) pin (9)**

With this connection, the motor behaved strangely, makes one turn, then did not moves or moves very fast, then makes slow steps, clicks, noise, without any command, by itself.

Any advice, guide or example would be helpful

I would first try it with the IDE example Sweep or Knob sketches. Your first wiring scheme looks most likely.

But is also possible that the red/black are connected wrong internally which would make it red(-), black(+), orange (signal).

Steve

slipstick:
I would first try it with the IDE example Sweep or Knob sketches. Your first wiring scheme looks most likely.

But is also possible that the red/black are connected wrong internally which would make it red(-), black(+), orange (signal).

Steve

Hello, connector connection layout is (+)(-)(S) then I tuned it back to (-)(+)(S) pin (9), when I turned it on with basic control in loaded code, which works for all other servos from control application:

#include <Servo.h>
Servo myservo;
int val;

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

void loop() { 
   val = Serial.parseInt();
  if(val != 0){
    myservo.write(val);
       Serial.println(val);
  
     val=0;
  }
}

or any other code, without control application:

Motor behaves differently each time, all without any command:

Variant 1: Produces buzzing noise and don’t moves
Variant 2: Makes very slow sequence of gear steps about 30 degree range, then stops
Variant 3: Makes one fast movement 0 to 360 and back to 0
Variant 4: Makes sequence of fast movement 0 to 360 and back to 0
Variant 5: Does nothing

How do you power the servo.
Leo..

Your program is not waiting for Serial to have something to read before reading it, you need;

void loop() {
  if(Serial.available() > 0)
  {
     val = Serial.parseInt();
     if(val != 0){
      myservo.write(val);
         Serial.println(val);
  
       val=0;
  } 
  }
}

Try this test sketch:

/*
 Try this test sketch with the Servo library to see how your
 servo responds to different settings, type a position
 (0 to 180) or if you type a number greater than 200 it will be
 interpreted as microseconds(544 to 2400), in the top of serial
 monitor and hit [ENTER], start at 90 (or 1472) and work your
 way toward zero (544) 5 degrees (or 50 micros) at a time, then
 toward 180 (2400). 
*/
#include <Servo.h>
Servo servo;

void setup() {
  // initialize serial:
  Serial.begin(9600); //set serial monitor baud rate to match
  servo.write(90);
  servo.attach(9);
  prntIt();
}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int pos = Serial.parseInt();
    pos = constrain(pos, 0, 2400);
    servo.write(pos);
    prntIt();
  }
}
void prntIt()
{
  Serial.print("  degrees = "); 
  Serial.print(servo.read());
  Serial.print("\t");
  Serial.print("microseconds =  ");
  Serial.println(servo.readMicroseconds());
}

slipstick:
I would first try it with the IDE example Sweep or Knob sketches. Your first wiring scheme looks most likely.

But is also possible that the red/black are connected wrong internally which would make it red(-), black(+), orange (signal).

Steve

Hello,

I've checked all ways, nothing, moreover today the problem was revealed more difficult, seems like it is something else. Described in this question, please check How to check what is damaged in Arduino or Servos

outsider:
Your program is not waiting for Serial to have something to read before reading it, you need;

void loop() {

if(Serial.available() > 0)
  {
    val = Serial.parseInt();
    if(val != 0){
      myservo.write(val);
        Serial.println(val);
 
      val=0;
  }
  }
}

Hello,

Today I found that is something else in this problem. Described here, please check How to check what is damaged in Arduino or Servos

Wawa:
How do you power the servo.
Leo..

Hello,

I'm understand, that I have powered servos separately with 5V 2 Amp adapter in case of driver and amount, but it was ok for all this time to use 2 servos with 5V from controller with USB or 9V adapter to controller.

Seems like it is different problem, please check How to check what is damaged in Arduino or Servos

With regards to the wire identification, I just want to confirm that the JST servo plus has the wires in a different order than a typical servo plug.
See this adapter

adapter.jpg

vinceherman:
With regards to the wire identification, I just want to confirm that the JST servo plus has the wires in a different order than a typical servo plug.
See this adapter

adapter.jpg

Hello,

Exactly this way, I have replaced this connector with normal one, and yes it is different, wires from servo comes out same way as usually (-)(+)(S) but connector changes layout to (+)(-)(S), same way as this adapter, I return it to the original layout (-)(+)(S). So what you think, behavior of servo comes from the fact that I’ve cut the wires and put usual size plug without using of this adapter?

For example if I want some limit for servos, E-Flite makes unexpected 360 turns against command value, which operates in limited 0-160 degree range. if I move E-Flite fast with short movement , unexpectedly motor can make turn 360 degree 3 times, then continuous move by commands. I’m not sure how to limit such servo in certain range, in case if I want locate it inside assembly, where this freedom will go against physical limit

Yes JR type servos have the wires in a different order to most types .

Red +
Black -
Orange signal

If you wire the red /black the wrong way around , there is a chance you will damage it .