Products for USB Sensing and Control Canada flag
Products for USB Sensing and Control

sales inquiries

quotes, distributor information, purchase orders
sales@phidgets.com

technical inquiries

support, advice, warranty, returns, misshipment
support@phidgets.com

website inquiries

corrections or suggestions
web@phidgets.com

Address

Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
Canada

PhidgetAdvancedServo 8-Motor

ID: 1061_1B

Control up to 8 RC servo motors or actuators with this controller board. Connects to your computer via USB.

Replaced by RCC0004_0

Note: The 1061_1B has been replaced by the RCC0004_0, a similar servo controller that has additional features (30V maximum supply voltage, API-selectable servo voltage) but no longer has an on-board current sensor.

The PhidgetAdvancedServo 8-Motor allows you to control the position, velocity, and acceleration of up to 8 RC servo motors. It requires a 6-15VDC external power supply; its switching power supply allows the 1061 to efficiently operate from 6 to 15 VDC and can be used with a wide range of batteries. For a list of compatible power supplies, see the Connection & Compatibility tab.

The 1061 measures the power consumption of each servo and its switching regulator protects the motors from overvoltage. It powers servo motors of up to 3.4 Amps.

The 1061 continuously measures the current consumed by each motor with an accuracy of ±10%.

The AdvancedServo connects directly to a computer’s USB port.

Comes Packaged with

Hardware

  • Hardware mounting kit:
  • 4x M3 Bolts (2cm Length)
  • 4x Plastic spacers (5mm Length)
  • 4x M3 Nuts

Guides

Enclosure

We do not carry enclosures for the 1064_1, because motor controllers are prone to overheating when kept in enclosed spaces for extended periods of time with no airflow.

Servo Motors

The PhidgetAdvancedServo can drive up to eight servo motors. Each of the servo motors in the list below is compatible with this Phidget and plugs directly to the board with no extra cables or soldering required. Servos come in two major varieties: limited rotation and continuous rotation. With limited rotation servos, the motor has a limited range of motion, but can be precisely controlled within that range. A continuous rotation servo can rotate continuously, but you won't be able to tell the servo to move to a specific location in degrees; instead you'll specify a direction and speed and for it to rotate at.

Product Motor Properties
Part Number Price Motor Type Range of Rotation Rated Torque Rated Speed
3000_1
Hitec Deluxe Servo
$13.00 Limited Rotation Servo 180° 3 kg·cm 286°/s
3200_0
Hitec Mega Sail Servo
$52.00 Limited Rotation Servo 180° 19.8 kg·cm 125°/s
3201_0
Hitec Winch Servo
$57.75 Limited Rotation Servo Approx. 2700° 11 kg·cm 225°/s
3202_0
Hitec Continuous Rotation Servo
$18.75 Continuous Rotation Servo 2.8 kg·cm 44 RPM
3204_0
Hitec Super Torque Servo
$40.50 Limited Rotation Servo 180° 7.7 kg·cm 300°/s
3207_0
SpringRC Small Servo
$10.00 Limited Rotation Servo 180° 2.4 kg·cm 375°/s
3209_0
SpringRC Standard Servo
$8.00 Limited Rotation Servo 180° 3.5 kg·cm 400°/s
3212_0
SpringRC High Torque Continuous Rotation Servo
$18.00 Continuous Rotation Servo 12.2 kg·cm 50 RPM

Power Supplies

This Phidget requires a power supply between 6 and 15V DC. We recommend that you use a 12V DC power supply for best results. The amount of current required depends on how much current you expect each servo to use. If you plan on running more than one servo at once, you should get a 5 amp supply. Select the power supply from the list below that matches your region's wall socket type.

Product Electrical Properties Physical Properties
Part Number Price Power Supply Current Output Voltage Wall Plug Style
3022_0
Power Supply 12VDC 2.0A - AU
$10.00 2 A 12 V Australian
3023_1
Power Supply 12VDC 2.0A - EU
$10.00 2 A 12 V European
3024_1
Power Supply-12VDC 2A - US
$10.00 2 A 12 V North American
3025_0
Power Supply 12VDC 2.0A - UK
$10.00 2 A 12 V British
3084_0
Power Supply 12VDC 0.5A - EU
$1.50 500 mA 12 V European
3085_0
Power Supply 12VDC 0.5A - US
$1.50 500 mA 12 V North American
3086_0
Power Supply 24VDC 1.0A - US
$10.00 1 A 24 V North American
PSU4013_0
Power Supply 24VDC 2.5A
$20.00 2.5 A 24 V
PSU4014_0
Power Supply 24VDC 5A
$40.00 5 A 24 V
PSU4015_0
Power Supply DIN Mount 24VDC 1A
$20.00 1 A 24 V
PSU4016_0
Power Supply 24VDC 14.6A
$40.00 14.6 A 24 V
PSU4018_0
Power Supply 12VDC 5A
$20.00 5 A 12 V
PSU4019_0
Power Supply 24VDC 25A Current Limiting
$120.00 25 A 24 V

