Why does my arm twitch and then go limp mid-motion?

A twitch followed by a sag is one of the few symptoms on this hardware with a single dominant cause. This page explains the sequence that produces it, separates it from the failures that look similar, and gives you a decisive test rather than a list of things to try.

Hardware · Last updated 2026-08-09

Symptom

The arm starts a motion, jerks once, and drops. Sometimes several joints give way at the same instant. It happens under load and almost never while the arm is idle, and no error appears that you can act on.

  • SO-100
  • SO-101
  • LeKiwi
Short answer

This is a power problem, not a software problem. Servos draw many times more current accelerating under load than they do holding still, and a supply that cannot hold voltage through that spike sags far enough for the servos to latch an undervoltage condition and cut torque, which is the drop you feel. Swapping in a supply you know is good, at 7.4 V for the Feetech STS3215 arms, is the test that settles it in two minutes.

The sequence you are actually watching

A servo holding a position draws a modest current. The same servo accelerating a loaded arm draws a multiple of that, and six of them starting at once draw it simultaneously. If the supply cannot deliver that peak, the voltage at the bus drops. Below a threshold the servo electronics decide they cannot operate safely, latch an undervoltage condition, and disable torque. The arm has no holding force any more, so it falls. As soon as it stops moving the current demand collapses, the voltage recovers, the servos come back, and the whole thing is available to happen again on your next command.

That is why the symptom has its distinctive shape. The twitch is the motion starting normally. The sag is the protection acting. The recovery immediately afterward is what makes people suspect software, because the arm is responsive again by the time they look at it.

The diagnostic signal is correlation with load rather than with any particular command. If the same trajectory survives when the gripper is empty and fails when it is holding something, or fails when the arm is extended and survives when it is folded, you are looking at current, not code.

What else produces something similar

What you observeCauseHow to confirm
Several joints give way at the same instant, under loadBrownout: the supply cannot hold the peakRepeat unloaded, then swap the supply
The same single joint always, at any loadThat servo or its cable, not the supplyThe other five are fine on the same rail
Limp before any motion is commandedTorque is disabled, which is not a faultHome the arm and drive it from the client
Drops only as the gripper closes on something firmStall current at the gripper, still the supplyClose the gripper on air and compare
Buzzing and hunting, no dropSomething is binding mechanicallyPower off and move the joint by hand
Random drops with no pattern, count varies in scansMarginal connector on the bus or the DC leadReseat everything, feel for a warm plug
A weak supply is annoying. The wrong supply is terminal.

Feetech STS3215 servos run at 7.4 V. Feeding them 12 V because a bigger brick was within reach destroys all six in seconds, silently, with no recovery. When you go looking for a replacement supply to test this, read the number printed on the replacement rather than trusting the barrel jack to fit only the right thing, because it does not.

Voltage is only half the specification

A supply is described by two numbers and people remember one of them. The right voltage with insufficient current capacity produces exactly the failure on this page: fine at idle, fine for a single joint, unable to hold when the whole arm accelerates. Supplies also age, and one that carried the arm last year can have lost enough capability to start browning out without anything else changing.

Resistance between the supply and the arm does the same thing to your arm while the supply itself measures perfectly at its own terminals. The usual sources are a thin or long DC extension lead, a splitter feeding two things from one brick, and a barrel jack that has been plugged and unplugged a few hundred times. All three drop voltage in proportion to current, which is to say exactly when you need it most.

One thing that is never the cause: the USB cable. USB powers the serial adapter, not the servos. A data problem on USB produces a missing port or a failed connection, not a mechanical collapse under load.

