Remix.run Logo
bobsterlobster 3 days ago

MSI shipped a genuinely good motherboard and forgot to wire one chip, so PWM doesn't work. Instead of tossing the board or living with the noise, I decided to make lemonade.

An Arduino Nano generates the 25kHz PWM signal, and a companion Windows application reads CPU temp and sends the duty cycle over serial. The Arduino firmware is open source (MIT).

haktan 41 minutes ago | parent | next [-]

Could you use an audio out port for creating the signal and ditch the Arduino?

magicalhippo 4 minutes ago | parent [-]

That might work for the PWM signal, however you'd still need some electronics as the fan has internal pull-up to 5V and expects it to be pulled low by the PWM signal.

But a small circuit with a Schmitt-trigger inverter IC and some resistors and capacitors might do the trick, for example.

gzread 2 hours ago | parent | prev [-]

What if Windows crashes? It's better to attach a thermal sensor to the heatsink, I think.

johndough 2 hours ago | parent [-]

Just send a heartbeat every few milliseconds and set fan speed to 100% if it died. Bonus: You get an audible indicator that the system crashed.