Hall-effect sensors tell a BLDC motor controller the rotor position at all times. They are ubiquitous, cheap, and well-understood. They are also a common point of failure.
After seeing a batch of competitor fans fail in the field due to Hall sensor degradation from heat and vibration, we made a decision early in our design: Entlar fans would be sensorless.
The Startup Problem
Without Hall sensors, you have no idea where the rotor is when power is applied. At speed, you can read back-EMF zero crossings to determine position. At rest — zero back-EMF. You are flying blind.
The standard solution is forced commutation: apply a sequence of voltages that force the rotor to align with a known position, then ramp up speed until back-EMF is strong enough to read. This works, but produces an ugly jerk at startup.
Our Approach: Current-Signature Estimation
Instead of forcing the rotor to move, we measure the inductance variation of each winding at rest. In a salient-pole motor, inductance varies with rotor angle because the magnetic path changes. By pulsing each phase with a tiny current and measuring the rate of rise (dI/dt), we can infer the rotor’s angular position before a single revolution occurs.
The result is a smooth, silent start from zero — no thump, no jerk, no audible artefact.
Zero-Crossing Phase Lock
Once rotating above ~15 RPM, we hand off to zero-crossing detection. The back-EMF of each unexcited phase crosses zero at a predictable point relative to the commutation angle. We use a comparator on each phase with a hardware timer to capture the crossing time with 50 ns resolution.
A phase-locked loop implemented in firmware tracks rotor speed from this signal and adjusts PWM timing in real time. The control loop runs at 20 kHz — fast enough to handle transient loads without losing synchronism.
Reliability in Practice
Our long-run validation testing (3,000 hours, 180 units) has shown zero sensorless startup failures. The inductance estimation algorithm added two months to our firmware development timeline, but eliminated an entire failure mode from the product.
That is an engineering tradeoff we will take every time.