Harmonic Drive and Brake Control for Robot Joints
← Back to: Industrial Robotics
On this page I pull together everything I need to plan a harmonic-drive brake: from coil current, soft-start and de-mag choices to sensing, diagnostics, safety timing and BOM fields, so I can turn abstract brake requirements into concrete driver selections and RFQs I can actually act on.
Application Context
When I design a robot joint around a harmonic drive and spring-applied brake, I treat it as its own electromechanical block: the servo drive provides torque and speed, the harmonic gearbox delivers reduction and stiffness, and the brake guarantees a safe stop when power or control is lost.
This page stays focused on the interface around the harmonic drive and joint brake. Detailed PWM and FOC control are handled in my Multi-Axis Servo Drive topic, and encoder protocol details live in my feedback and encoder interface pages.
- Servo drive → harmonic gearbox → output shaft with spring-applied, electrically released brake.
- Brake driver that releases and holds the brake coil safely on a 24 V industrial supply.
- Position sensing around the joint (motor-side encoder, load-side encoder, home and limit switches).
- Diagnostics and safety signals such as brake status, over-temperature and wiring faults.
In practice I want a clear block diagram that shows how the servo power stage, joint brake control, position feedback and safety diagnostics line up, so I can split responsibilities across boards and IC types without overlap.
Brake-Coil Driving Basics
The joint brake coil is not just another 24 V relay load. It has a clear pull-in current, a lower hold current and a thermal limit that I need to respect across ambient temperature and duty cycle. If I get these numbers wrong, I either lose holding torque or overheat the brake.
I usually start from the coil data sheet: rated voltage, DC resistance, pull-in and hold current if they are given, or I derive them from power limits and temperature rise. Then I choose the driver topology that fits my cost, diagnostics and safety requirements.
- Simple switch topologies: relay, low-side MOSFET or smart high-side switch for 24 V rails.
- Current-controlled options: PWM current reduction or two-level drive (boost for pull-in, lower for hold).
- System-level concerns: inrush when several joints release at once and interaction with the 24 V bus.
- Key IC parameters: maximum output current, RDS(on), protection set and diagnostics pins.
In multi-axis robots I also plan how multiple brakes will release together. Staggered timing and controlled current profiles keep my 24 V supply within spec and avoid nuisance trips or brownouts.
Soft-Start & Soft-Release Profiles
When I plan brake soft-start and soft-release, I am really shaping the coil current over time. A hard 24 V step slams the brake mechanically: the armature hits the friction surface with a sharp click, the harmonic drive sees a sudden torque step and the whole axis feels rough. A shaped current profile lets me trade a few extra milliseconds of response time for lower noise, less shock and better lifetime.
On the mechanical side, a hard brake engagement injects a torque impulse through the output flange into the harmonic drive. If the joint is near a hard stop or carrying a large offset load, that impulse shows up as backlash take-up and micro-bounce. Over time it eats into the gearbox compliance margin. On the release side, an abrupt loss of holding torque can let the axis fall into gravity or spring forces before the servo has fully taken over, especially on vertical and safety-critical axes.
On the electrical side, a hard step to the rated pull-in voltage maximizes inrush current. With several joints sharing the same 24 V supply, that inrush can cause a short sag on the bus. If the sag crosses the undervoltage threshold of PLCs, drives or sensors, I end up with nuisance resets right when I need the system to be predictable. So I design the I(t) profiles with both mechanical and electrical limits in mind.
I usually consider three implementation options for shaping the current profile:
- Firmware-controlled PWM ramp: the MCU drives a high-side switch with PWM and ramps the duty cycle from zero up to a pull-in level, then down to a hold level. This gives me maximum control: I can tune ramp time, overshoot and hold current based on real current measurements and ambient conditions.
- Driver IC with built-in soft-start profile: some smart high-side switches and dedicated brake drivers implement an internal slew or current-limit ramp. I trade flexibility for simplicity: the hardware guarantees a controlled rise and fall time without loading my safety-rated firmware.
- Simple RC or delay circuits: on low-cost joints I can accept an analog compromise. Slowing down a MOSFET gate with an RC network or delaying brake release relative to servo enable gives a softer feel without a full control loop, at the cost of tolerance and temperature sensitivity.
The first design decision is how much time budget I really have for pull-in. Safety functions and functional requirements set upper bounds on the maximum brake release time. Within that window, I choose a ramp slope that is long enough to reduce shock and inrush, but still short enough that motion can start when expected. A typical compromise is a fast ramp up to a little above the minimum pull-in current, followed by a short verification step and then reduction to the hold current.
The second decision is the long-term hold current. From the brake data sheet and thermal tests I estimate the maximum safe coil power across ambient and duty cycle. That defines an upper bound for Ihold. At the same time, the mechanical holding torque and safety margin define a minimum Ihold. I make sure my soft-release profile ends in a current that sits comfortably between these limits, rather than blindly trusting the nominal rating.
Finally, I think about what happens when power is lost or an emergency stop is triggered. In a fail-safe design the brake must engage reliably on supply loss, which means my soft-release logic should not depend on perfect firmware behavior at the edge of a brownout. I keep the release and hold profiles simple enough that they can be reasoned about in a safety analysis, and I define how the servo torque, brake current and STO signals interact during both normal stops and emergency stops.
Position Sensing Around the Harmonic Drive
Around a harmonic-drive joint, I treat position sensing as its own design topic. The motor-side encoder is usually there already for FOC and servo control, but it does not tell me the full story at the output flange. Backlash, elasticity and couplings introduce a gap between what the motor sees and where the load really is, especially under changing torque.
For basic cost-driven joints, I accept this limitation and run with a motor encoder only, plus a simple home switch to establish a reference. For higher-precision or safety-relevant joints, I add an output-side absolute encoder at the flange. The pair of encoders lets me observe both the motor angle and the load angle, which is critical when I care about compliance, collision detection or safety zones in the workspace.
In addition to encoders, I nearly always reserve space for a home sensor and at least one over-travel limit. A dedicated home sensor makes commissioning and recovery faster: I can re-align encoder counts to a known mechanical reference without relying on absolute measurements alone. Over-travel limits protect cables, end-stops and the harmonic drive itself against software or parameter mistakes.
The key decision is when to invest in both motor-side and load-side feedback. I consider a second encoder when the backlash or compliance of the joint is high enough that the difference between motor angle and load angle starts to matter for my process quality or safety case. I also consider it when the joint is part of a force-controlled or collaborative application, where a small angular error at the flange can translate into a significant positional error at the tool tip.
Brake behaviour is also tied to sensing. Before releasing the brake, I need enough feedback to know that the joint is within a safe position and speed window. After issuing a release command, I watch the encoder and limit signals to confirm that the brake actually let go and that motion starts in the expected direction. When engaging the brake, I check that the joint is already within the intended hold window so that the brake does not have to catch a fast moving axis on its own.
On the electrical side, I keep the protocol and AFE details in their own topics. If I need to compare EnDat, BiSS or TTL / Sin-Cos encoder interfaces, I go to my Absolute Encoder Interface page. Resolver-to-digital converters and Hall-based feedback trade-offs live in my Motor Feedback AFE page. Here I stay focused on where I place sensors around the harmonic drive and how I use their signals to coordinate brake, motion and safety logic.
De-Mag Protection & Energy Dissipation
When I switch the brake coil off, I am really deciding where the stored magnetic energy will go and how quickly it will disappear. A brake coil is an inductive load, so its current does not stop just because I turn the MOSFET off. If I do not provide a controlled discharge path, the coil will drive the node voltage up until something conducts: the MOSFET body diode, an ESD structure, or a parasitic path across the 24 V bus and nearby I/O.
With a simple flyback diode across the coil, the current freewheels at roughly one diode drop above ground. This is gentle on the switch and on the supply, because the voltage never rises far above the nominal rail. The price I pay is time: the current decays slowly, so the brake releases later. On axes where the release time is not critical and where I value robustness and low cost, a plain diode is still a valid choice.
When I need a faster release, I look at clamping the voltage higher. Adding a TVS in combination with a diode lets the coil current fall at a higher voltage. The TVS defines the maximum voltage, the diode steers the current into a tight local loop, and the energy is burned in a known place instead of in random parasitics. Release time decreases, but the TVS has to survive the ½·L·I² energy per actuation and the full lifetime duty cycle.
On higher-end joints I consider active clamps or driver ICs with a defined VDS clamp. Instead of letting the voltage peak wherever the layout and MOSFET allow, the driver holds it around a design value, for example two to three times the supply. That gives the coil a faster de-magnetisation without pushing the switch or insulation right up to their absolute limits. The result is a predictable brake release time in the tens of milliseconds, which I can plug directly into my timing and safety analysis.
To choose between these options, I start from the mechanical and safety requirements. If the joint can live with a slow brake release and my main concern is protecting the electronics, I often stay with a single diode. If I have a hard limit on maximum release time, I work backwards from that time, the coil inductance and operating current and select a clamp strategy that lets I(t) decay inside that window. At the same time I check that the resulting voltage and dissipation are still compatible with my MOSFET ratings, creepage and EMC budget.
In multi-axis systems I also think about what happens when several brakes de-mag within a short time. Even if each coil has a perfect clamp, their combined discharge currents and voltage steps can disturb the shared 24 V rail and sensitive references. I stagger brake release and engage events, keep the de-mag loop local to the coil and driver, and give noisy return currents a short, well-defined path back to the bulk capacitors instead of across logic ground and measurement lines.
Diagnostics, Safety Hooks & Self-Test
Once the brake driver and de-mag network are in place, I still have to assume that something will eventually go wrong: a coil will age, a connector will loosen, a MOSFET will fail or a brake will start to drag. Diagnostics and safety hooks are how I stop those faults from silently eroding my safety margin. I plan what I can detect electrically at the driver, what I can infer from encoder and torque behaviour and which signals I feed into the safety MCU or PLC.
At the electrical level I expect the brake driver to detect open-load and short-circuit faults on the coil. With a current or voltage window it can tell the difference between a coil that draws no current when commanded on, and a coil or wiring that is shorted to ground or to the 24 V rail. Ideally the driver exposes this as a fault pin or a status bit, not as a silent derating. I route that fault indication both into my non-safety diagnostics and, where required, into the safety domain.
Mechanically, I treat the brake as stuck if the joint does not behave as expected after a command. When I issue a release command, I expect to see the motor or load encoder respond within a defined time and torque window. If the motor current rises and the axis barely moves, the brake may be dragging or not releasing at all. When I command the brake to engage, I expect that a moderate external torque cannot move the axis by more than a small, specified angle. In both cases I use encoder data and torque estimates from the drive to flag a brake performance issue.
Thermal behaviour is another diagnostic channel. I usually place an NTC near the brake housing or rely on a temperature sensor in the driver IC. From that signal I define a derating threshold where I reduce hold current or limit duty cycle, and a higher threshold where I treat the brake as overheated and raise an alarm. Having explicit thresholds and a clear reaction is more useful than a vague “high temperature” flag.
On the safety side I define clear hooks between brake control and the STO or emergency-stop function. In a normal stop, the drive can first ramp torque to zero, then engage the brake and finally apply STO, all within generous timing budgets. In a safety stop, the sequence is tighter: STO must act quickly to remove torque, and the brake must engage within a bounded delay so that the axis does not drift. I expose separate command, status and fault signals so the safety MCU or PLC can enforce its own sequence and cross-checks.
I also plan for periodic brake self-tests. Under controlled conditions—low speed, small load and no people in the workspace—I can briefly release and re-engage the brake while observing encoder motion and torque. If the brake no longer releases cleanly or can no longer hold its specified torque, the test reveals it before a safety function depends on it. In the specification I capture these expectations as concrete requirements, for example that the brake driver must provide open-load and short-circuit diagnostics and a feedback pin that reports the brake status to the safety controller.
IC & Module Selection Checklist
By the time I reach IC selection for the harmonic-drive brake, I already know how I want the coil to behave electrically and mechanically. This checklist is where I translate those behavioural requirements into concrete IC families and parameter dimensions. I group the devices into three buckets: smart high-side or low-side switches with diagnostics, dedicated brake-control drivers with current and timing profiles, and small auxiliary AFEs for temperature, current and isolation.
For smart high-side and low-side switches that can drive the brake coil directly, I look at them as generic 24 V load switches with a specific current and diagnostic profile. The key dimensions for this class are:
- Operating voltage range: the minimum and maximum supply voltage, including how much headroom there is for 24 V industrial rails with dips and surges.
- Current limit and maximum current: the continuous current per channel and any current-limit value in short-circuit conditions, so I know whether the part can handle pull-in current and survive fault cases.
- On-resistance (RDS(on)): the conduction loss in the switch at hold current, which sets how much heat I have to dissipate in the IC versus the coil.
- Protection types: which protections are implemented and how: over-current, over-voltage, under-voltage, over-temperature and whether short-to-battery, short-to-GND and open-load conditions are distinguished.
- Number of output channels: how many independent loads I can serve from one package, and whether that matches the number of brakes or other 24 V loads on my joint module.
- Control and diagnostic interface: simple enable and fault pins versus a full SPI interface with per-channel configuration and status bits.
Dedicated brake-control drivers form the second bucket. These are parts that are aware of pull-in and hold current, or that provide built-in soft-start and soft-release profiles. Here my checklist digs deeper into behaviour:
- Supply and clamp voltages: supported supply range and any internal VDS clamp level for de-mag, so I can tie release time and peak voltage back to the coil inductance and current.
- Configurable pull-in and hold current: minimum, maximum and resolution of Ipull-in and Ihold, and whether they can be configured independently per channel.
- Soft-start and soft-release behaviour: how the device shapes I(t) during engagement and release, whether ramp times are fixed or programmable and how they interact with protection thresholds.
- De-mag strategy: whether the device uses a diode-like freewheel, a defined clamp voltage or an active energy-dissipation scheme, and how that maps onto my target release time.
- Protection and diagnostics detail: how many fault types are reported separately (open-load, short-to-GND, short-to-battery, over-temperature) and whether they are exposed as dedicated pins or only via a serial interface.
- Channel count and independence: the number of brake channels per IC and whether each channel can have its own current and timing profile, which matters for multi-axis robots.
- Interface and safety fit: SPI, I²C or parallel pins, and whether the signalling lends itself to being monitored by a safety MCU or PLC on the appropriate side of any isolation barrier.
The third bucket holds small auxiliary AFEs that turn physical quantities into signals my controller can use. These include an NTC interface or temperature AFE near the brake, a current-sense stage for the coil and, when the safety architecture requires it, digital isolators between brake control and the rest of the system. For these elements, my checklist covers:
- NTC AFE: supported resistance range, linearisation behaviour, output format (simple voltage, ADC-integrated, or digital) and bandwidth, so I know whether it can capture the thermal behaviour I care about.
- Current sense: measurement range and accuracy at brake pull-in and hold currents, common-mode voltage range compatible with my high-side or low-side topology, and whether I only need a window comparator or a real measurement channel.
- Isolation (if used): isolation voltage rating, CMTI and channel configuration for any digital isolator carrying brake command, status or fault signals between domains.
With these three buckets and their parameter dimensions defined, I can build a brand mapping table: each row is one candidate IC or module and each column is one of these checklist items. That makes it much easier to compare options across vendors and to keep the brake-control design consistent across different robot platforms and joint variants.
BOM & Procurement Notes
To turn the brake and driver concept into something I can actually buy and assemble, I translate the design into explicit BOM fields. These fields describe the brake coil, the driver topology and the protection and timing behaviour in a way that purchasing and suppliers can understand. When I send an RFQ or ask for alternatives, I point suppliers to these fields instead of vague phrases like “24 V brake driver”.
I usually organise the BOM information for the brake function into four groups: the coil itself, the driver and topology, protection and diagnostics, and timing and safety. A compact way to capture this is a table like the one below, with each row as a field name that becomes a column in my BOM or sourcing spreadsheet:
| Category | Field | Description / notes |
|---|---|---|
| Brake coil | Brake coil nominal voltage | Rated voltage of the brake coil (e.g. 24 V DC). |
| Brake coil pull-in current | Target current needed to guarantee reliable engagement. | |
| Brake coil hold current | Planned steady-state current that balances torque and heating. | |
| Brake coil power at hold | Resulting electrical power at hold current, for thermal checks. | |
| Driver topology | Driver topology | Chosen approach: smart HS/LS switch, dedicated brake driver, relay + transistor, etc. |
| Brake driver channel count | Number of brake channels per IC / per board. | |
| Soft-start / soft-release support | Whether the driver provides controlled I(t) ramps for engagement and release. | |
| De-mag strategy | Selected de-mag network: diode, TVS + diode or active clamp, plus clamp level if applicable. | |
| Protection & diagnostics | Over-current protection | Type and threshold of OCP, including behaviour under fault (latch, retry, etc.). |
| Over-voltage / under-voltage behaviour | How the driver reacts to 24 V rail surges and sags. | |
| Over-temperature protection | Whether IC and/or coil temperature are monitored and how shutdown is triggered. | |
| Open-load / short-circuit diagnostics | Ability to distinguish and report open-load, short-to-GND and short-to-battery conditions. | |
| Brake status feedback pin | Presence and logic definition of a pin that reports brake output state back to the controller. | |
| Timing & safety | Brake release time target | From release command to torque-free axis, under specified conditions. |
| Release time tolerance | Allowed spread over temperature, supply and lifetime. | |
| Brake engage time target | From engage command to fully holding torque. | |
| Safety interface signals | Which signals are exposed for the safety domain (brake_cmd, brake_ok, brake_fault, STO relation). |
When I contact suppliers, I do not just send these fields as a table; I also ask a few direct questions to understand how well their parts fit a multi-axis robot brake use case. Typical RFQ questions I keep in my template are:
- Release time and clamp behaviour: “For this brake coil and my 24 V system, what release time and clamp voltage can your driver guarantee across temperature and lifetime, and how do you recommend sizing the de-mag network?”
- Diagnostic resolution and safety interface: “How does the device distinguish between open-load, short-to-GND and short-to-battery faults, and how are these reported to my safety MCU or PLC?”
- Multi-axis and lifetime behaviour: “Do you have application notes or test data for multi-axis robots where several brake coils share the same 24 V bus, including thermal behaviour of the clamp and EMC performance over lifetime?”
By keeping the BOM fields and RFQ questions aligned with the technical work I did in the earlier sections, I make it much easier to compare vendor options, document design intent and avoid surprises late in the project when the actual brake hardware shows up on the bench.
FAQs: Harmonic-Drive Brake Planning & Selection
When I plan harmonic-drive brakes for robot joints, I keep coming back to the same practical questions about drivers, waveforms, de-mag, diagnostics, safety hooks and BOM fields. This FAQ is my personal checklist: each answer is short enough to reuse in reviews and RFQs, but concrete enough to guide real design and sourcing decisions.
How do I decide when a dedicated brake driver is worth it instead of a simple MOSFET or relay?
I reach for a dedicated brake driver when I need more than on/off control. If the joint has a defined brake release time, soft-start or soft-release requirements, or needs detailed diagnostics for open-load, short and temperature, a smart driver pays off. Multi-axis systems that share a 24 V rail also benefit, because the de-mag and current profiles become predictable and easier to coordinate.
How do I estimate pull-in and hold current for the brake coil when the datasheet is vague?
If the datasheet does not give clear pull-in and hold currents, I start from nominal voltage and cold resistance to estimate an upper current bound. Then I look at the required holding torque and ambient conditions to define a practical lower bound. I test a few samples across temperature, record the minimum pull-in current and a safe hold current, and then feed those values back into my driver settings and BOM.
When several brakes must release at power-up, how do I keep the 24 V bus inrush under control?
I plan power-up as a coordinated event instead of flipping everything on at once. First I estimate the worst-case pull-in current for each brake and the total if they were simultaneous. Then I either stagger brake releases in firmware, or use drivers with controlled current ramps. I check that the 24 V supply, bulk capacitors and any upstream eFuse or protection can handle the summed inrush without tripping or causing brownouts.
How do I choose soft-start and soft-release current profiles based on noise and mechanical shock?
I treat the current profile as a way to trade time for smoothness. If I can tolerate tens of milliseconds of delay, I ramp the current instead of stepping it, so the armature closes more quietly and the torque step into the harmonic drive is smaller. On heavy or vertical axes I keep the ramp steeper but still limit overshoot. I always check that the chosen profile fits inside my safety timing budget and power limits.
When backlash in the harmonic drive is large, do I really need an output-side absolute encoder?
I add a load-side encoder when the gap between motor angle and tool position starts to matter for quality or safety. If backlash and compliance mean the flange angle can deviate more than my process or safety margins allow, a second encoder at the output is justified. For simple, low-precision joints I may accept motor-only feedback plus a home switch, but for precise or collaborative axes I treat the second encoder as standard.
How can I quickly detect a failed or stuck brake release from current and speed behaviour?
I watch how the axis responds in a defined time window after a release command. If the coil current rises as expected but the motor or load encoder barely moves, or the drive reports high torque just to start motion, I treat the brake as dragging or stuck. After an engage command, a similar check with a known external torque tells me whether the brake is still holding. These simple checks can run online and feed both diagnostics and safety logic.
What are the trade-offs between TVS plus freewheel diode and active clamp for de-mag and EMC?
A TVS plus diode gives me a faster de-mag than a simple diode by allowing a higher clamp voltage, but it concentrates heat in the TVS and can produce sharper voltage edges. An active clamp or dedicated driver holds the voltage in a defined range and lets me tune release time more precisely, at the cost of complexity and validation effort. On cost-sensitive joints I stay with a TVS, while safety-critical axes often justify an active clamp.
In a safety architecture, how should I sequence STO and brake control signals?
In a normal stop I usually ramp speed down, engage the brake and then apply STO with generous timing margins. In a safety stop the sequence is tighter: STO must remove torque very quickly, and the brake must engage within a bounded delay to prevent drift. On vertical or hazardous axes I define a worst-case energy case and ensure the brake never has to catch uncontrolled motion alone. The safety controller supervises this sequence using explicit command and feedback signals.
How should I implement brake coil over-temperature protection: thermal switch, NTC or IC internal temperature?
I see thermal protection as a layered approach. A simple thermal switch on the brake housing can provide a hard over-temperature cutoff that is easy to reason about. An NTC or driver temperature sensor lets me do earlier derating and logging. For safety-critical axes I often combine a hardware cutoff with monitored temperature signals, so the controller can react before the brake reaches its absolute limit.
In a cobot, how should I plan the brake safety test interval?
I base the test interval on how much I rely on the brake for safety and how often the joint moves. For a cobot that works near people, I plan regular tests under controlled conditions: low speed, limited load and no one in the workspace. At power-up I run a short functional check, and during operation I schedule periodic release and hold tests. If a test fails, the system must degrade gracefully and call for service.
How do I bring a “brake OK” feedback into a safety PLC or safety MCU in a trustworthy way?
I start by defining what “brake OK” actually means: command and driver state match, no diagnostic faults, and no over-temperature. Then I export that as a dedicated signal or set of signals that the safety controller can plausibly check. I avoid ambiguous shared LEDs or multiplexed lines. If isolation is needed, I choose an isolator with enough CMTI and design the wiring so that open and short faults are detectable.
How should I describe the brake coil and driver in my BOM so suppliers can propose the right parts?
In my BOM I do more than write “24 V brake”. I include coil voltage, pull-in and hold current, hold power and target release and engage times. For the driver I document the topology, channel count, required protections, diagnostics and interface type. I also mention whether STO, brake command, brake OK and brake fault need to tie into a safety controller. Those details make RFQs and alternative proposals much more meaningful.