Reinventando la rueda: Simulación de un sensor de RPM para un NAS

La semana pasada compré un NAS pensando que había hecho el negocio del siglo: un QNAP TS-210 por 50 mil pesos chilenos. Me lo ofreció con un disco duro de 500 GB y el vendedor al momento de la transacción sabía que probablemente el aparato valía más, pero que él quería un Magic Mouse. Bueno, en realidad yo tampoco estaba tan seguro de comprarlo, pero lo compré igual.

Y estaba harto más pa la cagá de lo que podía imaginar.

Para empezar, el NAS no tenía las patas. El ventilador sonaba mucho. Venía completamente sucio con tierra por dentro y lo que era peor: dentro la placa tenía daño por agua… pero nada que un poco de alcohol isopropílico y un cepillo de dientes no pueda solucionar. Una vez limpia la carcasa y la placa, pude echarlo andar y ver que funcionaba correctamente, salvo por un pequeño inconveniente: la luz de estatus quedaba en rojo y el aparato hacía pitidos de alarma, aunque funcionaba normalmente.

Revisando el registro de alarmas del NAS, podía averiguar qué era lo que pasaba.

Era el ventilador el que estaba fallando. Me causaba un poco de curiosidad qué era lo que estaba fallando, y por qué exactamente lo llamaban «Smart Fan», mal que mal el ventilador sonaba. Feo, pero sonaba.

Revisé el ventilador y ahí estaba, era uno de estos novedosos ventiladores de 4 patas. Para el que no sabe, estos ventiladores son casi iguales a los que vienen en los computadores, con la diferencia que aquí se incluye una pata adicional para efectos de controlar el ventilador vía PWM (el cable azul). Pensé que podía deshacerme del problema simplemente desconectando el ventilador. No obstante, la luz del NAS continuaba roja. Cinco minutos de googleo después, me di cuenta que una de las gracias del ventilador era que, mientras estaba en funcionamiento devolvía una señal que indicaba la cantidad de vueltas por minuto que estaba dando el ventilador. Entonces inmediatamente asumí que el «Smart Fan Control» sensaba si es que le estaba entrando una señal, y si no lo hacía disparaba la alarma.

Volvamos al ventilador por sí. El pinout de esta clase de ventiladores es más o menos así:

donde GND es el negativo para el ventilador y +12v es el cable donde le llega la energía, normal en todos los ventiladores. Ahora bien, este en especial tiene dos cables más, el pin tach o tacho o RPM que básicamente es una señal que indica la cantidad de RPM a los que está andando, y el pin PWM que es el que controla la velocidad de giro según la cantidad de energía que le llegue al ventilador desde el NAS.

Desde esta premisa, entonces, podemos desprender que el pin PWM actúa como una señal de salida al ventilador, y el tach como una señal de entrada hacia el NAS. Dicho esto, era hora de sacar el osciloscopio para estudiar más a fondo dichas señales.

Afortunadamente mi osciloscopio tiene la posibilidad de sacar pantallazos así que podemos verlo con toda claridad.

La primera señal que me interesaba analizar era la del PWM del ventilador en su estado inactivo, que nos da una medición como ésta.

PWM en estado inactivo.

Tenemos una señal de onda cuadrada de 23,3KHz, claramente correspondiente a PWM, con las herramientas de cálculo del osciloscopio podemos medir la parte alta y la parte baja de cada periodo de la onda.

Mediciones de la parte alta y baja de la onda con PWM en reposo.

Luego, es cosa de hacer un pequeño cálculo matemático usando regla de tres:

Cálculo del duty cycle del PWM.

Entendiendo que los cálculos en este tipo de cosas no es precisamente exacto, podemos conjeturar que el ventilador cuando recibe 20% de duty cycle por su señal PWM, éste permanece en reposo. Esto es necesario ya que como el ventilador está constantemente energizado, en el caso de no tener pin de control este siempre girará a la máxima velocidad posible.

Ahora vamos al pin tach, que sale desde el ventilador hacia el NAS.

La señal del pin tach se compone de una onda cuadrada con 50% de duty cycle que es emtida por un sensor de efecto hall ubicado en el centro del ventilador, donde se emite una señal alta o baja según esté pasando cada uno de los polos del magneto que hace girar las aspas. Hay ventiladores que emiten un pulso por vuelta, y otros que emiten dos pulsos por vuelta. En este caso en particular, el ventilador emite un pulso por vuelta, Una medición del ventilador en su condición normal máxima de giro nos da la siguiente gráfica:

Señal tach del ventilador a la velocidad máxima de giro registrada.

Tenemos una onda de 113 Hz, es decir que el ventilador en su condición máxima de giro nos daba aproximadamente 113 RPM, lo que claramente indica que el ventilador se encuentra defectuoso. Existen formas externas de revisar si esto es cierto (por ejemplo, rompiendo el ventilador dejando sólo un aspa y midiendo con un sensor de corte láser o dividiendo el número de cortes por el número de aspas que tenga). El caso es que ya tenía la causa de la alarma, pero me encontraba con varias problemáticas, todas relacionadas básicamente a que no tengo un ventilador PWM de repuesto, sólo normales. Poner un ventilador normal de reemplazo implicaba que perdía la señal y que por ende el NAS se alarmaría. Para ello nuevamente recurrí a googlear y diez minutos después tenía la respuesta: como es una onda cuadrada normal, podía reemplazar la señal con un mísero 555. Encontré un circuito adecuado en Internet:

Circuito simple con 555.

El circuito es relativamente fácil de hacer, a mí me alcanzó con un pedazo de plata reticulada que tenía de proyectos anteriores.

Posteriormente conecté el sensor falso al NAS.

Una vez dentro del NAS probé nuevamente la señal que ahora se estaba inyectando.

Señal para el pin tach desde el simulador.

Configurado a la «mínima velocidad», el aparato me da una señal de 1,66 KHz, bastante mejor que los 113 Hz que me estaba dando el ventilador. No quedaba más que aislarlo y fijarlo al NAS.

Aparato simulador con cinta aislante y fijado al NAS

Y por supuesto, ¡el estado del NAS pasó a verde!

Solucionado!

Lo mismo que se puede comprobar en el syslog, que ya no se alarma al iniciar:

Nótese que esta solución NO es para eliminar el ventilador, sino como una forma de poder utilizar un ventilador convencional, a la espera de que lleguen desde China el repuesto compatible que importé. Este tutorial aplica para casi cualquier cosa que requiera reemplazar un ventilador PWM por uno regular, y como tal, este aparato debería ser considerado como una solución transitoria y no definitiva.

Cualquier cosa sólo comente.