Arms & Pivots

An arm is a mechanism that rotates around a pivot point to move an end effector (intake, gripper, scorer) to different positions. Arms show up constantly in FRC because games require reaching to different heights, angles, and positions. The pivot joint itself is the most mechanically critical part of an arm, because it carries the full load of everything cantilevered beyond it.

Arm configurations

One pivot point, one arm segment, one end effector at the tip. The arm sweeps through an arc, and the end effector's height and reach change together as the arm rotates.

Advantages:

  • Simple to design, build, and control (one motor, one encoder, one PID loop)

  • Mechanically robust since there's only one joint to support

  • Fast to iterate on during build season

Disadvantages:

  • The end effector tilts as the arm rotates (unless you add a wrist or virtual four-bar to keep it level)

  • Limited reach for a given arm length because the arc path can't decouple height from horizontal distance

  • Long arms have a lot of moment about the pivot, which demands high torque and counterbalancing

Best for: Games with a small number of scoring positions at moderate height. Simple enough for teams building their first arm.

Pivot design

The pivot joint is where the arm connects to the robot frame (or to a previous arm segment). It carries the full bending load of everything beyond it, so it needs to be rigid, well-supported, and properly powered.

Dead axle pivots (recommended). The shaft is bolted rigidly to the frame and doesn't rotate. The arm rides on bearings around the stationary shaft. Power is transmitted through a sprocket, pulley, or gear that's bolted to the arm and driven by a belt or chain from the motor. This is the best approach for pivots because the shaft only sees bending loads (which it's strong against), not torsional loads.

Live axle pivots. The shaft rotates, and the arm is keyed or clamped to the shaft. The motor drives the shaft directly. Simpler to build but the shaft must transmit all the torque, which puts more stress on the shaft-to-arm connection. Acceptable for light-duty pivots but not recommended for heavy arms.

circle-info

For any arm pivot that handles significant load, use a dead axle. Support the shaft at both ends (never cantilevered). Use large-diameter tube or solid round stock for the shaft if the loads are high. 6328's 2023 arm used 1.25" OD tube turned down for bearing seats, which gives enormous bending stiffness.

Structural support: The frame around the pivot needs to be rigid. An A-frame structure (two plates angled inward meeting at the pivot) is a common and stiff way to support a high pivot point. If the pivot is wide (arm plates on both sides of the robot), drive both sides with a shared shaft or synchronized chain/belt so the arm doesn't twist.

Zombie axles

A zombie axle is a clever trick where the dead axle pivot shaft doubles as a live axle for something else. Since the pivot shaft doesn't rotate with the arm (it's a dead axle for the pivot), you can spin a pulley or sprocket on that same shaft to power rollers on the arm.

How it works: The motor that powers the arm rollers sits on the frame (not on the arm). A belt or chain runs from the motor to a pulley on the pivot shaft. Since the shaft is stationary, the pulley spins on the shaft and drives a belt that runs along the arm to the rollers.

Why this matters: It moves the roller motor off the arm and onto the frame. Less weight on the arm means less torque required at the pivot, faster arm movement, and a lower center of gravity. The tradeoff is a more complex belt/chain path through the pivot.

Gearing

Arms need very high gear reductions because they're fighting gravity with a long moment arm. Typical total reductions for arm pivots are 100:1 to 300:1.

This is usually achieved by stacking a MAXPlanetary gearbox (25:1 to 45:1) with an external chain or belt reduction (4:1 to 10:1 additional). The external stage uses a small sprocket on the gearbox output driving a large sprocket bolted to the arm.

Arm type
Typical total reduction
Motor setup

Light arm (short, intake only)

60:1 to 100:1

Single Kraken X60 + MAXPlanetary + belt stage

Medium arm

100:1 to 200:1

One or two Kraken X60s + MAXPlanetary + chain stage

Heavy arm (long reach, double-jointed shoulder)

150:1 to 300:1

Two Kraken X60s + MAXPlanetary + chain stage. Use chain for the external stage because the torque is high enough to skip belt teeth.

circle-exclamation

Counterbalancing

An arm fighting gravity draws high current, is hard to control, and will crash down if the motor loses power. A counterbalance offsets the gravitational torque so the motor only handles acceleration and deceleration.

