playing with two of these servos. My first experiment was
to use one of the servos to control another, using one servo
as a master (input) device (https://www.youtube
.com/watch?v=D4wpZDJpL04). It’s simply reading the
master input sensor and driving the slave servo until the
sensor values match.
The only “gotcha” is moving across the zero position,
when sensor values suddenly jump from low to high, or vice
versa. Haven’t we all gotten “bit” by a byte variable
incrementing from 255 to 0?
I chose a classic Boe-Bot for my testbed, replacing the
stock CR servos with Feedback 360s. The BoE (Board of
Education) has a heavy-duty 5V regulator, servo connectors,
breadboard area, and my favorite: a three-position switch
which lets me power the board only, without the servos.
Hard to appreciate that until you have a robot drive off your
table in the middle of programming it! Note that you won’t
get any position feedback from the servo unless it’s
There’s a good chance that some of you might have a
Boe-Bot laying around. Consider upgrading to these servos.
If you’ve moved beyond the BS2, consider an electronic
brain transplant, as there’s a lot of great hardware (and
proud history) in the Boe-Bot. Parallax also sells an Arduino
version, so there truly is something for everyone.
I swapped out the BS2 to use a tiny PICAXE 08M2
which is also programmed in BASIC, but has ADCs, multiple
frequencies, and a few other handy hardware tricks built in.
I wasn’t sure what I might do or need with this new servo.
Using PULSIN to read the encoder signal interferes with
the PICAXE built-in SERVO commands, so it was back to
driving the servos with individual PULSOUTs. I like the
transparency of such BASIC code. I think it serves to
illustrate exactly what’s going on without relying on hidden
This servo needs 6V or more for proper function; don’t
bother with 5V. I used the standard Boe-Bot 4xAA cell
supply, which worked fine. Per Figure 11, there’s a nice
wide dead band around 1.5 ms — perfect for reliable
stopping. This is a vast improvement over analog servos,
which must be adjusted (a.k.a., nulled) for zero speed at
1.5 ms, and often require re-tweaking when something
mysterious changes: voltage, temperature, or even the wind
Actually, Parallax forumista PhiPi did notice that this
new servo’s signal output did vary slightly with
temperature. PhiPi also noted that this servo is extra picky
about input control pulse timing. A casual “PAUSE 20”
between pulses may be good enough for other servos, but
not this one. You need to reduce that pause slightly to
account for the pulse duration.
There’s an ongoing discussion on this fairly new
product at http://forums.parallax.com/discussion/
167298/new-parallax-360-feedback-servo, so check there
for the latest tips, tricks, and Parallax code.
It should be possible to manually push a robot in a
random path while recording the encoder output, then
have the robot retrace that route by playing it back from
memory. That’s a lot for my little PICAXE to do, but here’s
my first pass at it: https://www.youtube.com/watch?
It’s far from perfect, but you can see that it’s starting
to work, curving in the right places.
That’s all I had time for before going to press, but I’ll
keep working on it. I’ll update the description in that
placeholder video with further video experiments and BASIC
code. My code will also be at the article link.
So, that’s a wrap for December and 2017. Thanks for
your questions and attention throughout the year. Here’s
wishing everyone a happy holiday season and some quality
time with your family, friends, and projects. SV
SERVO 12.2017 13
Figure 11. Figure 10.