Whilst working on a project to control and monitor an EC fan from a Raspberry Pi, I have encountered an anomaly that has me completely confused; the fan is still outputting pulses on the tacho line proportional to the input power when the actual fan itself is disconnected from its built-in control circuitry.

I've so far managed to implement an RPM monitor by listening to the pulses coming out of the fan's tacho connection, however the maximum RPM observed was less than the manufacturer claimed the max RPM of the fan was so I decided to double check how many pulses appeared on the tacho line per revolution of the fan blade. Whilst doing this, I disconnected the three wire connection (red, black, yellow) between the fan motor and its controller board. I then turned the bundled fan controller up and saw my RPM monitor respond as though the fan has spun up, which it had not.


  • With the fan motor disconnected, adjusting the fan speed controller causes the tacho to respond as though the fan was turning.
  • RPM ramps up and down with the same profile as a genuine fan tacho signal, i.e. has ramp up and ramp down as if the momentum of a physical fan blade were involved.
  • With the fan motor reconnected to the control board, but the blades clamped stationary, the tacho line outputs no pulses, even when the speed controller is altered up and down.

My initial suspicion was that somehow the controller board was 'faking' the tacho signal, but then you have to wonder why would the manufacturer go to such lengths when a hall effect sensor is such a cheap and standard component, and how would the physical characteristics of a real fan be so accurately emulated if the signal was being faked?

I really hope someone who knows about these fans can shed some light.

Edit: Before anyone asks, yes the fan is absolutely, and without shadow of doubt, not turning.


1 Answer 1


Traditionally a tach signal is actually generated by a tachometer that is sitting on the shaft, but sensorless brushless motor drivers need to know the rotor position anyways to properly commutate the motor and detect the rotor position electrically once the motor is up to speed which means that external sensing is redundant. The driver can just synthesize a tach signal based on the sensorless detection scheme.

Of course, this won't work at low speeds where the BEMF is insufficient for the sensorless scheme to work. This also means that on startup, sensorless drivers need to open-loop commutate the motor to get it up to speed so the sensorless detection can kick in. But that doesn't mean the driver is can't still synthesize a tach signal based on its open loop commutation.

hall effect sensor is such a cheap and standard component

Not only do you need THREE whole hall sensors but the motor needs to be constructed to accommodate the hall sensor so they can access the magnetic field. You can't do that from the outside. Otherwise you need a full blown encoder assembly with hall sensors, magnets, and bearings which sits on a rear shaft that the motor must now have. Even if none of this was required, cost cutting knows no bounds.

  • \$\begingroup\$ Thank you @DKNguyen, I really appreciate the detailed answer. I now understand how sensorless motors are able to generate tach signals without hall sensors, and having now researched into the points you mentioned I have a much better understanding of how these motors work. \$\endgroup\$
    – RegEd
    Jun 4, 2022 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.