Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Servo Motors are controlled using a technique called Pulse Width Modulation (PWM), where the width of a pulse determines the servo's behavior. The pulse is typically sent to the servo every 20 milliseconds, and the duration of the pulse (measured in microseconds) communicates the desired position or speed.
For angular servo motors, the pulse width directly corresponds to the target position of the servo arm. The Servo Hub allows users to customize the pulse width range to suit their specific servo with a configurable minimum, maximum, and center position. Users can adjust these values to match the servo's capabilities or desired behavior.
A shorter pulse width, typically either 1,000 µs (1 ms), or 500 µs (0.5ms), moves the servo to its minimum position (e.g., fully counterclockwise).
A longer pulse width, typically either 2,000 µs (2 ms), or 2500 µs (2.5ms), moves the servo to its maximum position (e.g., fully clockwise).
A pulse width near the midpoint, typically 1,500 µs (1.5 ms), positions the servo arm at the center.
500 µs
Fully Counterclockwise
1,500 µs
Center
2,500 µs
Fully Clockwise
For continuous rotation servos, the pulse width determines the direction and speed of rotation rather than position. The Servo Hub's configurable minimum, maximum, and center settings can also help calibrate continuous rotation servos. Fine adjustments can be made to the center pulse width to ensure the servo stops accurately at the neutral point.
A pulse width of 1,500 µs (1.5 ms) typically stops the servo (no movement).
Shorter pulse widths (e.g., 1,000 µs) cause the servo to rotate in one direction, with speed increasing as the pulse width decreases.
Longer pulse widths (e.g., 2,000 µs) cause the servo to rotate in the opposite direction, with speed increasing as the pulse width increases.
500 µs
Full Speed (Clockwise)
1,500 µs
Stop
2,500 µs
Full Speed (Counterclockwise)
Understanding how pulse width controls your servo and leveraging the REV Servo Hub's features can help optimize your servo’s performance for your robot. Test each servo to confirm its behavior and supported pulse width range before integrating it into your system. We suggest the following as a good place to start understanding your servo motors:
Servo Variations: Always check the documentation for your specific servo, as pulse width ranges and behavior may vary.
Signal Integrity: Ensure the PWM signal is clean and consistent to avoid jittering or erratic behavior.
The REV Servo Hub uses LEDs to provide visual feedback about the device's status and individual channel states. Understanding these indicators helps diagnose issues and monitor system performance.
Important: These led patterns only apply to firmware version 24.0.0 and later
The main Status LED on the Servo Hub communicates the overall state of the device. Below is a table explaining the various patterns and their meanings:
Magenta Blinking
Anytime
The Servo Hub is powered on but not connected to a controller or the REV Hardware Client.
Blue Solid
Anytime
The Servo Hub is connected to the Communication established the REV Hardware Client.
Solid Cyan
Anytime
The Servo Hub is connected to a roboRIO or other CAN controller. †
Green Solid
Anytime
The Servo Hub is connected to a Control Hub or other RS-485 controller. The number of blue blinks is the same as the Servo Hub's address. The factory default address is 3.
Orange/Cyan Blinking
Anytime
Battery Voltage is lower than 5.5V. Please check the Servo Hub's Power Supply. This fault will clear when the input voltage is raised above 6.5V.
Orange/Yellow Blinking
Anytime
A CAN fault has been detected. Verify CAN bus wiring and connections.
Orange/Magenta Blinking
Anytime
An overcurrent fault has occurred. Check the connected servos and reduce the load if necessary.
†
Faults are not reported to logs when the Servo Hub is connected via RS485.
Each servo channel on the REV Servo Hub has its own dedicated LED, which provides feedback about the channel’s state and current PWM signal. Below is the meaning of each LED pattern:
Channel LEDs reflect the current state of the PWM signal, helping users verify servo behavior in real-time.
Disabled channels still show feedback via a blinking amber LED, making it easy to differentiate inactive channels.
Amber Solid
Anytime
The channel is at the center position (typically 1,500 µs pulse width).
Green Blinking
Anytime
The pulse width is between center and maximum (e.g., 1,500–2,000 µs).
Green Solid
Anytime
The channel is at the maximum position (e.g., 2,000 µs).
Red Blinking
Anytime
The pulse width is between center and minimum (e.g., 1,500–1,000 µs).
Red Solid
Anytime
The channel is at the minimum position (e.g., 1,000 µs).
Amber Blinking
Anytime
The channel is disabled. The signal pin is pulled low, and no PWM signal is being sent.
Quick Amber Blinking
Anytime
The channel is faulted. This can mean that either the device does not have sufficient power, neither the RoboRIO nor the Control Hub heartbeat is present, or the channel is experiencing an overcurrent event.
Amber Solid
Anytime
The servo is stopped (typically 1,500 µs pulse width).
Green Blinking
Anytime
The servo is running forward (e.g., 1,500–2,000 µs).
Green Solid
Anytime
The servo is running forward at maximum speed (e.g., 2,000 µs).
Red Blinking
Anytime
The servo is running in reverse (e.g., 1,500–1,000 µs).
Red Solid
Anytime
The servo is running in reverse at full speed (e.g., 1,000 µs).
Amber Blinking
Anytime
The channel is disabled. The signal pin is pulled low, and no PWM signal is being sent.
Quick Amber Blinking
Anytime
The channel is faulted. This can mean that either the device does not have sufficient power, neither the RoboRIO nor the Control Hub heartbeat is present, or the channel is experiencing an overcurrent event.
You must be running Robot Controller App and Driver Station App version 10.0 to use a Servo Hub.
Servo Hub IDs should be set while the Servo Hub is disconnected from a Control Hub OR before powering the robot on. Servo Hubs previously connected to a robot may need to be power cycled before changing IDs.
By default, the Servo Hub's ID should be set to 3. This can be changed by connecting the Servo Hub directly to the REV Hardware Client using a USB-C cable. The Servo Hub will appear in the Hardware List as shown below:
The "CAN ID" is the individual ID for the Servo Hub.
Each Servo Hub and Expansion Hub must have a unique ID before being able to complete the configuration process.
The CAN ID can be set between 1-10 for FTC. After choosing the ID, click "Set CAN ID".
Expansion Hubs default to ID 1 or 2.
The new Servo Hub ID is not set!
Select the menu in the stop right corner of the Driver Station app. Then select Configure Robot.
In the Available configurations page, select New.
In the USB Devices in configuration page select the Control Hub Portal. Note: If you have an Expansion Hub connected via USB it will appear as an Expansion Hub Portal.
Pressing "Scan" on an existing configuration may result in the already named devices being erased. A new configuration file is needed when adding a camera or Expansion Hub over USB.
All connected Servo or Expansion Hubs using RS485 will appear within the menu of the portal. If you are using multiple Servo Hubs, they can be identified by their ID number.
Menu while using a single Servo Hub:
Menu while using multiple Servo Hubs:
This menu will appear the same if the Servo Hub is connected to another Servo Hub or an Expansion Hub connected using RS485.
Select the Servo Hub where you are adding servos
Select the "Servos" option
This will open a configuration menu similar to what is used for motors and sensors!
Select your desired option from the dropdown menu
Assign the device an appropriate name
Click "Done" once all names are entered to return to the main Servo Hub menu
Click "Done" again on to return to the list of all connected Hubs
The REV Servo Hub allows each servo channel to be powered individually. This lets users power only the channels they need at any given time. A channel can have power without a signal, or vice versa, depending on the configuration.
The FTC SDK does not currently support runtime control of channel power.
Channels are always powered when enabled.
When disabled, channels follow the configured Disable Behavior.
REVLib provides complete runtime control over channel power.
Enabled channels can be turned on or off at any time via the robot program.
Disabled channels always adhere to their Disable Behavior configuration, regardless of runtime settings.
A program can dynamically control whether a channel is powered. However, some users may want a channel to supply power even when it’s disabled. To address this, the Disable Behavior configuration is provided. Each channel has its own Disable Behavior configuration, allowing fine-grained control.
Important: Ensure you understand your servo's behavior when it has power but no signal, as this may vary between models.
kSupplyPower
: Power is provided to the servo while disabled, but no signal is sent.
Note: The kSupplyPower
setting is most similar to the behavior of the REV Servo Power Module, while the kDoNotSupplyPower
setting is closer to the behavior of the Control Hub's servo ports. However, neither of these configurations is an exact match to these devices.
kDoNotSupplyPower
: Power is not provided to the servo while disabled.
Selecting the appropriate Disable Behavior depends on your team's specific needs and the use case for each servo channel. Below are some scenarios where each behavior may be advantageous in FIRST Tech Challenge (FTC) or FIRST Robotics Competition (FRC).
By carefully choosing the appropriate Disable Behavior for each servo channel, teams can optimize their robot’s performance and ensure reliable operation under various conditions. Testing your configuration during practice is highly recommended to avoid surprises during competition.
kSupplyPower
When maintaining servo position is critical: Use this behavior if your servo must hold its position even when disabled. For example:
Keeping a gripper closed around a game element while the robot is temporarily disabled.
Ensuring a mechanism like an arm or elevator stays in place when the robot is disabled during testing or a match pause.
When transitioning from disabled to enabled needs to be seamless: If the servo should maintain a consistent state (e.g., avoid sudden movements) when re-enabled, supplying power ensures the servo remains stable.
When you know the servo behavior with no signal: Servos behave differently when powered without a signal. Some may hold their position, while others may drift or "go limp", and others may return to the center position. Ensure you test your servos and understand their behavior in this mode.
kDoNotSupplyPower
When the servo model exhibits undesirable behavior with power but no signal: Some servo models behave unpredictably when powered but not receiving a signal. For example, certain servos may jitter or drift uncontrollably in this state, and others return to center position. In such cases, using kDoNotSupplyPower
ensures that the servo does not power on until a valid signal is present.
When servo movement while disabled is acceptable: If the mechanism attached to the servo does not require precise positioning or locking, removing power can reduce wear on the servo.
Example: Allowing an intake arm to fall into a "neutral" position when not powered.
When protecting servos from overuse: In some cases, continually powering a servo when disabled may contribute to overheating or wear. Use this mode to prolong servo lifespan.
This troubleshooting guide helps diagnose and resolve issues with the REV Servo Hub.
If the Servo Hub is unresponsive (no lights):
Check Power Supply:
Verify the power supply provides sufficient voltage (6–12V recommended).
If using a REV PDH, check the breaker for the channel powering the Servo Hub.
Inspect Wiring:
Ensure all wires are securely connected.
Perform a tug test on the power connections.
Enter Recovery Mode:
If the Servo Hub has power but no LEDs light up, follow the recovery mode instructions below.
The Servo Hub protects itself and the connected servos from overcurrent conditions. There are two types of overcurrent faults:
Condition: A channel exceeds 6A for a prolonged period or experiences short spikes above 7A.
Indicators: Channel LED blinks amber at a high frequency and/or power to the affected channel is removed.
Resolution:
Remove the load from the servo.
Allow the current to drop to clear the fault.
Condition: The total current across all six channels exceeds 15A.
Indicators: All channel LEDs blink amber at a high frequency and/or power to all channels is removed.
Resolution:
Disconnect servos and inspect for faults or excessive current draw.
Ensure no channel is shorted.
The fault will clear 1 second after the total current drops below 15A.
Common Causes:
Overcurrent faults may indicate excessive load or a servo malfunction. Disconnect and test the servos individually.
Stalled high-power servos (e.g., Axon Max with a stall current of ~4A).
Shorts in servo wiring.43
The Servo Hub will alternate between blue and orange on the main status LED when the input voltage is low:
Low Voltage Threshold: Below 5.5V.
Clearing Voltage: Above 6.5V.
Resolution:
Check the voltage of the battery powering the Servo Hub and recharge if needed.
Ensure connections to the battery are secure.
Low voltage can cause unexpected behavior.
A CAN fault occurs when the Servo Hub detects unreliable communication on the CAN bus. The main status LED will alternate between yellow and orange.
Inspect Wiring:
Perform a tug test to ensure connections are secure.
Verify there’s enough bare wire in the Wago connectors.
Check Termination Resistors:
Ensure proper termination at both ends of the CAN bus.
Test for Shorts:
Inspect for shorts in the CAN wiring.
When the Servo Hub cannot detect a connection to a controller or the REV Hardware Client, the main status LED will flash magenta.
Check the Hardware Client:
Open the REV Hardware Client and ensure it recognizes the Servo Hub.
Check CAN Connection:
Verify the CAN bus wiring.
Use the Hardware Client to check if other devices on the CAN bus are visible.
Inspect roboRIO:
Ensure the roboRIO has power.
Verify the roboRIO configuration and connections.
Ensure the channel is enabled (LED is not blinking amber).
Check the servo wiring for loose connections or damage.
Verify the servo is compatible with the configured pulse width range.
Inspect the Disable Behavior configuration:
Some servos may jitter or misbehave when powered but not receiving a signal. Consider using kDoNotSupplyPower
.
Test with another servo to rule out hardware issues.
If the channel LED is off, verify the channel is properly configured in the program.
Check wiring and servo functionality.
Test with another servo to confirm channel operation.
Double check that each Servo Hub has a unique CAN ID by connecting it via USB to the REV Hardware Client
Servo Hubs must have a different ID than an Expansion Hub. Expansion Hubs default to ID 1 or 2
You must be running Robot Controller App AND Driver Station App version 10.0 to use a Servo Hub.
Check first that the Servo Hub is receiving proper power and that the RS485 cable is secure
Double check that each Servo Hub has a unique CAN ID by connecting it via USB to the REV Hardware Client
Servo Hubs must have a different ID than an Expansion Hub. Expansion Hubs default to ID 1 or 2
When a Servo Hub is connected to a Control Hub, directly or through another Hub, it will be set to a "read-only" mode when interacting with the REV Hardware Client. This means the Client cannot update the ID or firmware, and features, such as the ability to run servos, will not be available.
Power down the robot or disconnect the RS845 cable leading to the Servo Hub
Power cycle the Servo Hub
You should now be able to connect the Servo Hub via USB-C to the REV Hardware Client to set the ID or use the Client features
This error appears if the Control Hub has lost communication with a Servo Hub that was previously established in the configuration file
Double check the Servo Hub is receiving proper and securely wired
If the Servo Hub ID has been changed or a different Servo Hub with a different ID has been connected as a substitute:
Change the Servo Hub ID to match the one in the configuration OR
Create a new configuration file with the updated ID
If you are removing the Servo Hub completely, create a new configuration file.
Change the Servo Hub's ID to between 1-10 to avoid potential conflicts. Expansion Hubs default to having ID 1 or 2.
When connecting over USB-C to a Control Hub with a Servo Hub connected it will appear as an Expansion Hub within the Client as seen below:
This is expected behavior as of RHC Version 1.7.0. To update the Servo Hub, disconnect it from the Control Hub and power cycle it before connecting only the Servo Hub via USB-C.
If the Servo Hub is unresponsive, use recovery mode to restore functionality.
Steps to Enter Recovery Mode:
Power off the Servo Hub.
Press and hold the mode button on the Servo Hub.
While holding the button, power on the Servo Hub.
Release the button once the channel 4 red LED and channel 5 green LED are on.
The Servo Hub will now be ready to recover via the REV Hardware Client.
By following this guide, users can diagnose and resolve most common issues with the REV Servo Hub. If problems persist, contact REV Robotics support for further assistance.
The REV Servo Hub is compatible with both the REV ION and REV DUO systems. Over a single communication interface it can provide advanced control of up to six (6) servos. This means that the Servo Hub needs no additional PWM cabling between it and your robot controller, greatly simplifying wiring.
Future firmware updates will unlock additional features like current measurements for each output channel, CAN communication, control individual channel power to enable powered-off servo states, and even adjustable output voltage to provide adaptability to a wide range of servo classes.
The Servo Hub is easy to update and configure over the USB-C connection utilizing the REV Hardware Client. With a total current output of 15A shared across all channels, the Servo Hub will give you the power you need to succeed on the field!
Connectivity
USB
RS485
CAN
Advanced Servo Channels
Status LED indicates PWM signal status and faults
Individual channel current measurement†
Individually switchable channel output power†
Configurable output voltage†
Over-current protection
Reverse polarity protection
ESD protection
† - Features available after future software updates.
Operating Voltage Range
7
-
15
V
Output Voltage
0.5
-
7.4
V
Max Total Output
-
-
15
A
Channel Max Output Current †
-
-
3
A
Latching WAGO Connectors
Supported Wire Gauge (Bare Solid/Stranded)
26
14
AWG
Bare Wire Strip Length
0.31
0.33
0.355
in
Supported Wire Gauge (Stranded, with ferrule)
24
18
AWG
Servo Connectors
Input
-
PWM cable (standard 3-wire 0.1” pitch)
-
-
Output
-
PWM cable (standard 3-wire 0.1” pitch)
-
-
†
Each of the Servo Hub's individual port pins are rated for approximately 3 A. This rating, of the port itself, highly depends on the quality of the connection between the Servo Hub and the connector of the servo it is driving.
The Servo Hub has been designed with powerful servos in mind. Many of REV's customers' favorite servos have a stall current of 4 Amps or more. While we don't believe the 4 A stall current will produce enough heat to cause problems with a properly seated and quality connection, a poor connection can cause overheating and thermal runaway that can lead to damage.
The best way to ensure you are making the most of your Servo Power Module's output, is to check that all input and output connections are fully seated with no gaps.
It is important to ensure that you do not exceed the maximum total output current of your Servo Power Module. To do this, add together the stall current of each servo being powered by the Servo Power Module. If the total stall current is higher than 15A, you risk triggering the overcurrent protection. Consider reducing the number of servos connected to prevent triggering the overcurrent protections.
Number of Servo Channels
-
6
-
-
Length
-
85.7 (3.374)
-
mm(in)
Width
-
47.6 (1.874)
-
mm(in)
Height
-
18.3 (0.72)
-
mm(in)
Mounting Hole Diameter
-
#10 Clearance
-
-
Mounting Hole Pattern
-
3 by 1.5
-
in
Please see the notes for more information.