The challenge with arms vs. elevators: On an elevator, the gravitational load is constant regardless of position. On an arm, the gravitational torque changes with angle. It's highest when the arm is horizontal and zero when the arm is vertical. This means a constant force spring (which works great on elevators) doesn't perfectly match the varying load on an arm.

Method
How it matches arm gravity
Notes

Gas spring

Reasonable match if mounted correctly. The force is roughly constant, but the moment arm changes with angle, which partially matches the sinusoidal gravity curve.

Common in FRC. Mount with the geometry such that the spring's effective moment about the pivot increases as the arm approaches horizontal.

Constant force spring

Same as gas spring in terms of matching. Works similarly with the right mounting geometry.

Available from McMaster. Lighter than gas springs but can be harder to mount.

Surgical tubing / bungee

Poor match. Force increases as it stretches, which is the opposite of what you want (you need more counterbalance at horizontal, not at full extension).

Can work for light arms if you're not picky about perfect balance. Not recommended for heavy arms.

Software gravity compensation (feedforward)

Perfect match if the model is accurate. The software calculates the gravitational torque at the current arm angle and adds a voltage offset to the motor to compensate.

Every well-controlled arm should have this regardless of whether you also have a mechanical counterbalance. It makes tuning much easier.

circle-info

Use both mechanical counterbalancing and software feedforward. The mechanical spring handles the bulk of the gravity load (reducing current draw and providing safety if the code crashes), and the software feedforward fine-tunes the rest for smooth control.

Keeping the end effector level (virtual four-bar)

When a single-jointed arm rotates, the end effector tilts with it. If you're holding a game piece horizontally and the arm rotates 45 degrees, the game piece is now at 45 degrees. In many games, you need the end effector to stay level regardless of arm angle.

Mechanical virtual four-bar: A chain or belt runs from a fixed sprocket/pulley on the frame, through the pivot, to a sprocket/pulley on the end effector. Because the frame-side sprocket doesn't rotate, the belt keeps the end effector at a constant angle relative to the frame as the arm moves. This is called a "virtual" four-bar because it behaves like a four-bar linkage but uses a belt instead of rigid links.

Software virtual four-bar: Instead of a mechanical linkage, a second motor on the end effector (wrist) actively adjusts the wrist angle to negate the arm rotation. If the arm rotates 30 degrees up, the wrist rotates 30 degrees down. Requires an encoder on the wrist and software coordination with the arm.

The mechanical version is simpler, lighter, and doesn't need software. Use it when you want the end effector at a fixed angle at all times. Use the software version when you need the end effector at different angles for different tasks (for example, tilting to score at different orientations).

Hard stops

Every arm needs physical hard stops at both ends of its travel range.

  • Stowed stop: Prevents the arm from rotating past its stowed position and colliding with the frame or other mechanisms. This is where the arm sits when not in use.

  • Extended stop: Prevents the arm from rotating past its furthest extended position and going beyond extension limits or tearing wires.

triangle-exclamation

Common issues

Issue
Cause
Fix

Arm wobbles or feels loose

Pivot shaft flex, insufficient support, or play in bearings

Use larger diameter shaft. Support both ends. Check bearings for play and replace if worn.

Arm drifts down when holding position

Insufficient counterbalancing, no brake mode, or no gravity feedforward

Add or increase mechanical counterbalance. Ensure motor is in brake mode. Add software gravity compensation.

Arm overshoots target position

Moving too fast, PID not tuned, or no motion profiling

Use motion profiling (trapezoidal or S-curve). Tune PID with the counterbalance installed (tuning without it gives wrong gains).

Chain skips on external reduction

Using belt where chain is needed, or aluminum sprocket teeth shearing

Switch to chain for high-torque stages. Use steel sprockets on small tooth counts.

End effector tilts as arm moves

No virtual four-bar or wrist compensation

Add a mechanical virtual four-bar (belt from fixed sprocket to end effector) or a software-controlled wrist.

Wires break at the pivot

No strain relief, no service loop

Add a service loop at the pivot. Anchor wires on both sides of the flex point. See the Strain Relief page.

Last updated

Was this helpful?