0
\$\begingroup\$

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, not like on on the picture by link from above, which also has usual connector. Particular device look like this:

enter image description here

For example if I have some limit for server, E-Flite makes unexpected 360 turns against command value, which operates is in limited 0-160 degree range. if I move E-Flite fast, start behave this way. I'm not sure how to limit such servo in certain range in case if it must be inside some passable where such freedom will go against physical limit for example

I have cut off this connector, to change it on usual size, 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) pin (9), but I can't turn this servo same way as other servos with using of Arduino Uno, loaded code and C# from desktop control

The motor behaved strangely, this unexpected movement occurs without any command from loaded code or control application:

  1. Makes very slow sequence of gear steps about 30 degree range, then stops
  2. Makes one fast movement 0 to 360 and back to 0
  3. Makes sequence of fast movement 0 to 360 and back to 0
  4. Sometimes does not reacts to command from application
  5. Sometimes stops to move until restart the controller
  6. Produces buzzing noise without moving

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

I don't know if behavior of servo comes from the fact that I've cut the wires and put usual size plug without using of adapter like this one E-Flite EFLRA100 Jst-zhr 1.5mm to Universal Adapter

Here is a code, which works without problem with two other regular servos (except some noise):

I'm using Adruino Uno and Due to control 2 servos from C# desktop application, this way:

myport.WriteLine("9");
myport.WriteLine(trackBar1.Value.ToString());

and loaded code:

#include <Servo.h>
Servo servo1;
Servo servo2;
int val;

void setup() {
    Serial.begin(9600);
    servo1.attach(9); 
    servo2.attach(11);
}

void loop() { 
  val = Serial.parseInt();
  if(val == 9){
    servo1.write(Serial.parseInt());
  }
  else if(val == 11){
    servo2.write(Serial.parseInt());
  }
}

Any advice, guide or example would be helpful

\$\endgroup\$

closed as off-topic by Chris Stratton, Dmitry Grigoryev, Finbarr, Elliot Alderson, Sparky256 Oct 12 '18 at 5:35

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions on the use of electronic devices are off-topic as this site is intended specifically for questions on electronics design." – Chris Stratton, Dmitry Grigoryev, Finbarr, Elliot Alderson, Sparky256
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ What code are you running. If it's not working, it's either hardware or software. Rule out software. \$\endgroup\$ – Scott Seidman Oct 5 '18 at 14:57
  • \$\begingroup\$ @Scott Seidman Hello, code added. Work with other servos fine \$\endgroup\$ – werty Oct 5 '18 at 19:49
  • \$\begingroup\$ You should probably Serial.print() the value decoded to make sure it's what you wanted, especially if typing by hand. \$\endgroup\$ – Chris Stratton Oct 5 '18 at 23:25
  • \$\begingroup\$ If you code runs fine with other motors, then either this one is defective, the pinout is wrong, or it's not the kind of servo you think it is. \$\endgroup\$ – Dmitry Grigoryev Oct 8 '18 at 6:48
1
\$\begingroup\$

I think it should be the layout indicated in the picture below.

But I can see in your picture, that your RED and BLACK wires are crossed! You have to remove that crossing first and then connect it according to the picture below.

enter image description here

\$\endgroup\$
  • \$\begingroup\$ that's right, I did exactly the same, but E-Flite servo, behaves strange, sometimes goes to angle by given degree, according to command, sometimes just not reacts, or makes fast turns 360 to 0 and back or several turns in one direction, without any command from loaded code or desktop. Seems like coreless type servo requires different setup, but I'm not sure how \$\endgroup\$ – werty Oct 5 '18 at 19:47
  • \$\begingroup\$ Could it be that your power supply is delivering too little instantaneous power to the servo? That is often a problem and can be solved with a big (like 100uF) capacitor across the servo supply pins. \$\endgroup\$ – Stefan Wyss Oct 5 '18 at 19:53
  • \$\begingroup\$ I'm powering 2 servos only with controller USB 5V, I know, I have to power servos separately with 5V 2Amp adapter. I don have one yet, but why other motors works without problems, which is less fast, but more powerful. Maybe digital coreless type servo requires some special setup and control? For example my usual servo 0-160 degree looks much wider then with E-Flite 0-160, and it make full turn 360 unlike other servos, also solenoid brake is not fixed after power turn off \$\endgroup\$ – werty Oct 5 '18 at 20:08

Not the answer you're looking for? Browse other questions tagged or ask your own question.