REV Control Hub Servo Port Compatibility

This question was asked in a separate forum, but brought here for a more in-depth discussion:

NOTE: Previous versions of this response had incorrect or misleading statements. It has been revised and corrected to be as complete and accurate as possible.

I’m happy to say that the majority of goBILDA servos are okay to use directly with the REV Control Hub (but please read the rest of this post).

The most important spec for using a servo with a legal servo interface module - Control Hub, Expansion Hub, REV Servo Power Module - is Voltage. It is imperative that the Voltage provided by the module is within the range tolerated by the Servo. For example, a typical REV Smart Servo has a Voltage Rating of 4.8V to 7.4V, which means it is compatible with either a REV Control or Expansion Hub (5V provided) or a REV Servo Power Module (6V provided). However for example the Hitec HSR-M9382TH brushless servo used in the goBILDA Shark series servo gearbox has a Voltage range between 6V-8.4V; this servo would not be compatible with connecting directly with the Control or Expansion Hub.

The other thing to think about when working with servos is their current draw (measured in Amps). Servos will require different current levels depending on their type and load, usually from just a few milliAmps (mA) to several Amps (A) depending on the servo and the load on the servo. The Control Hub Servo Port Specifications state that the Control Hub is designed to only provide up to 2A per port pair (combined), with a total current load of up to 5A total across all servos AND the +5V power ports on the device (most teams don’t use the +5V power port, but if you are then that’s an important note that it lowers the overall power available to servos on the device). Let’s break this down:

  1. When a servo operates it draws current from a power supply. The amount of current it draws is generally relative to the amount of “force” it has to exert to do its job; different servos have different specs for how much current it draws from its no-load operation to its maximum “stall” operation. If the servo is not loaded, or nothing is preventing the servo from reaching and holding its intended destination, it draws a minimal amount of current. Alternatively, if the servo is being prevented from reaching or holding its commanded position it can draw a very large amount of current (up to its “stall” current) in an effort to reach and hold the position.

  2. Servo ports on a Control or Expansion hub are designed to support only up to a specific amount of power. A device like the Control or Expansion Hub does not have hardware that caps the amount of current a device (like a servo) can draw, but there is a thermal protection device called a Positive Temperature Coefficient (PTC) device that effectively acts as a resettable thermal “fuse.” This PTC begins heating up as the current drawn exceeds the design specs of the port - the higher the current, the faster the PTC heats up. At some point the PTC will become too hot and overload and stop current flowing through the port completely, until the PTC cools off and again allows the current to pass. PTCs can degrade over time if they’re frequently brought to overload.

  3. A goBILDA Torque Servo draws 2A of current at full stall when using a working voltage of 4.8V. The Control Hub provides 5V, so you can more-or-less interpolate on the max current draw and say it’s just a smidge north of 2A. If a servo port protected by a PTC is designed to pass 2A, and the servo at full stall will pull just over 2A, the PTC will begin to warm as the current exceeds 2A. However, the difference in this case between the design and the draw is very low, so the servo could likely remain at full stall for several minutes to indefinitely without the PTC shutting down depending on the condition of the PTC.

  4. Servos on “port pairs” on a REV Control or Expansion Hub are protected by a common PTC, meaning that combined the two paired ports are designed to supply up to 2A. These “port pairs” are Ports {0,1}, Ports {2,3}, and Ports {4,5}. That means if TWO goBILDA Torque Servos are plugged into BOTH Port 0 and Port 1, they effectively have to share the design load of 2A of current. However, both servos could attempt to draw a combined current load of just over 4A through a single PTC if both servos are brought to full stall at the same time - this is double the design current for the PTC, and so the PTC could quickly reach thermal overload and shut down. In order to prevent this, you would want to put ONE servo on Port pair {0,1}, and put the OTHER servo on Port pair {2,3} or Port pair {4,5}, for example, as then each servo would be able to draw current through separate PTC’s and thus not cause one to shut down. But remember that a large number of use-cases with using servos don’t stall servos, so “skipping ports” isn’t always needed.

  5. If you have THREE goBILDA Torque Servos, you would want to put each servo on a port in each of the three Port pairs, especially if one or more servos could become stalled. Unfortunately you can only draw a maximum of up to 5A total from all servo ports; this is unfortunate, since THREE servos would want to pull just over 6A total if they were all in maximum stall at the same time (which could be rare or extremely common depending on how you use them, but let’s work through the math). All three Servo Port Pairs share the 5A total provided by the power supply, and exactly what happens when the maximum current is reached isn’t defined, so any combination of underpowered servos or complete power shutdown on the servo and +5 power system could occur (as mentioned before, if you’re using the +5V ports they ALSO share in the 5A total with its own PTC).

  6. As previously noted, servos don’t always pull maximum (stall) current and you shouldn’t design your robot mechanisms so that the servo is constantly at full stall (the servos themselves become hot and deplete your battery quickly!). It’s easy and reliable to determine the current draw for motors, but it is not easy nor reliable to determine the current draw of servos from the Control Hub (unfortunately). Mostly servo current draw increases dramatically as the servo is prevented from moving (a hard stop, like gripping onto a hard object) or is carrying a very heavy load (like a long or heavy lever arm). If a servo is used in a gripper, it’s recommended to use a compliant gripping material that can compress and hold the object while still allowing the servo gripper to move to the programmed location without reaching a hard stop. If used to lift/support a lever arm, try balancing the lever arm so that the amount of force needed to move and hold the lever arm is minimized.

It’s important to note that the REV Servo Power Module (SPM) is what’s known as a power injector - meaning it replaces the power provided by the Control Hub with the power provided by the battery. It has a voltage converter that provides 6V instead of 12V so that it’s compatible with servos, but it has the full resources of the battery. That’s both a good thing and a bad thing. It’s good in the sense that you can provide the full current that your servos desire, up to 15A per SPM (the SPM is a 90W device). It’s also good because the servos are working at a higher voltage, which usually means the servos will have a higher torque but unfortunately they also pull more current. However, that’s a bad thing because now your boosted Servos have access to ALL your battery power, and if you’re not careful the servos can pull so much power that they cause your battery to sag below safe levels and can cause your robot to lose communications, reboot the controller, blow your main fuse, and more! Careful power management is IMPERATIVE when using an SPM.



Absolutely fantastic write-up! Thanks for all the info.

One additional bit of potentially useful information to share is that some servos provide configurability around maximum power draw and overload/stall protection to prevent prolonged high-current operation.

1 Like

Which ones, specifically (with links, please)?


GoBilda Servos are very capable and reliable at a great price…
But, Axon has some cool bells and whistles for a premium $$.
The overload and max power settings are part of the programmer features here:

1 Like

8 posts were split to a new topic: Weird HSR-M9382TH behavior on force-stop