Parallax Feedback 360° High Speed Servo

$27.99 $25.19

Out of stock

Join the waitlist to be emailed when this product becomes available, or call 888-512-1024 to pre-order.

Product Description

The Parallax Feedback 360° High Speed Servo provides the functionality of a light-duty standard servo, continuous rotation servo, high-speed servo, and encoder in one convenient package. This is the servo on the ActivityBot 360° Robot.

Like most continuous rotation servos, the Feedback 360° is controlled by a 50 Hz pulse-width-modulation signal.  What sets it apart is a return signal line from an internal Hall effect sensor system that provides digital angular position feedback.

Utilizing this feedback signal, your application can cause the servo to turn to and hold any angle, much like a standard servo but with an unlimited range of motion.  Or, rotate the servo continuously at a controlled, verifiable speed—up to 120 RPM—as a robot drive motor.  Control signal response is nicely linear across the speed control range.


  • Bidirectional, continuous, feedback-controllable rotation from -120 to 120 RPM
  • PWM positional feedback across entire angular range
  • Internal Hall effect position sensor, which is not subject to wear or sensor deadband as are potentiometer-style feedback systems
  • No need to manually “center” the servo
  • 3-pin ground-power-signal cable plugs onto the Activity Board’s 3-pin header
  • Separate single wire with female connector supplies feedback to a separate I/O pin
  • Fits our Small Robot Wheel and Tire and Servo Wheels

Application Ideas:

  • Robot drive motors
  • Small-scale animatronics
  • Interactive artwork


  • RPM: +/-120 w/feedback control, 140 max (+/- 10) @ 6 V, no load
  • Gears: POM
  • Case: Nylon & fiberglass
  • Spline: 25-tooth, 5.96 mm OD
  • Peak stall torque @ 6 V: 2.2 kg-cm (30.5 oz-in)
  • Voltage requirements: 6 VDC typical, 5–8.4 VDC max range*
  • Current requirements: 15 mA (+/- 10) idle, 150 mA (+/- 40) no-load, 1200 mA stalled
  • Control signal: PWM,  3–5 V 50 Hz,  1280–1720 µs
  • Control signal zero-speed deadband:  1480–1520 µs (+/- 10)
  • Feedback sensor: Hall effect
  • Feedback signal: PWM, 3.3V,  910 Hz, 2.7–97.1% duty cycle
  • Product weight: 1.4 oz ( 40 g)
  • Cable length: ~ 9.8 in (250 mm)
  • Dimensions: approx. 2.15 x 1.46 x 0.79 in (50.4 x 37.2 x 20 mm)
  • Mounting hole spacing: 10 x 49.5 mm on center
  • Operating temperature range: 5 to 158 °F (-15 to +70 °C)

*5 VDC is absolute minimum required for no-load angular position control.  5.8 to 8 VDC is recommended for continuous rotation speed control.

Additional Information

Weight 0.095 lbs
Dimensions 1 × 1 × 1 in


Notify of
Newest Most Voted
Inline Feedbacks
View all comments

I’m using the Parallax Feedback 360 with a Raspberry Pi 4B. Connecting the control and feedback wires directly to GPIO pins on the Pi. The Red and Black wires are connected to an external +5VDC source (ground common with Pi ground). I’m trying to move the servo a small distance (<1/60th of a rotation), then measure the position via the feedback pulse. How few control pulses can I send to get minimal but consistent movement? It seems like when I send 1 pulse or 2 pulses the servo moves different amounts with different invocations.

Andy Lindsay (Parallax)

If you were using a Propeller Microcontroller like the Activity Board or FLiP, there are Propeller C with SimpleIDE control examples in this Feedback 360 Servo’s Downloads section. You can also program it with BlocklyProp; and info on the Feedback 360 blocks are in the Servo block reference. There are also many application examples with the ActivityBot robot -in both C and BlocklyProp.

About the Raspberry Pi, I haven’t been able to find anything that’s not a from-scratch coding approach. If you find something good, or develop and post it, please let us know. In the meantime, here are the details about what it would entail:

The feedback 360 servo is designed to be controlled through a control system. Every 50th of a second, a control pulse is sent. Each pulse has to last a certain duration to set the motor speed/direction. Between each control pulse, the feedback pulses from the servo are monitored to find motor angle. Then, control system calculations determine speed/direction adjustments for the next control pulse.

