0
\$\begingroup\$

TL;DR: Where exactly did the Hexy guys connect the feedback cable?

I would like to:

  1. Remove the 180° limitation of those servos. Did that with an instructables tutorial (TL;DR: remove piece of plastic from gears and potentiometer to let it spin 360º).
  2. Read the actual position via some analog cue present in the servo board.

What I've tried is connecting a couple of pins from the servo's AA51880 to analog pins A0 and A1 of an arduino:

AA51880 chip view

Here's the result when plotting pins Rdb and Pot from AA51880:

nominal state plot

All screenshots are just with the default servo initialization as coded in johnny-five.io with Arduino's Firmata:

  var servo = new five.Servo({
    pin: 9,
    startAt: 90
  });

No sweeps nor movements are coded to drive this servo.

Then, when I perturb the servo manually, the servo spins a few times on its own (presumably the AA51880 correcting position) and the readings look like this:

enter image description here

And this in a different timepoint and position:

enter image description here

I also get spurious, uncontrolled spins of the motor when not actuating it at all. Is it possible I'm injecting noise to the board? Should I add a pullup resistor somewhere in my setup?

servo servo_board_back servo_board_front

The question is, given the above readings, is there are way to reliably read the voltage/position of those cheap servos using the arduino ADCs while removing the 180° limitation?

\$\endgroup\$
  • \$\begingroup\$ You are asking us to read three links, one of which is a six-page Instructables tutorial. That's a big ask. \$\endgroup\$ – Transistor Sep 17 '16 at 8:09
  • \$\begingroup\$ Gotcha, TL;DR on the instructables: Remove a piece of plastic in the gears and another piece of plastic/metal in the servo potentiometer to let it spin freely. Works? ;) \$\endgroup\$ – brainstorm Sep 17 '16 at 8:11
1
\$\begingroup\$

We attach the analog feedback wire directly to the middle pin on the potentiometer. This does mean that you need to watch out for the impedance of the reading input - we usually use an opamp voltage-follower to mitigate this.

\$\endgroup\$
  • \$\begingroup\$ Thanks a lot ArcBotics, I ended up adding a simple SMD NPN J3Y and the plots look much better now... although they still need some signal smoothing with some caps and software, but I can take it from there. Thanks again ArcBotics! ;) \$\endgroup\$ – brainstorm Sep 28 '16 at 19:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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