USB Cables

Use a USB cable to connect this Phidget to your computer. We have a number of different lengths available, although the maximum length of a USB cable is 5 meters due to limitations in the timing protocol. For longer distances, we recommend that you use a Single Board Computer to control the Phidget remotely.

Product Physical Properties
Part Number Price Connector A Connector B Cable Length
3017_1
Mini-USB Cable 28cm 24AWG
$3.00 USB Type A USB Mini-B 280 mm
3018_0
Mini-USB Cable 180cm 24AWG
$4.00 USB Type A USB Mini-B 1.8 m
3020_0
Mini-USB Cable 450cm 20AWG
$12.00 USB Type A USB Mini-B 4.5 m
3036_0
Mini-USB Cable 60cm 24AWG
$3.50 USB Type A USB Mini-B 600 mm
3037_0
Mini-USB Cable 120cm 24AWG
$4.00 USB Type A USB Mini-B 1.2 m
CBL4011_0
Mini-USB Cable 28cm Right Angle
$3.50 USB Type A USB Mini-B (90 degree) 280 mm
CBL4012_0
Mini-USB Cable 83cm Right Angle
$4.50 USB Type A USB Mini-B (90 degree) 830 mm
CBL4020_0
USB-C to Mini USB Cable 60cm
$5.00 USB Type C USB Mini-B 600 mm
CBL4021_0
USB-C to Mini USB Cable 180cm
$6.00 USB Type C USB Mini-B 1.8 m


Getting Started

Welcome to the 1061 user guide! In order to get started, make sure you have the following hardware on hand:


Next, you will need to connect the pieces:

1061 0 Connecting The Hardware.jpg
  1. Connect the RC servo motors to the Phidget.
  2. Plug in a power supply using the barrel connector.
  3. Alternatively, you can connect a power supply into the terminal block. Be sure to observe correct polarity.
  4. Connect the Phidget to your computer using the USB cable.


Now that you have everything together, let's start using the 1061!

Using the 1061

Phidget Control Panel

In order to demonstrate the functionality of the 1061, the Phidget Control Panel running on a Windows machine will be used.


The Phidget Control Panel is available for use on both macOS and Windows machines.

Windows

To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG

macOS

To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the Ph.jpg icon to bring up the Phidget Control Panel.


For more information, take a look at the getting started guide for your operating system:


Linux users can follow the getting started with Linux guide and continue reading here for more information about the 1061.

First Look

After plugging the 1061 into your computer and opening the Phidget Control Panel, you will see something like this:

1061 Panel.jpg


The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.


The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.

RC Servo

Double-click on the RCServo object, labelled Servo Motor Controller, in order to run the example:

1061 Servo Example.jpg


General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Motor calibration options are provided. You can change the minimum and maximum pulse widths for your RC servo motor in the appropriate boxes. You can also change which position these pulse widths map to.
  • The SpeedRampingState checkbox lets the 1061 know whether or not to take the Acceleration and Velocity values into account when moving the RC servo motor.
  • Use the Position slider to change the target position and move the RC servo motor.


Current Input

Double-click on the Current Input object in order to run the example:

1061 CurrentInput Example.jpg


General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.

Finding The Addressing Information

Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.

The locate Phidget button is found in the device information box

In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.

All the information you need to address your Phidget

Using Your Own Program

You are now ready to start writing your own code for the device. The best way to do that is to start from our Code Samples.

Select your programming language of choice from the drop-down list to get an example for your device. You can use the options provided to further customize the example to best suit your needs.

Code Sample Choose Language.png


Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.

Technical Details

General

An RC servo motor can be instructed to move to a desired position by the controller. Internally, it monitors the current position, and drives the motor as fast as it can until it reaches the desired position. This is a very cheap and simple way to control a motor. It has some limitations though - there is no way for the controller to know the current position and speed of the motor. Applications that want smooth movement suffer from the aggressive acceleration.


The 1061 is able to address some of these limitations. Instead of sending the desired position immediately, the 1061 sends a series of progressive positions according to acceleration and velocity parameters. In most applications, this dramatically smooths the operation of the servo, and allows reasonably precise control of position, velocity and acceleration. The 1061 has a built in switching regulator - this allows it to efficiently operate from a wide voltage range (6-15VDC), and maintain proper power to the servo motors even if the power supply is varying. This built in voltage regulator will not operate if your power supply is undersized.

