Live data from Hacker News

Built a cheap DIY fan controller because my motherboard never had working PWM

himthe.dev

11–20 of 48 posts

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#11
post #8

Ironic, the day after the launch of Artemis II that people are using microcontrollers far more powerful than the original Apollo 11 navigation computer to control a single fan in their PCs now.

One could go farther and complain that it's a waste of a microcontroller at all to control a fan when an analog circuit for fan speed vs temperature would work fine.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#12
>This board has a Fintek F71878AD, a perfectly capable Super IO controller that can read temperatures, control fan PWM, and monitor fan speeds, but MSI just didn't connect it to the board.

is not true. There is a diagram available for this mobo and U32 (F71889AD) is connected over LPC (modern serial ISA version). Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer ports.

The problem must lie elsewhere, most likely bad BIOS.

>Here's what I knew:

> Windows can read CPU temperature directly from the CPU's internal thermal diode, completely bypassing the useless Super IO chip.

why not read temperature directly from Fintek using HwInfo?

https://www.hwinfo.com/forum/threads/faulty-sensor-readings-... and yes it also works on 970 https://forum-en.msi.com/index.php?threads/msi-970-cpu-temps...

not to mention MSI Command Center can read those sensors AND set FAN speeds/curves, and most likely also SpeedFan.

> asked LLMs

LLM failed this person :(

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#13
Glad you shared this. I ran into something similar when I tried using a Pico W as a USB HID device, hardware was up to the task, but the firmware just wouldn’t let me get where I wanted..

Using Arduino and serial is a smart way to go here. Still, it’s worth remembering: the Pico W has built-in WiFi, so you don’t have to lean on serial if you don’t want to. You could have your temp-reading app send control signals over HTTP instead. No need to tie up the USB port, and the connection isn’t killed if someone yanks the cable.

And yes, big agreement on the watchdog or failsafe. Any fan controller that doesn’t ramp up to 100% if it loses connection is just waiting for trouble. Fire risk is real.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#14
post #12

>This board has a Fintek F71878AD, a perfectly capable Super IO controller that can read temperatures, control fan PWM, and monitor fan speeds, but MSI just didn't connect it to the board. is not true. There is a diagram available for this mobo and U32 (F71889AD) is connected over LPC (modern serial ISA version). Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer…

... but he had fun doing it!

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#15
post #11
post #8

Ironic, the day after the launch of Artemis II that people are using microcontrollers far more powerful than the original Apollo 11 navigation computer to control a single fan in their PCs now.

One could go farther and complain that it's a waste of a microcontroller at all to control a fan when an analog circuit for fan speed vs temperature would work fine.

Nah, it's a much lower part count and much simpler to put a microcontroller in. If you're concerned about cost cheaper parts are available.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#16
post #11
post #8

Ironic, the day after the launch of Artemis II that people are using microcontrollers far more powerful than the original Apollo 11 navigation computer to control a single fan in their PCs now.

One could go farther and complain that it's a waste of a microcontroller at all to control a fan when an analog circuit for fan speed vs temperature would work fine.

True, a very simple analog circuit would be enough.

However the bane of analog circuits was that they age, so a control circuit that works perfectly today will drift and no longer work as intended after some years.

The second problem is that analog circuits need adjustments to set them at the exact desired parameters.

Adjustments can be done either by using an adjustable element in the circuit, e.g. an adjustable resistor or capacitor or inductor, or by measuring many resistors and/or capacitors and/or inductors and selecting the ones with the right values to be used by your device.

Redoing periodically the adjustments also solves the aging problem. However, both the initial adjustment and any periodic readjustments need a lot of work, so they are no longer acceptable in the industry.

When doing something for yourself, you may make an analog controller and the initial adjustment would not be a problem, but even in this case it would be annoying to keep track and remember something like having to readjust a fan controller every 6 months, to be sure that it still works as intended.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#17
post #6

I've built 4 different fan controllers for my companies' embedded board so far. We work in very hot greenhouses, so fans (and peltiers) are essential. And proper thermal sensors. I check 4 different ones. Esp. needed is also a humidity sensor, because we don't want it to cool down below the dew point. It's PWM, controlled via mraa. mraa_pwm_write()

> peltiers) are essential

Peltiers have a lifetime measured in cycles, cycling from active (maximum delta Temp) to inactive (both sides ambient). After 1-2k cycles, Peltiers gradually lose efficiency and transition from a heat pump to a hot plate. For this reason I've avoided them in my own permanent installations. Have you encountered this?

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#18
post #3

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).

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

Well, what if?

We don't live in the AMD Athlon era[0] anymore. Modern CPUs are designed to boost until they hit a thermal limit, improper cooling is just going to result in a lower clock speed.

[0]: https://youtu.be/UoXRHexGIok?t=55

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#19
post #11

Earlier quoted context omitted.

One could go farther and complain that it's a waste of a microcontroller at all to control a fan when an analog circuit for fan speed vs temperature would work fine.

True, a very simple analog circuit would be enough. However the bane of analog circuits was that they age, so a control circuit that works perfectly today will drift and no longer work as intended after some years. The second problem is that analog circuits need adjustments to set them at the exact desired parameters. Adjustments can be done either by using an adjustable element in the circuit, e.g. an adjustable res…

Analog control circuitry is also really hard to patch in production, or to adjust to different behavior during design.

Oh, you need a quadratic fan curve instead of a linear one? Have fun starting from scratch!

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#20
post #18
post #3

Earlier quoted context omitted.

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

Well, what if? We don't live in the AMD Athlon era[0] anymore. Modern CPUs are designed to boost until they hit a thermal limit, improper cooling is just going to result in a lower clock speed. [0]: https://youtu.be/UoXRHexGIok?t=55

Damn, that video took me waaay back.
Post reply on HN