Este artículo de blog narra la experiencia de un usuario que, al construir un ordenador retro con componentes modernos, se encontró con un problema inesperado: la placa base MSI 970 Gaming (AM3+) carecía de la conexión física (cableado) para el chip Super IO, responsable de controlar la velocidad de los ventiladores y leer las temperaturas. Esto provocó que los ventiladores funcionaran a velocidades extremas, generando temperaturas peligrosamente altas (255°C).
La solución convencional, como comprar un controlador de ventiladores propietario o utilizar software, resultó costosa, incompatible o simplemente insatisfactoria. Ante esta situación, el autor desarrolló su propia solución basada en un Arduino Nano. La idea principal fue leer la temperatura de la CPU directamente desde su diodo térmico interno (eludiendo el Super IO defectuoso), calcular la velocidad del ventilador en función de una curva predefinida y enviar esta información al Arduino, que a su vez controlaría la velocidad del ventilador a través de un hub PWM (Pulse Width Modulation).
La solución, denominada 'DummyFanX', se compone de dos partes: un script de Arduino de código abierto (disponible en GitHub) y una aplicación de Windows (vendida en Gumroad). El script de Arduino genera una señal PWM de 25kHz, la frecuencia estándar para ventiladores de 4 pines, y permite controlar la velocidad del ventilador a través de una conexión serial. La aplicación de Windows, escrita originalmente en Rust y luego reescrita en C++ con DirectX 9 para asegurar compatibilidad con Windows XP hasta Windows 11, lee la temperatura de la CPU (utilizando HWiNFO o PawnIO) y calcula la velocidad del ventilador según la curva definida. Incluye funciones como histéresis y modo de parada de ventiladores (zero-RPM) para un control más preciso.
Este proyecto no solo solucionó el problema específico de la placa base MSI, sino que también abordó un problema más general: la falta de conectores de ventiladores de 4 pines en muchas placas base antiguas, lo que obliga a los usuarios a lidiar con ventiladores que funcionan a velocidad máxima o sin control de temperatura. El autor ha abierto el código del script de Arduino, permitiendo a otros usuarios adaptar la solución a sus propias necesidades, incluso sin utilizar la aplicación de Windows.