For more information about servo motors and controllers, check out the Servo Motor and Controller Guide.

Selecting Min and Max Pulse Width

The easiest way to determine the range of pulse widths to use is to check your servo's datasheet or specification table and use the numbers provided. If you do not have the numbers, you can determine them by following this process:

  • Set the minimum to 1000us and the maximum to 1001us. This will probably be a safe midpoint to start from.
  • Reduce the minimum to 900us and hit apply. Enable the servo and test moving the position to either extreme.
  • Continue to reduce the minimum and test the range. If at any point the servo vibrates or makes a buzzing noise, it means it's stalled out and you've gone past its minimum. Continue increasing the minimum until there is no buzzing or vibration when holding the minimum position.
  • Repeat this process for the maximum pulse width, increasing it until the motor stalls out and then decreasing until it doesn't.

This process is important because selecting a minimum or maximum pulse width that results in the motor stalling could have an impact on the motor's lifespan if it spends a lot of time holding position at those locations.

If you have a continuous rotation servo, you don't have to worry about it stalling so you can just increase the maximum and decrease the minimum until you reach the servo's maximum speed.


Current Sense

The 1061 continuously measures the current consumed by each motor. The current roughly corresponds to torque, making it possible to detect several scenarios.

  • By monitoring for no current, it’s possible to determine if the servo is not connected. It may not be possible to distinguish between a servo at rest and a servo not attached.
  • Stalled motors can be detected, by monitoring for the maximum current possible with your motor.
  • The position limits of the servo can be programmatically determined by moving the servo until it stalls against the internal or external stops.


The 1061 specifications state that the board is suited to a maximum 1.6A continuous draw per channel to a maximum of 12A for the whole board. There is no overcurrent shutoff on a per channel basis though, only for the whole board. This means that technically you could put 12A through one channel if you had a big enough servo or were short circuiting one of the channels. This would burn out the current sensing electronics very quickly. As a result, monitoring the current levels in your code is a good idea as you can implement a safety shutoff yourself.

Limitations

The 1061 does not know the current position of the motor on its own. If your motor is free to move, and is not being driven beyond the physical limitations of the motor, the position returned to your application will be very close to the position of the motor.

Using the 1061 with Continuous Rotation Servos

A continuous rotation servo is a servo motor that has had its headgear-stop removed and potentiometer replaced by two matched-value resistors. This has the effect of allowing the motor to rotate freely through a full range of motion, but disables the motor’s ability to control it’s position.

When using the 1061 with a servo motor modified in this way, the position control in software becomes the motor’s speed control. Because the two resistors that replace the motor’s potentiometer are matched in value, the motor will always think its shaft is at center position. If the target position in software is set to center, the motor will believe it has achieved the target and will therefore not rotate. The further away from center the target position is set to, the faster the motor will rotate (trying to reach that position, but never doing so). Changing the value above or below center changes the direction of rotation.

Using the 1061 with Electronic Speed Controllers (ESCs)

Electronic Speed Controllers are commonly used in RC hobby planes, cars, helicopters. It’s a controller that accepts a PWM input signal, and controls a motor based on that signal. The ESC accepts power from an external source, normally a battery pack.

ESCs can be controlled by the 1061, but the vast majority of ESCs on the market will destroy the 1061 if they are plugged in without modification. In a hobby RC system, the ESC is responsible for regulating some of the battery current down to ~5V, and supplying it to the radio receiver. An ESC designed to the power the receiver will advertise that it has a Battery Eliminator Circuit (BEC). When you plug an ESC into the 1061, the 1061 is acting as the radio receiver. The 1061 was not designed to be powered by the devices it controls, and the voltage regulator on the 1061 will self-destruct if a device tries to power it. If the center pin from the 3-wire servo connector between the 1061 and the ESC is disconnected, the BEC on the ESC will not be able to power the 1061, and the voltage regulator will not fail.

How the ESC inteprets the PWM signal and controls the motor is a function of the ESC. Higher end ESCs can be configured based on the application.

The hobby RC market has transitioned to Brushless DC Motors (BLDC). As you select an ESC, watch that the battery voltage input matches that of your system, and the type of motor controlled is what you have. Brushed DC and Brushless DC Motors are completely different, and require different controllers.