General info about Feedback 360 servo control from scratch with a microcontroller can be found on pages 2 through 7 of the Parallax Feedback 360° High-Speed Servo (#900-00360) PDF document. It’s part of the Parallax Feedback 360° High Speed Servo – downloads (see downloads tab). The coding approaches can probably be applied to the Pi as well. Here is a summary:

Microsecond level precision is needed for both control pulses and feedback pulses. Control pulses should have rising edges every 20,000 us, with durations ranging from 1275 us (full speed cw) to 1500 us (stop) to 1725 us (full speed ccw). Microsecond feedback pulse measurements have to be supplied to a duty cycle calculation of dc = tPulse / tCycle. In other words, the ratio of feedback pulse width to pulse period is what indicates the angle: from 0 at 2.9% to almost 360 at 97.1%.

The Propeller Microcontroller has libraries for this, and it can also be programmed to communicate serially with the Raspberry Pi over USB. More generally, pairing the Propeller with the Raspberry Pi works well because the Propeller provides precise signaling for motors and sensors and the Pi can be free to excel with its computing power. This in mind, another approach would be to use either BlocklyProp or SimpleIDE to set up servo control with a Propeller. Then add serial communication between the Pi and the Propeller. The Pi issues the orders, and the Propeller executes them.


Thanks for the reply. I’m coding from scratch directly with C++ from the GPIO pins on the Raspberry Pi 4B, using the BCM2835 library. I want the servo to move very slowly and with minimal increments (think clock hands). When I send a single 1480 microsecond pulse on the control line, results are unpredictable. If I send two pulses at 1480 microseconds with a period of 20000 microseconds, the servo moves but the movement varies with each invocation. The measured feedback pulse variation from these different movements is between 5 and 12 microseconds for each tick. At 12 microseconds per tick the most precision I can get is ((1/910)*(0.971-0.029))/12 = 86 increments in a full 360 degree rotation. It would be nice to get something closer to 360 increments. Any way to make the servo go slower and/or less distance?

Andy Lindsay (Parallax)

John, I’m sorry I missed your reply. Please email to be sure to get our attention.

Are you applying 1500 us pulses the rest of the time? If yes, then good. If not, make sure the two 1480 us pulses come between a long series of 1500 us pulses.

I would recommend writing a test that sweeps the pulses from 1470 to 1530 to find the pulse width where the servo actually starts to move. It might be 1490 instead of 1480. Also, a feedback system should detect overshoot and push the servo back to the desired angle.


Hi, How many bits resolution does the position feedback signal have?

Stephanie Lindsay

That’s a simple question with a complex answer There is an explanation of the duty cycle in the PDF contained in the servo’s downloads here. I also queried our applications engineer for more information:

“In practice, expect measurements in the +/- 1/360th of a rotation from the servo. The sensor itself has 12-bit resolution if it communicates its value digitally. The implementation in the Feedback 360 servo communicates the angular position with duty cycle, and there is some inherent loss of resolution. You can find more info about how the the duty cycle measurement works in pages 3-4 of “900-00360-Feedback-360-HS-Servo-v1.2.pdf”, which is available for download on this page: A larger source of measurement error is the output shaft where the magnet is mounted because it is not precisely restricted to its rotation axis. So, if the wheel on the output shaft is wiggled slightly, it changes the orientation of the magnet. That in turn introduces errors that are large compared to 1/4096th of a full circle that you might expect from a 12-bit sensor. ”


Hi, can you make a statement of the total accuracy with reference to the angular position of the shaft in degree?

Andy Lindsay (Parallax)

The Feedback 360 servo should not be considered as a precision positioning instrument because it does not automatically turn to and hold a position based on control signals. The signal it receives from an eternal processor only controls its speed. The servo also sends a feedback signal back to the external processor reporting its angular position. It is up to the external processor to adjust the servo’s speed based on the position reports it receives to achieve a desired position. The accuracy of this position depends on many factors including the processor, the program it runs, and calibration. This servo was designed for use with the Propeller 1 microcontroller in the ActivityBot 360 application, where it has an approximate accuracy of +/- 3 degrees ( To find out more about the Feedback 360 servo, go to and get the 900-00360-Feedback-360-HS-Servo-v1.2.pdf document. If you want to test it for angular position control, I would recommend starting with the Propeller Activity Board ( and a 5 cell supply ( Example code for the Propeller 1 is available through the graphical BlocklyProp language ( It is also available in the Propeller C language after installing SimpleIDE ( and ( After installing SimpleIDE and updating its libraries, you will find servo position control examples in …Documents\SimpleIDE\Learn\Examples\Devices\Motor\Servo360. The control code examples can also be viewed in the Simple Libraries repository: The open source servo360.h library is here:

Copyright © 2021 Parallax Inc. All Rights Reserved
Designed and Made in California, USA