Ventola CPU troppo rumorosa? Hack del segnale tachimetrico fornito al BIOS

Su questo PC da laboratorio — una vecchia macchina Lenovo rimontata con pezzi di recupero, Windows 7 a bordo, pensata per software che non gira su sistemi più recenti — avevo montato un dissipatore da 120 mm su un processore Core i3. Una scelta volutamente sovradimensionata: a parità di flusso d’aria, una ventola più grande gira più lentamente, fa meno rumore e potenzialmente dura di più.

Il problema è che il BIOS non lo sa.

Il contesto: BIOS, ventole e segnale tachimetrico

La scheda madre originale era progettata per una ventola da 80 mm con velocità massima intorno ai 3500 RPM. Il BIOS è costruito attorno a quella aspettativa: quando legge il segnale tachimetrico, interpreta i valori in funzione di quella ventola di riferimento.

La ventola da 120 mm che ho montato arriva al massimo a circa 2000 RPM. A parità di punto di lavoro, genera un flusso d’aria analogo girando quasi alla metà della velocità. Questo è il vantaggio termico e acustico delle ventole più grandi.

Ma il BIOS non può sapere queste cose. Legge una frequenza tachimetrica bassa, la interpreta come “la ventola sta girando troppo lentamente”, aumenta il duty cycle del segnale PWM e spinge la ventola verso il suo massimo. Risultato: la ventola gira quasi a pieno regime anche con la CPU a 25°C a riposo.

Come funziona il rilevamento tachimetrico

Le ventole a tre o quattro fili hanno un filo giallo dedicato alla lettura della velocità. Internamente c’è un transistor in open collector che viene saturato due volte per ogni giro, generando due fronti di discesa al giro. La scheda madre applica una resistenza di pull-up e conta questi fronti.

La relazione è semplice:

RPM = frequenza_Hz × 30

Dove il fattore 30 viene da: 2 impulsi/giro → giri/secondo = f/2 → RPM = (f/2) × 60 = f × 30.

Con l’oscilloscopio ho verificato: a riposo, la ventola da 120 mm generava circa 58–60 Hz sul filo giallo, corrispondenti a circa 1740–1800 RPM. Il software di monitoraggio su Windows confermava 1730 RPM. Tutto coerente.

Il segnale PWM che la scheda mandava sul filo blu era a 23.4 kHz con duty cycle all’80%. Il BIOS stava praticamente spingendo la ventola a fondo, pur di avvicinarsi ai 3500 RPM che si aspettava.

La soluzione: raddoppiare la frequenza tachimetrica

Intervenire sul PWM non ha senso: se forziamo la ventola a girare più lentamente, il BIOS se ne accorge tramite il segnale tachimetrico, interpreta la cosa come un problema e aumenta ancora il duty cycle. Si perde il controllo termico.

La strada corretta è intervenire sul segnale tachimetrico in uscita verso la scheda madre: farlo sembrare il doppio di quello reale. Se il BIOS “vede” 3600 RPM quando la ventola gira a 1800, smette di forzare e lascia lavorare il sistema normalmente.

Il fattore di scala tra le due ventole è circa 3500/2000 = 1.75, approssimabile a 2. Raddoppiare la frequenza è una soluzione pulita.

Il circuito raddoppiatore

Il principio è questo: dato un segnale con fronti di salita e di discesa, generare un impulso breve su entrambi i fronti. In questo modo, per ogni ciclo del segnale originale, si producono due impulsi, raddoppiando effettivamente la frequenza percepita.

Il circuito è realizzato con componenti logici standard:

  • 74HCT14 (inverter Schmitt trigger): ripulisce il segnale in ingresso e introduce lo sfasamento necessario tramite una rete RC (10 kΩ + 100 nF). Il ritardo generato è di circa 380 µs sul fronte più corto — ben oltre i 100 µs minimi richiesti per una rilevazione affidabile da parte del BIOS.
  • 74HC86 (XOR a due ingressi): confronta il segnale originale con la versione ritardata. Quando i due ingressi differiscono — cioè in corrispondenza di ogni fronte — l’uscita va alta per la durata del ritardo RC, generando l’impulso desiderato.
  • 2N2222 (transistor NPN): ricostruisce l’uscita open collector attesa dalla scheda madre. Il pull-up a 12 V è già fornito dalla motherboard; il circuito lavora a 5 V presi dal connettore Molex dell’alimentatore.

Il giallo della ventola viene aperto: da un lato entra nel circuito, dall’altro — dopo il raddoppio — torna verso la scheda madre.

Misure e verifica

Con il circuito inserito, l’oscilloscopio mostrava:

  • Canale 1 (segnale dalla ventola): circa 25–30 Hz
  • Canale 4 (segnale verso la scheda madre): circa 60 Hz
  • Durata impulso minimo: 380 µs (soglia minima: 100 µs)

Il software di monitoraggio su Windows continuava a leggere ~1730 RPM. Per il BIOS, la ventola stava girando esattamente come prima. In realtà girava alla metà.

Sotto stress test prolungato (circa 20 minuti), la temperatura della CPU si è assestata intorno ai 55–60°C — un valore ottimo per quel processore — e il BIOS ha aumentato il duty cycle solo marginalmente. Il controllo termico funziona, solo calibrato correttamente.

Considerazioni finali

Questo tipo di intervento ha senso quando il BIOS non è configurabile (spesso sui PC OEM business), il dissipatore è sovradimensionato rispetto a quello originale, e si vuole mantenere il controllo termico automatico senza rinunciare al silenzio.

Il circuito è semplice — pochi componenti TTL standard — ma richiede di capire bene come funziona il segnale tachimetrico, dove intervenire e perché. L’alternativa di forzare la velocità via PWM porta a un loop di feedback instabile: non è la strada giusta.

Il progetto è stato verificato su breadboard e funziona correttamente. Il passo successivo è realizzare una piccola basetta con EasyEDA per avere il tutto in forma permanente all’interno del PC.

Nel video trovate tutte le misure all’oscilloscopio, la spiegazione del circuito passo per passo e il confronto delle due ventole in termini di RPM massimi e risposta al PWM.

Avatar Paolo Godino