Wiring layout is critical with ESCs. The currents to the motor and on the ground return can be enormous. If these currents end up travelling back through USB cables, the system will not be stable. Some ESCs are optically isolated (OPTO) - a big advantage that reduces interference.

Synchronization of Multiple Servo Motors

Many applications call for several servo motors operating in unison - for example, operating a CNC table, or a robot arm. Highly precise synchronization of multiple servos using the 1061 is not possible, as the sequencing will be affected by the real-time performance of your operating system. Each servo is controlled as a independent unit, so there is no way of arranging for a particular action to happen to all motors at the same time. Typical jitter can be 10-30ms.

Connecting your Servo Motor to the 1061

1061 0 Pins.jpg

The pins on the 1061 are labelled B R W on the board:

  • B for Black is the Ground
  • R for Red is 5V
  • W for White (or Yellow depending on your servo motor) is the Data Line

If you need to use a servo motor with a higher power requirement than the 1061 can provide, you can cut the red and black wires on the Phidget cable and solder them to the power and ground of an external power supply. If you do this, make sure you disconnect the red wire from the 1061, because reverse current from the external power supply could damage the servo controller board.

What to do Next

  • Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.


Software Objects

Channel NameAPIChannel
RC Servo Motor Controller RCServo 0 - 7
RC Servo Motor Current Sensor CurrentInput 0 - 7

API


Back Forward
Print this API

Each servo motor behaves slightly differently. The Phidgets API provides calibration parameters for a number of different models of servo motors; however these values are generic with respect to the model and not specific to each individual unit. It is possible to generate your own values through some manual calibration in the event that your application requires very accurate control or if you are using a servo for which default values are not provided. Read the following manual to find out how to do it.

Code Samples



Example Options


Downloads

				Make your selections to display sample code.
					

Code Samples

Language:

APIDetailLanguageOS
RCServo Visual Studio GUI C# Windows Download
RCServo JavaScript Browser Download
RCServo Objective-C macOS Download
RCServo Swift macOS Download
RCServo Swift iOS Download
RCServo Visual Basic .NET Windows Download
RCServo Max/MSP Multiple Download
CurrentInput Visual Studio GUI C# Windows Download
CurrentInput JavaScript Browser Download
CurrentInput Objective-C macOS Download
CurrentInput Swift macOS Download
CurrentInput Swift iOS Download
CurrentInput Visual Basic .NET Windows Download
CurrentInput Max/MSP Multiple Download

Product Specifications

Servo Controller
API Object Name AdvancedServo
Number of Motor Ports 8
Pulse Width Min 83.3 ns
Pulse Width Max 2.7 ms
Pulse Width Resolution 83.3 ns
Pulse Code Period Max 25 ms
Board Properties
Controlled By USB (Mini-USB)
API Object Name RCServo
Electrical Properties
Supply Voltage Min 6 V DC
Supply Voltage Max 15 V DC
Current Consumption Max 26 mA
Continuous Motor Current Max (per motor) 1.6 A
Overcurrent Trigger (combined) 12 A
Surge Current Max (per motor) 3 A
Output Impedance (Motor) 600 Ω
Output Motor Voltage 5 V DC
USB Speed Full Speed
Physical Properties
Power Jack Hole Diameter 5.5 mm
Power Jack Pin Diameter 2.1 mm
Power Jack Polarity Center Positive
Recommended Wire Size 12 - 24 AWG
Object Temperature Min 0 °C
Object Temperature Max 70 °C
Customs Information
Canadian HS Export Code 8471.80.00
American HTS Import Code 8471.80.40.00
Country of Origin CN (China)
Note:: Current from USB supply is not available for motors.

Documents

Product History

Date Board Revision Device Version Packaging Revision Comment
July 2008 0100Product Release
February 20110200PowerGood flag and different currentSense formula
May 2011 1200Bad currentSense formula, never sold
May 2011 1300Fixed currentSense, Mini-USB connector
May 2011 1301getLabelString fixed for labels > 7 characters
February 20121302Prevent signal line startup pulses
February 20131303USB stack changes; was unstable with lots of set reports
August 2013 1304USB bug fix. Some OUT messages not getting through
October 2017 1304BRemoved USB cable from packaging

Have a look at our servo controllers:

Product Servo Controller
Part Number Price Number of Motor Ports Pulse Width Resolution
1066_1B
PhidgetAdvancedServo 1-Motor
$35.00 1 83.3 ns
RCC0004_0
PhidgetAdvancedServo 8-Motor
$75.00 8 83.3 ns
RCC1000_0
16x RC Servo Phidget
$60.00 16 63 ns
RCC1000_1
16x RC Servo Phidget
$60.00 16 63 ns