The test that settles it

  1. 1
    Reproduce it deliberately, unloaded

    Run the same motion with nothing in the gripper, starting from a folded pose that needs little torque. If it survives that and fails when lifting or extended, load is the variable and you are done theorizing.

  2. 2
    Repeat the motion slowly

    Acceleration is what costs current. The same path driven gently often completes on a supply that cannot manage it at speed, which is another confirmation rather than a fix.

  3. 3
    Reseat the DC connector and feel it afterward

    Unplug and firmly reseat the barrel jack. Run a failing motion, then touch the plug and the first few centimeters of lead. Warmth there is resistance where you do not want it, and that plug or lead is the problem.

  4. 4
    Remove everything between the supply and the arm

    No extension leads, no splitters, no switched power strip with a loose socket. Power the arm from the supply directly for the duration of the test.

  5. 5
    Swap in a supply you know is good

    This is the decisive step. Correct voltage, generous current headroom, known working. If the symptom disappears, you have your answer. If it survives, the supply is exonerated and the remaining candidates are mechanical or a single servo.

  6. 6
    With the power off, move each joint by hand

    Feel for a joint that binds, catches or grinds through part of its travel. A joint fighting a mechanical obstruction pulls stall current and can brown out an otherwise adequate supply on its own.

  7. 7
    Confirm the bus is complete before you go further

    A servo dropping out of the scan under load points back at power or at a marginal connector rather than at the servo. Scan with the arm powered and loaded, not only at rest.

    bash
    ay-robots devices
  8. 8
    Recalibrate only after the power question is closed

    Calibration cannot influence current draw, so recalibrating a browning-out arm changes nothing. Once the arm holds position reliably, home it, verify the joints track, and only then decide whether calibration also needs attention.

    bash
    ay-robots home
bash
# Backend up, machine paired, and a full servo count under power
ay-robots status
ay-robots devices

# SERIAL PORTS
#   /dev/ttyACM0   SO-100  (6 servos responding)

# Then a low-effort motion as a baseline
ay-robots home
A full count at rest that becomes a partial count under load is a power symptom, not a wiring symptom.

Why no amount of software fixes this

The decision to cut torque is made inside the servo. The host does not participate in it and is not asked. What the host sees is that commanded positions stopped being followed, which is the same thing it would see if the arm had been physically held. There is no setting on this platform, and no parameter in any policy, that changes what a servo does when its supply voltage falls below what it needs. Retraining a policy because the arm dropped a payload is a several hour detour away from a two minute supply swap.

Discard the episodes you recorded while this was happening

A brownout during recording produces demonstrations where your commanded motion and the pose the arm actually reached diverge, and the episode files look completely normal afterward. Anything recorded in a session where the arm sagged should be reviewed and thrown out rather than trusted. Recording practice, including reviewing before you keep, is on /learn/record-your-first-dataset.

Frequently asked questions

My supply says 7.4 V and the arm still sags. What now?

Voltage was never the whole question. Look at current capacity, at the age of the supply, and at everything between the supply and the arm: extension leads, splitters and tired barrel jacks all drop voltage under load while the supply itself measures fine.

Does a brownout damage the servos?

The undervoltage cutout exists to protect them, so a sag is generally the protection working rather than damage occurring. The expensive mistake on this hardware is overvoltage: 12 V into a 7.4 V servo destroys it in seconds.

Could a bad USB cable cause the arm to go limp?

No. USB carries the serial link and powers the adapter. It does not power the servos, so a USB fault shows up as a missing port or a dropped connection, never as a loss of holding torque under load.

Should I recalibrate after the arm has dropped?

Calibration lives on the host and survives a power loss, so normally no. Recalibrate if the fall was hard enough to slip a horn on its output shaft, which you can check by looking for a joint whose neutral pose has visibly changed.

Can I run the arm from a 12 V supply with a regulator in between?

The bus must see 7.4 V. Anything that does not deliver that at the servos is out of specification, and the failure mode of getting it wrong is all six servos at once. This is not a place to improvise.

The arm only sags when it is fully extended. Is that still power?

Very likely, because an extended arm has the worst leverage and asks for the most current. Confirm by repeating the same reach with a good supply. If the sag persists on known-good power, look at the shoulder joint specifically rather than at the whole rail.