Free shipping on every order. No tariffs or duties to pay at checkout or on delivery.

Choosing a FOC motor driver for a robot joint

By Tolerance Labs engineering team · Updated

The driver turns commands from your controller into phase currents in the motor. Its ratings, current loop and protections decide how much of the motor’s torque you can use and what happens when something fails.

What field-oriented control does

A brushless motor makes the most torque per amp when the stator’s field leads the rotor’s magnets by 90 electrical degrees. Field-oriented control (FOC) measures the phase currents, uses the rotor angle to transform them into a frame that turns with the rotor, and regulates two values in that frame. The q-axis current (Iq) makes torque. The d-axis current (Id) makes no torque in a surface-magnet motor, so the driver holds it at zero below base speed.

Because these values are steady instead of sinusoidal, standard PI controllers track them well, and torque follows Iq at any speed, including zero. Robot joints spend much of their time holding torque at low speed, so FOC is their standard. Above base speed, a driver can push Id negative to reach higher speed. This field weakening costs current and heat.

FOC needs the rotor angle at all times. Sensorless estimators work at speed but fail near standstill, so joint drivers read an encoder. Encoders for robot joints covers encoder type, placement and resolution.

Voltage rating

Choose a driver whose operating voltage range covers your bus from an empty battery to a full one, with room above for regeneration. A 48 V bus fed by a 13-cell lithium-ion pack runs from about 39 V empty to 54.6 V full, and a braking joint can push it higher. Drivers for a 48 V bus therefore typically use transistors and capacitors rated 80 to 100 V, and set their overvoltage trip between the full battery voltage and that rating. Regenerative braking and bus overvoltage explains how to set those levels.

Bus voltage also caps top speed. How to size a robot joint motor shows how to check back-EMF against the bus.

Phase current and bus current

Drivers quote phase current, the current in the motor windings, and sometimes bus current, the current drawn from the supply. The bridge works like a step-down converter: power in roughly equals power out. At low speed, where the motor needs little voltage, a large phase current comes from a small bus current.

Worked example: a joint motor with a phase resistance of 0.1 Ω holds a load at standstill with 20 A RMS in each phase, on a 48 V bus.

  • Copper loss: 3 × 20² × 0.1 = 3 × 400 × 0.1 = 120 W.
  • With no mechanical output, the bus supplies only losses: 120 W ÷ 48 V = 2.5 A, plus the driver’s own losses.
  • Now suppose the same current makes 2 N·m while the motor turns at 300 rad/s. Mechanical power is 2 × 300 = 600 W. Adding 120 W of copper loss gives 720 W, and 720 W ÷ 48 V = 15 A from the bus.

Phase current is 20 A RMS in both cases; bus current goes from 2.5 A to 15 A. Size the driver’s phase rating from the motor’s torque. Size the supply, fuses and wiring from bus current; power supplies and batteries for robot joints works through that side.

Check how each rating is stated. Phase current may be given as RMS or as the peak of the sine wave: 20 A RMS is 20 × √2 ≈ 28 A peak. Continuous current is limited by transistor and board heat, so it depends on the heat sink, airflow and ambient temperature listed with it. Peak current is limited by the current-sense range and transistor heating, and usually carries a time limit of a few seconds or less.

PWM frequency and current-loop bandwidth

The driver switches each phase at the PWM frequency, typically 20 to 40 kHz in robot joints, above the range most people hear. Higher frequency lowers current ripple but raises switching loss in the transistors.

Ripple matters most with low-inductance motors, such as flat outrunners and gimbal motors. A rough estimate of peak-to-peak ripple at worst-case duty is ΔI ≈ Vbus ÷ (4 × L × f), where L is the inductance the current flows through. With 48 V, 100 µH and 20 kHz: 48 ÷ (4 × 0.0001 × 20,000) = 48 ÷ 8 = 6 A peak to peak. At 40 kHz it halves to 3 A. Ripple adds heat and torque noise, so a motor with very low inductance needs a higher PWM frequency or a lower bus voltage.

