A drone ESC can pass every bench test and still lose a motor in flight because a power-lead solder joint opens under vibration and current. Learn which soldering defects cause this, why static tests do not see them, what to change in the process, and how to detect and track them per operator and per station with TofuPilot.
Symptoms in the Field
The failure pattern is consistent across 4-in-1 ESCs, single ESCs and power distribution boards:
| Observation | What it points to |
|---|---|
| Unit passed end-of-line test, failed after a few flights | Defect present at build, opened under vibration |
| Motor desyncs or stutters at high throttle, then recovers | Intermittent contact on one motor phase lead |
| ESC resets or browns out during a punch-out | Intermittent contact on a battery lead |
| Discoloured pad or melted insulation next to one joint | Joint heating from high resistance, P = I² × R |
| Returned unit measures normal on the bench | Crack closes when the board is at rest |
The last line is the reason this class of defect reaches customers. A cracked or poorly wetted joint can make metal-to-metal contact when nothing moves it, and then open when the frame vibrates or the wire is pulled.
Root Causes
Cold Joint on a Heavy Wire
Battery leads on a 6S quadcopter are typically 10 to 14 AWG. A thick copper wire and a large copper pad connected to inner ground planes absorb heat faster than a small iron can deliver it. The solder melts on the surface and looks finished, but the wire strands or the pad never reached wetting temperature. The result is a joint with a grainy or dull surface, a poor fillet and a weak intermetallic layer.
Typical contributors:
- Iron power too low for the thermal mass (80 to 120 W stations are used for heavy wires)
- Tip too small, so the contact area limits heat transfer
- No preheat of the board, so the planes drain heat during the joint
- Dwell time cut short to protect nearby components
Insufficient or Wrong Flux
Without enough active flux the oxide on the strands and the pad is not removed and the solder does not wet. Re-melting a joint several times burns off the flux and gives the same result. Excess or aggressive flux left on the board is a different problem: residue under the wire can absorb moisture and corrode the joint over time.
Solder Wicking Under the Insulation
When a stranded wire is tinned or soldered too long, solder wicks up the strands under the insulation. That section becomes rigid. Vibration then bends the wire at the exact point where the stiff, soldered section ends, and the strands fatigue and break there, often hidden by the insulation.
No Strain Relief
A heavy wire with no tie-down, adhesive or clamp transmits every frame vibration and every pull on the battery connector straight into the joint. The joint becomes the mechanical anchor of the wire, a load it is not designed for. Even a good joint fatigues under this load; a marginal one cracks quickly.
Pad Damage
Overheating to compensate for low iron power can lift a pad or crack the via under it. The joint looks correct while the copper underneath is partly detached.
Why Static Tests Miss Them
A standard end-of-line test spins the motors without propellers and checks that each ESC responds. On a 3115-size 1250KV motor driven by a 4-in-1 ESC on 6S, the measured no-prop current is about 0.65 A at 25% throttle and 3.5 to 4.5 A at full throttle. With a propeller the same motor draws tens of amps; 60 to 80 A peak at full throttle is a reasonable estimate for a typical prop.
The voltage drop and heating in a joint scale with current. With an example joint resistance of 0.5 mΩ for a good joint and 5 mΩ for a cracked one:
| Condition | Current | Good joint (0.5 mΩ) | Cracked joint (5 mΩ) |
|---|---|---|---|
| No-prop bench test, full throttle | 4 A | 2 mV, 8 mW | 20 mV, 80 mW |
| Flight peak (estimate) | 70 A | 35 mV, 2.5 W | 350 mV, 24.5 W |
Values come from V = I × R and P = I² × R. At 4 A the cracked joint loses 20 mV, which no functional check notices. At 70 A it dissipates around 24 W in a few cubic millimetres of solder, which softens it, and vibration finishes the job.
Three things are therefore missing from the bench test:
- Current. The bench test runs at a few percent of flight current.
- Vibration. The board sits on a fixture, so a crack stays closed.
- Resolution. "Motor spins" is a pass/fail check, not a measurement of the joint.
What to Change in the Process
Fix the cause first. Detection only sorts the units that the process failed to build correctly.
| Area | Change |
|---|---|
| Iron | 80 to 120 W station, large chisel tip for battery and phase leads |
| Preheat | Board preheater for 4-in-1 ESCs with heavy ground planes |
| Flux | Specified flux type, applied on every joint, residue cleaned when required |
| Tinning | Tin the wire only on the length that enters the joint |
| Strain relief | Tie the wire to the frame or board, or use adhesive, so the joint carries no load |
| Inspection | Second-operator visual check against IPC-A-610 acceptance criteria |
| Workmanship | Train and certify operators to IPC J-STD-001 for wire-to-pad joints |
| Sampling | Pull test on sample joints from each batch, destructive, not on shipped units |
Operator certification and the visual inspection record are covered in How to Manage Operator Certification and IPC-A-610 Inspection Tracking.
How to Detect the Defect Before Shipping
Industrial practice combines three layers, applied to every unit:
- Non-destructive electrical measurement. A 4-wire (Kelvin) voltage drop or resistance measurement across each power joint at a moderate known current, compared with a golden-unit baseline. A few amps are enough: the 2 mV versus 20 mV difference in the table above is easy to resolve with Kelvin probing and a precise differential voltmeter.
- Measurement under flex. Repeat the resistance measurement while the wire is flexed or the board is tapped or vibrated, and look at the fluctuation, not only the mean. A crack that closes at rest opens under motion.
- Environmental stress screening (ESS). Random vibration and thermal cycling on 100% of units, with levels tuned to expose workmanship defects without damaging good units, followed by a repeat of the electrical measurement.
Driving very high current through the joints to burn out the weak ones is not one of these layers. It is destructive, it is a safety hazard, and it degrades the good joints along with the bad ones.
The measurement methods are detailed in Screen Solder Joints Without Destroying Them and Catch Intermittent Contacts in Production.
Track Joints per Operator and per Station
A joint defect is a process signal. To act on it, each measurement must carry who built the unit and where it was tested.
Record the voltage drop of each joint as a numeric measurement with limits, and record the operator who soldered the board as the run operator, from a badge scan:
procedure.yaml47 lines
name: ESC Power Joint Screeningversion: 1.0.0execution: workers: 1plugs: - name: Kelvin Fixture key: kelvin python: plugs.kelvin:KelvinFixture scope: station with: port: "COM4"main: - name: Identify Operator key: identify_operator ui: components: - key: solder_operator type: text_input label: "Scan the badge of the operator who soldered this board" required: true bind: run.operated_by - key: iron_id type: text_input label: "Soldering station ID" required: true bind: measurements.iron_id measurements: - name: Soldering Station key: iron_id - name: Battery Positive Joint key: joint_bat_pos python: phases.joints:measure_joint with: channel: 0 measurements: - name: Voltage Drop key: drop_mv unit: mV validators: - operator: ">=" expected_value: 0.5 - operator: "<=" expected_value: 3.0The phase code, the fixture plug and the way to derive the limits from a golden-unit baseline are in the screening guide linked above. The limit values here are example values for a 4 A test current.
The station is recorded with every run automatically. In the TofuPilot dashboard, three views then answer the process questions:
| Question | Dashboard view |
|---|---|
| Which joint fails most often | Failure Pareto per measurement |
| Is one operator or one station the source | Yield and failure Pareto filtered per operator and per station |
| Is the process drifting before units fail | Control chart and Cpk of each joint's voltage drop |
A voltage drop that creeps up on one soldering station over a week is a tip wearing out or a temperature setting changed, visible on the control chart before any unit crosses the limit. For limit setting from production data, see How to Set Measurement Limits Using Production Data. To confirm that the fixture itself is repeatable enough to tell a 2 mV joint from a 3 mV one, run a gauge R&R study.
Common Pitfalls
Judging joints by appearance only. A cold joint on a heavy wire can look shiny on the surface. Visual inspection is required, not sufficient.
Measuring with 2-wire probes. Probe contact resistance is in the same range as the joint, or higher. Without separate force and sense contacts the reading measures the probes.
Testing only at rest. A crack that closes under the weight of the board passes a static measurement. Add flex or vibration.
Using high-current burn-in as a screen. It stresses every joint, damages good ones and creates a hazard on the bench.
Fixing the symptom with more solder. Adding solder to a cold joint without enough heat or flux makes a larger cold joint.
Not recording who built the unit. Without the operator and soldering station on the run, a failing joint cannot be traced back to the process step that produced it.
Key Points
- Power-lead joints on drone ESCs fail in flight because flight adds tens of amps and vibration that the bench test does not apply.
- The usual causes are insufficient heat on heavy wires, missing or burnt flux, solder wicking under the insulation, missing strain relief and pad damage.
- Fix the process first: iron power, preheat, flux, tinning length, strain relief, IPC J-STD-001 training and IPC-A-610 inspection.
- Screen every unit with a Kelvin voltage drop at moderate current, a measurement under flex, and ESS. Never with destructive high current.
- Record each joint as a measurement with limits, with operator and station on the run, so failure Pareto, yield and control charts point to the source.