The current loop usually runs once per PWM cycle or every second cycle. Its bandwidth, how quickly Iq follows a new command, is typically around 1 to a few kHz in joint drivers. The loop rate, the sensing delay and the motor’s electrical time constant L ÷ R set it. Higher current bandwidth gives crisper torque for impedance control and impact handling.

Encoder inputs and communication

  • Motor encoder. Many joint drivers carry a magnetic encoder IC on the board, read over SPI and facing a magnet on the rotor. Others accept ABZ incremental, SSI or BiSS-C from an external encoder, or Hall sensors for start-up.
  • Output encoder. A second input lets the driver read the joint’s output angle, for absolute position at power-up and for closing the position loop past backlash. Check that the driver uses it in its loops.
  • Calibration. The driver must learn the encoder’s offset from the rotor’s electrical zero, and often the pole-pair count and phase order. Check that the result survives a power cycle.
  • Bus. CAN and CAN FD are the most common on joint drivers, with EtherCAT on industrial units and RS485 or UART on low-cost boards. CAN, CAN FD, EtherCAT or RS485 compares them, and wiring a CAN bus covers the physical layer.
  • Tools. A documented protocol and a tool that plots current, position and faults matter as much as the ratings.

Protections

ProtectionGuards againstWhat to check
OvercurrentShorts between phases or to ground, a stalled motorA hardware trip that acts within microseconds, not only a software limit
Bus overvoltageEnergy returned by braking jointsTrip level relative to the full battery voltage and the brake resistor threshold
UndervoltageA sagging or disconnected supplyTrip level relative to the empty battery under load
Driver overtemperatureHeat in the transistors and boardWhether current folds back before the driver trips
Motor overtemperatureHeat in the windingsAn input for a winding thermistor, with a current limit tied to it
Command timeoutA lost bus or a crashed controllerThe joint goes to a defined state when commands stop

Also check what the driver does on a fault. Turning all transistors off lets the joint go limp. Shorting the three phases together makes the motor brake itself, roughly in proportion to speed at low speed, which slows a falling arm but does not hold it. Neither replaces a mechanical brake for loads that must hold when power is lost. Winding temperature limits are covered in thermal management of robot joint actuators.

Integrated or separate driver

Many joint modules put the driver inside the joint. Others, and most builds around frameless torque motors, use a separate board.

FactorIntegrated in the jointSeparate driver
WiringPower and bus only, daisy-chained through the robotThree phase wires plus an encoder cable per joint
HeatDriver heat adds to motor heat in one housingDriver heat goes elsewhere, often to a larger heat sink
NoiseShort phase leads, little radiated noiseLong phase leads radiate switching noise, so shield and route them
Size and massCompact, with the mass at the jointLighter joint, with boards in the torso or base
FlexibilityTied to its motor and encoderCan be tuned for different motors

Integrated drivers suit robots with many joints, where wiring and space are tight. Separate drivers suit custom joints, test benches and joints that must stay cool or light.

Checklist

  • Operating range covers empty to full battery, the overvoltage trip sits above full voltage, and parts are rated well above the trip.
  • Continuous and peak phase current cover the motor’s RMS and peak current under your cooling, with the RMS or peak convention confirmed.
  • Supply, fuses and wiring sized from bus current, not phase current.
  • PWM frequency high enough for the motor’s inductance, and current-loop bandwidth stated.
  • Encoder inputs match your motor and output encoders, with offset calibration documented.
  • Hardware overcurrent, voltage and temperature protection, a motor thermistor input, a command timeout, and defined behavior on a fault.

Browse motor drivers and joint modules with built-in drivers, then compare voltage, current and bus side by side in Robot Parts.

More guides

Not sure what fits? Tell us what you're building.

We procure every part of the robot. Send a sentence or a BOM and we come back with options and a landed quote.

Send a request